C = (-3, 1)
A = Point(Circle[C, 2])
B: C + Vector[C, A] + OrthogonalVector[Segment[C, A]]
D: C + (0 * Vector[C, A]) + OrthogonalVector[Segment[C, A]]
q1, c, a, b, d = Polygon(C, A, B, D)
F = (0, 1)
G = Point(Circle[F, 4])
H: F + Vector[F, G] + OrthogonalVector[Segment[F, G]]
E: F + (0 * Vector[F, G]) + (0.25 * OrthogonalVector[Segment[F, G]])
q2, f, g, h, e = Polygon(F, G, H, E)
I = (-2, -2)
J = (8, -2)
i = Line(I, J)
K = (5, 1)
L = (8, 1)
M = (5, 0)
N = (8, 0)
O = Midpoint(M, N)
j = OrthogonalLine(O, i)
P = Point(j)
t1, p, k, l = Polygon(K, L, P)
Q = (5, 1)
R = Point(Circle[Q, Segment[K, L]])
S = Rotate(R + (Segment[L, P], 0), Angle[P - L] + Angle[R - Q] - Angle[L - K], R)
t2, s, q, r = Polygon(Q, R, S)
T = (5, 4)
U = (8, 4)
V = (5, 5)
W = (5, 6)
Z = Midpoint(V, W)
m = Line(Z, i)
A_1 = Point(m)
q3, z_1, t, u, a_1 = Polygon(Z, T, U, A_1)
B_1 = (5.03, 5.5)
C_1 = Point(Circle[B_1, Segment[Z, T]])
D_1 = Rotate(C_1 + (Segment[T, U], 0), Angle[U - T] + Angle[C_1 - B_1] - Angle[T - Z], C_1)
E_1 = Rotate(D_1 + (Segment[U, A_1], 0), Angle[A_1 - U] + Angle[D_1 - C_1] - Angle[U - T], D_1)
q4, b_1, c_1, d_1, e_1 = Polygon(B_1, C_1, D_1, E_1)
F_1 = (-3, 4)
G_1 = (1, 4)
H_1 = Midpoint(F_1, G_1)
n = OrthogonalLine(H_1, m)
I_1 = Intersect(n, m)
t3, i_1, f_1, g_1 = Polygon(F_1, G_1, I_1)
J_1 = (-3, 4)
K_1 = Point(Circle[J_1, Segment[F_1, G_1]])
L_1 = Rotate(K_1 + (Segment[G_1, I_1], 0), Angle[I_1 - G_1] + Angle[K_1 - J_1] - Angle[G_1 - F_1], K_1)
t4, l_1, j_1, k_1 = Polygon(J_1, K_1, L_1)