A = (-2, -2)
B = (8, -2)
D = (2, 2)
I = Midpoint(A, B)
L = Midpoint(A, D)
u = Vector(A, I)
O = Translate(L, u)
J = Translate(O, u)
K = Translate(D, u)
C = Translate(K, u)
L' = Midpoint(A, L)
AK = Segment(A, K)
IL' = Segment(I, L')
E = Intersect(AK, IL')
ε = Conic(I, J, K, L, E)
AB = Line(A, B)
o = OrthogonalLine(O, AB)
F = Point(o)
v = Ray(O, F)
S = Point(v)
t_1, t_2 = Tangent(S, ε)
T_1 = Intersect(ε, t_1)
T_2 = Intersect(ε, t_2)
a = Segment(S, T_1)
b = Segment(S, T_2)
KT_1 = Line(K, T_1)
d = Line(K, T_2)
P_1 = Intersect(KT_1, AB)
P_2 = Intersect(d, AB)
s_c = Segment(P_1, P_2)
P_c = Point(s_c)
a_1 = Line(K, L)
P_0 = Intersect(a_1, AB)
b_1 = Line(O, P_0)
AD = Line(A, D)
b_c = Line(P_c, AD)
I_b = Intersect(b_c, b_1)
a_c = Line(I_b, a_1)
P'_c = Intersect(a_c, AD)
e_c = Line(P_c, K)
e'_c = Line(I, P'_c)
E_c = Intersect(e'_c, e_c)
ε_c = Locus(E_c, P_c)
P'_2 = Mirror(P_2, P_1)
s_g = Ray(P_1, P'_2)
P_g = Point(s_g)
b_g = Line(P_g, AD)
I_g = Intersect(b_g, b_1)
a_g = Line(I_g, a_1)
P'_g = Intersect(a_g, AD)
e_g = Line(P_g, K)
e'_g = Line(I, P'_g)
E_g = Intersect(e'_g, e_g)
ε_g = Locus(E_g, P_g)
P'_1 = Mirror(P_1, P_2)
s_d = Ray(P_2, P'_1)
P_d = Point(s_d)
b_d = Line(P_d, AD)
I_d = Intersect(b_d, b_1)
a_d = Line(I_d, a_1)
P'_d = Intersect(a_d, AD)
e_d = Line(P_d, K)
e'_d = Line(P'_d, I)
E_d = Intersect(e'_d, e_d)
ε_d = Locus(E_d, P_d)
c_1 = Segment(A, B)
c_2 = Segment(B, C)
c_3 = Segment(C, D)
c_4 = Segment(D, A)
M = Point(ε)
MO = Segment(M, O)
α = Point(MO)
distanceOα = Distance(O, α)
distanceOM = Distance(O, M)
ε_α = Dilate(ε, distanceOα / distanceOM, O)
OJ_s = Segment(O, J)
α' = Intersect(ε_α, OJ_s)
c_α = Circle(O, α')
S_α = Intersect(c_α, v)
u_α = Vector(O, α)
S'_α = Translate(S_α, u_α)
h_α = Segment(S_α, S'_α)
v_α = Segment(S'_α, α)