hexlet
Author: Jacques MAROT

C_2: (-6, 0, 0)
C_1: (6, 0, 0)
O: (1, 3, 0)
A, r, s, q = Polygon(C_1, O, C_2)
e = Circle(O, 1, q)
X = Point(e)
P = If(A ≠ 0, Plane[A], Plane[X, C_1, C_2])
k = UnitVector(Vector[OrthogonalVector[Plane[P]]])
p: (s + r + q) / 2
S_1 = Sphere(C_1, p - r)
T = Intersect(q, S_1)
i = If(A ≠ 0, Vector[UnitVector[Segment[O, T]]], Vector[UnitVector[Segment[C_2, C_1]]])
j: i ⊗ k
d = Segment(O, T)
R(t) = ((p * (p - r)) * (p - s) / (p^(2) - (r * s) - ((2 * A) * cos(t))))
u' = CurveCartesian((((((2 * p) * (p - r)) * (p - s))) / (p^(2) - (r * s)) * ((cos(t) * j) + (sin(t) * k))) + (x(O), y(O), z(O)), t, 0, (2 * π))
u = If(A ≠ 0, CurveCartesian[((p^(2) / d + ((((4 * A) * R(t)) * cos(t))) / ((d * q)) - (((3 * p) * R(t))) / d) * i) + ((((((2 * p) * R(t)) * (s - r)) * cos(t))) / ((q * d)) * j) + (((2 * R(t)) * sin(t)) * k) + (x(O), y(O), z(O)), t, 0, (2 * π)], u')
S_0 = Sphere(O, p)
S_2 = Sphere(C_2, p - s)
α = 6.1086523819801535 rad (slider from 0 to 359°, step °)
s_0 = Sphere(u(α), R(α))
s_1 = Sphere(u(α + π / 3), R(α + π / 3))
s_2 = Sphere(u(α + (2 * π / 3)), R(α + (2 * π / 3)))
s_3 = Sphere(u(α + π), R(α + π))
s_4 = Sphere(u(α + (4 * π / 3)), R(α + (4 * π / 3)))
s_5 = Sphere(u(α - π / 3), R(α - π / 3))
L_1: ((p - r) * {UnitVector[Vector[C_1, u(0)]], UnitVector[Vector[C_1, u((2 * π / 3))]], UnitVector[Vector[C_1, u((4 * π / 3))]]})
B: {Translate[C_1, Vector[L_1(1)]], Translate[C_1, Vector[L_1(2)]], Translate[C_1, Vector[L_1(3)]]}
b = Circle(B(1), B(2), B(3))
L_2: ((p - s) * {UnitVector[Vector[C_2, u(0)]], UnitVector[Vector[C_2, u((2 * π / 3))]], UnitVector[Vector[C_2, u((4 * π / 3))]]})
C: {Translate[C_2, Vector[L_2(1)]], Translate[C_2, Vector[L_2(2)]], Translate[C_2, Vector[L_2(3)]]}
c = Circle(C(1), C(2), C(3))
L_3: (p * {UnitVector[Vector[O, u(0)]], UnitVector[Vector[O, u((2 * π / 3))]], UnitVector[Vector[O, u((4 * π / 3))]]})
D: {Translate[O, Vector[L_3(1)]], Translate[O, Vector[L_3(2)]], Translate[O, Vector[L_3(3)]]}
Ct = Circle(D(1), D(2), D(3))