O = Intersect(xAxis, yAxis)
A = Point(xAxis)
B = Mirror(A, O)
AB = Segment(A, B)
C = Point(AB)
O' = Midpoint(A, C)
O'' = Midpoint(C, B)
cAC = Circle(O', C)
cBC = Circle(O'', C)
cAB = Circle(O, B)
ay = OrthogonalLine(A, AB)
oy = OrthogonalLine(O, AB)
by = OrthogonalLine(B, AB)
d = Rotate(A, 90°, O)
i = Mirror(O, d)
c = Circle(i, d)
ii = Line(i, C)
dd = Line(d, C)
po = OrthogonalLine(O, dd)
D = Mirror(d, po)
OD = Segment(O, D)
I = Intersect(ii, OD)
k = Circle(I, D)
e = Mirror(d, i)
n = Rotate(d, 90°, i)
m = Mirror(n, i)
ee = Line(e, C)
j_1 = Mirror(O, i)
f_1 = Circle(j_1, e)
m'_1 = Mirror(A, n)
f = Line(B, m'_1)
g = OrthogonalLine(O, f)
d_{1} = Mirror(B, g)
h = Line(d_{1}, C)
j = OrthogonalLine(O, h)
D_1 = Mirror(d_{1}, j)
l = Line(B, j_1)
p = Line(O, d_{1})
i_1 = Intersect(l, p)
q = Circle(i_1, d_{1})
r = Segment(D_1, O)
s = Line(i_1, C)
I_1 = Intersect(s, r)
t = Circle(I_1, D_1)
a = Line(A, B)
b = OrthogonalLine(d_{1}, p)
P_1 = Intersect(a, b)
g_1 = Line(i_1, P_1)
e_1 = Mirror(d_{1}, g_1)
Γ_1 = Circle(A, B, e_1)
h_1 = Line(e_1, C)
F_1 = Center(Γ_1)
k_1 = Line(F_1, I_1)
E_1 = Intersect(k_1, h_1)
l_1 = Line(e_1, i_1)
m_1 = Line(P_1, e_1)
p_1 = Ellipse(O, F_1, B)
m'_2 = Mirror(n, m'_1)
j_2 = Mirror(i, j_1)
q_1 = Circle(j_2, m'_2)
n_1 = Line(m'_2, B)
r_1 = OrthogonalLine(O, n_1)
d_2 = Mirror(B, r_1)
s_1 = Line(O, d_2)
t_1 = Line(B, j_2)
i_2 = Intersect(s_1, t_1)
c_2 = Circle(i_2, d_2)
a_1 = Line(d_2, C)
b_1 = OrthogonalLine(O, a_1)
D_2 = Mirror(d_2, b_1)
f_2 = Segment(D_2, O)
g_2 = Line(i_2, C)
I_2 = Intersect(g_2, f_2)
e_2 = Circle(I_2, D_2)