4-rings or 4-squares puzzle

You are encouraged to solve this task according to the task description, using any language you may know.
Task

Replace       a, b, c, d, e, f,   and
  g        with the decimal
digits   LOW   ───►   HIGH

such that the sum of the letters inside of each of the four large squares add up to
the same sum.

            ╔══════════════╗      ╔══════════════╗
            ║              ║      ║              ║
            ║      a       ║      ║      e       ║
            ║              ║      ║              ║
            ║          ┌───╫──────╫───┐      ┌───╫─────────┐
            ║          │   ║      ║   │      │   ║         │
            ║          │ b ║      ║ d │      │ f ║         │
            ║          │   ║      ║   │      │   ║         │
            ║          │   ║      ║   │      │   ║         │
            ╚══════════╪═══╝      ╚═══╪══════╪═══╝         │
                       │       c      │      │      g      │
                       │              │      │             │
                       │              │      │             │
                       └──────────────┘      └─────────────┘

Show all output here.



   Show all solutions for each letter being unique with
        LOW=1     HIGH=7

   Show all solutions for each letter being unique with
        LOW=3     HIGH=9

   Show only the   number   of solutions when each letter can be non-unique
        LOW=0     HIGH=9



Related task

 Solve the no connection puzzle


int  Show, Low, High, Digit(7\a..g\), Count;
proc Rings(Level);
int  Level; \of recursion
int  D, Temp, I, Set;
[for D:= Low to High do
    [Digit(Level):= D;
    if Level < 7-1 then Rings(Level+1)
    else [  Temp:= Digit(0) + Digit(1); \solution?
         if Temp = Digit(1) + Digit(2) + Digit(3) and
            Temp = Digit(3) + Digit(4) + Digit(5) and
            Temp = Digit(5) + Digit(6) then
                [Count:= Count+1;
                if Show then
                    [Set:= 0;           \digits must be unique
                    for I:= 0 to 7-1 do
                        Set:= Set ! 1<<Digit(I);
                    if Set = %111_1111 << Low then
                        [for I:= 0 to 7-1 do
                            [IntOut(0, Digit(I));  ChOut(0, ^ )];
                        CrLf(0);
                        ];
                    ];
                ];
         ];
    ];
];
 
[Show:= true;
Low:= 1;  High:= 7;
Rings(0);
CrLf(0);
Low:= 3;  High:= 9;
Rings(0);
CrLf(0);
Show:= false;
Low:= 0;  High:= 9;  Count:= 0;  
Rings(0);
IntOut(0, Count);
CrLf(0);
]