L = (2.98, -3.6)
M = (3.68, -3.36)
poly2 = F(L, M)
A = (5.86, -0.54)
B = (6.12, -4.02)
a = Line(A, B)
L'_1 = Mirror(L, a)
C = Mirror((2.6999999999999997, 2.500000000000016), a)
D = Mirror((5.699999999999998, 2.680000000000016), a)
E = Mirror((5.759999999999998, 1.6800000000000133), a)
F = Mirror((3.7599999999999993, 1.5600000000000134), a)
G = Mirror((3.8199999999999994, 0.5600000000000106), a)
H = Mirror((4.819999999999999, 0.6200000000000108), a)
I = Mirror((4.88, -0.379999999999992), a)
J = Mirror((3.8799999999999994, -0.43999999999999206), a)
M'_1 = Mirror(M, a)
L' = Mirror(L, a)
M' = Mirror(M, a)
b = Line(L', M')
c = OrthogonalLine(L', b)
d = OrthogonalLine(M', b)
e = Circle(L', M')
K = Intersect(e, c, 1)
L'' = Mirror(L', K)
K' = Mirror(K, L'')
L''' = Mirror(L'', K')
K'' = Mirror(K', L''')
N = Mirror(L''', K'')
f = OrthogonalLine(N, c)
g = OrthogonalLine(K'', c)
h = OrthogonalLine(L''', c)
i = OrthogonalLine(K', c)
O = Intersect(d, f)
N' = Mirror(N, O)
O' = Mirror(O, N')
j = OrthogonalLine(O', f)
k = OrthogonalLine(N', f)
P = Intersect(g, j)
Q = Intersect(d, g)
R = Intersect(d, h)
S = Intersect(h, k)
T = Intersect(i, k)
U = Intersect(d, i)
poly1, m', u, t, s, r, q, p, o', n, l' = Polygon(M', U, T, S, R, Q, P, O', N, L')

Tool: F
Input: A, B
Output: poly1

a = Line(A, B)
b = OrthogonalLine(A, a)
c = OrthogonalLine(B, a)
d = Circle(A, B)
C = Intersect(d, b, 2)
A' = Mirror(A, C)
C' = Mirror(C, A')
A'' = Mirror(A', C')
C'' = Mirror(C', A'')
A''' = Mirror(A'', C'')
e = OrthogonalLine(A''', b)
f = OrthogonalLine(C'', b)
g = OrthogonalLine(A'', b)
h = OrthogonalLine(C', b)
D = Intersect(c, e)
E = Mirror(A''', D)
D' = Mirror(D, E)
i = OrthogonalLine(E, e)
j = OrthogonalLine(D', e)
F = Intersect(f, j)
G = Intersect(c, f)
H = Intersect(c, g)
I = Intersect(g, i)
J = Intersect(h, i)
K = Intersect(c, h)
poly1, a_1, a''', d', f_1, g_1, h_1, i_1, j_1, k, b_1 = Polygon(A, A''', D', F, G, H, I, J, K, B)