# coding=utf-8
# pylint: disable=invalid-name,line-too-long
# Syntax format: (raise your hand if you know lisp :-)
#
# 'state0':  ("file.svg", ( ( ('state1', dx, dy, T-B, L|R),),
#                           ( ('state2', ...), ('state3', ...),),
#                           ( ('state4', ...),),
#                           ) ),
# )
#
# Translation of the above in CNF:
# state0 -> state1
# state0 -> state2 state3
# state0 -> state4
#
# Semantics at state0:
# Paste subtree image from state1 onto "file.svg".
# Subtree image is translated by (dx, dy) (measured in units, not pixels!).
# Subtree image is flipped top to bottom if v==1.
# Subtree image is flipped left to right if h==1.
#
# Notes:
# Origin (0,0) is at *upper* left corner.
# For optional reflections, add both reflecting and non-reflecting rules
# For 180 degree rotations, set v = 1, h = 1.
# It helps to have an empty "epsilon" image.
#
"""Data for render alphabet soup"""

syntax = {
    "start": (
        "epsilon.svg",
        ((("lc", 0, 0, 0, 0),), (("UC", 0, 0, 0, 0),)),  # start state
    ),
    # lowercase
    "lc": (
        "epsilon.svg",
        (
            (("barsym", 0, 0, 0, 0),),  # (2096714) (26)
            (("lc2", 0, 0, 0, 0),),  # (830)    (19)
        ),
    ),
    # uppercase
    "UC": (
        "epsilon.svg",
        ((("UCb", 0, 0, 0, 0),), (("UCu", 0, -5, 0, 0),)),  # (2160) (30)
    ),
    "UCb": (
        "epsilon.svg",
        (
            (("Bar", 0, 0, 0, 0),),  # (21)  Psi T I KK Phi
            (("Bar", 0, 0, 0, 1),),  #
            (("D", 0, 0, 0, 0),),  # (39)  D O Q C G
            (("D", 0, 0, 0, 1),),  #
            (("E", 0, 0, 0, 0),),  # (373) E B PL 3 3r 8 S Theta Eth/Dyet
            (("E", 0, 0, 0, 1),),  #
            (("F", 0, 0, 0, 0),),  # (84)  F P R
            (("F", 0, 0, 0, 1),),  #
            (("H", 0, 0, 0, 0),),  # (8)   H Hblock
            (("H", 0, 0, 0, 1),),  #
            (("L", 0, 0, 0, 0),),  # (12)  L J U
            (("L", 0, 0, 0, 1),),  #
            (("V", 0, 0, 0, 1),),  # (6)   A V M Delta Forall W
            (("X", 0, 0, 0, 0),),  # (172) X N M W Sigma NN
            (("X", 0, 0, 0, 0),),  # (172) X N M W Sigma NN
        ),
    ),
    "UCu": ("epsilon.svg", ((("UCb", 0, 0, 1, 1),),)),
    # for statistical balancing
    "lc2": (
        "epsilon.svg",
        (
            (("osym", 0, 0, 0, 0),),  # (40)  o, c, e, ou
            (("vsym", 0, 0, 0, 0),),  # (40)  v, w, ^, y
            (("dsym", 0, 0, 0, 1),),  # (96)  x, z, 7, 2, yogh
            (("lc3", 0, 0, 0, 0),),  # (928) (5)
        ),
    ),
    "lc3": (
        "epsilon.svg",
        (
            (("3sym", 0, 0, 0, 0),),  # (40)  epsilon
            (("ssym", 0, 0, 0, 0),),  # (8)   s
            (("asym", 0, 0, 0, 0),),  # (880) a 6 9
        ),
    ),
    # symmetry rules
    "barsym": (
        "epsilon.svg",
        (
            (("bar", 0, 0, 0, 0),),
            (("bar", 0, 0, 0, 1),),
            (("bar", 0, 0, 1, 0),),
            (("bar", 0, 0, 1, 1),),
        ),
    ),
    "6sym": (
        "epsilon.svg",
        (
            (("6", 0, 0, 0, 0),),
            (("6", 0, 0, 0, 1),),
            (("6", 0, 0, 1, 0),),
            (("6", 0, 0, 1, 1),),
        ),
    ),
    "3sym": (
        "epsilon.svg",
        (
            (("3", 0, 0, 0, 0),),
            (("3", 0, 0, 0, 1),),
            (("3", 0, 0, 1, 0),),
            (("3", 0, 0, 1, 1),),
        ),
    ),
    "vsym": ("epsilon.svg", ((("v", 0, 0, 0, 0),), (("v", 0, 0, 1, 1),))),
    "osym": ("epsilon.svg", ((("o", 0, 0, 0, 0),), (("o", 0, 0, 0, 1),))),
    "ssym": ("epsilon.svg", ((("s", 0, 0, 0, 0),), (("s", 0, 0, 0, 1),))),
    "dsym": (
        "epsilon.svg",
        (
            (("diag", 0, 0, 0, 0), ("diag", 0, 0, 1, 1)),
            (("diag", 0, 0, 0, 1), ("diag", 0, 0, 1, 0)),
            (("dstk", 0, 0, 0, 0),),
        ),
    ),
    "dstk": (
        "epsilon.svg",
        (
            (("stik", 0, 4, 0, 0), ("z", 0, 0, 1, 1)),
            (("stik", 0, 4, 0, 0), ("x", 0, 0, 1, 1)),
            (("stik", 0, 4, 0, 1), ("z", 0, 0, 1, 0)),
            (("stik", 0, 4, 0, 1), ("x", 0, 0, 1, 0)),
        ),
    ),
    "asym": (
        "epsilon.svg",
        (
            (("abase", 0, 0, 0, 0),),
            (("abase", 0, 0, 0, 1),),
            (("abase", 0, 0, 1, 0),),
            (("abase", 0, 0, 1, 1),),
        ),
    ),
    # epsilon rules
    "diag": (
        "epsilon.svg",
        (
            (("x", 0, 0, 0, 0),),
            (("yogh", 0, 0, 1, 1),),
            (("z", 0, 0, 0, 0),),
            (("7", 0, 0, 0, 0),),
            (("2", 0, 0, 0, 0),),
        ),
    ),
    "bar": (
        "bar.svg",
        (
            (("vert", 0, 0, 0, 0), ("vert", 0, 0, 1, 0)),  # f l i t j glot.
            (("k", 0, 0, 0, 0), ("vert", 0, 0, 0, 0), ("vert", 0, 0, 1, 0)),  # k
            (("b", 0, 0, 0, 0), ("vert", 0, 0, 1, 0)),  # h heng
            (("n", 0, 0, 0, 0), ("vert", 0, 0, 1, 0)),  # n m r eng u uu mu
            (("b1", 0, 0, 0, 0), ("b0", 0, 0, 1, 0)),  # thorn eject.
            (("b1", 0, 0, 0, 0), ("n0", 0, 0, 1, 0)),  # b p q d
            (("n1", 0, 0, 0, 0), ("n0", 0, 0, 1, 0)),  # open-a
        ),
    ),
    "vert": (
        "epsilon.svg",
        (
            (("xtnd", 0, 0, 0, 0),),
            (("srf", 0, 0, 1, 0),),
            # (('xtnd', 0,0,0,1),),
            # (('srf',  0,0,1,1),),
        ),
    ),
    "srf": (
        "epsilon.svg",
        (
            (("lserif", 0, 0, 0, 0),),
            (("lserif", 0, 0, 0, 1),),
            (("serif", 0, 0, 0, 0),),
            (("tserif", 0, 0, 0, 0),),
            (("tserif", 0, 0, 0, 1),),
        ),
    ),
    "xtnd": (
        "epsilon.svg",
        (
            (("cross", 0, 0, 0, 0),),  # this needs to be L-R flippable
            (("cross", 0, 0, 0, 1),),
            (("l", 0, 0, 0, 0),),
            (("?", 0, 0, 0, 0),),
            (("?", 0, 0, 0, 1),),
            (("idot", 0, 0, 0, 0),),
        ),
    ),
    "loop": (
        "epsilon.svg",
        ((("o0", 5, 0, 0, 1),), (("30", 5, 0, 0, 1),)),  # loop-around elts
    ),
    "elike": (
        "epsilon.svg",
        (
            (("e", 0, 0, 0, 0), ("crv", 0, 0, 1, 0)),
            (("a", 0, 0, 0, 0), ("crv", 0, 0, 1, 0)),
            (("crv", 0, 0, 0, 0), ("crv", 0, 0, 1, 0)),
        ),
    ),
    "loop2": ("epsilon.svg", ((("elike", 0, 0, 0, 0),), (("loop", 0, 0, 0, 0),))),
    "hlike": (
        "epsilon.svg",
        (
            (("h", 0, 0, 0, 0),),  # h-like extensions
            (("m", 0, 0, 0, 0),),
            (("crv", 0, 0, 0, 0),),
        ),
    ),
    "crv": (
        "epsilon.svg",
        ((("r", 0, 0, 0, 0),), (("cserif", 0, 0, 1, 0),)),  # curvy things
    ),
    # image rules
    "abase": (
        "abase.svg",
        (
            (("n0", 0, 0, 1, 0), ("loop2", 0, 0, 0, 0)),
            (("n0", 0, 0, 1, 0), ("loop2", 0, 0, 1, 0)),
            (("b0", 0, 0, 1, 0), ("loop2", 0, 0, 0, 0)),
            (("b0", 0, 0, 1, 0), ("loop2", 0, 0, 1, 0)),
        ),
    ),
    "v": (
        "v.svg",
        (
            (("vserl", 0, 0, 0, 0), ("vserr", 0, 0, 0, 0)),
            (("vserl", 0, 0, 0, 0), ("vserr", 0, 0, 0, 0), ("y0", 0, 0, 0, 0)),
            (("vserl", 0, 0, 0, 0), ("w", 6, 0, 0, 0)),
            (("vserl", 0, 0, 0, 0), ("w", 6, 0, 0, 0), ("y0", 0, 0, 0, 0)),
        ),
    ),
    "w": (
        "v.svg",
        ((("vserr", 0, 0, 0, 0),), (("vserr", 0, 0, 0, 0), ("y0", 0, 0, 0, 0))),
    ),
    "y0": (
        "epsilon.svg",
        ((("y", 0, 0, 0, 1),), (("y", 0, 0, 0, 0),), (("gamma", 0, 0, 0, 0),)),
    ),
    "l": (
        "l.svg",
        ((("j", 0, 0, 0, 0),), (("j", 0, 0, 0, 1),), (("srf", 0, -4, 1, 0),)),
    ),
    "o": ("o.svg", ((("loop2", 0, 0, 0, 0),), (("loop2", 0, 0, 1, 0),))),
    "cross": ("cross.svg", ((("t", 0, 0, 0, 0),), (("f0", 0, 0, 0, 0),))),
    "f": (
        "f.svg",
        ((("j", 0, 0, 0, 0),), (("j", 0, 0, 0, 1),), (("srf", 0, -4, 1, 0),)),
    ),
    "f0": ("f.svg", ((("j", 0, 0, 0, 0),), (("srf", 0, -4, 1, 0),))),
    "idot": (
        "idot.svg",
        (
            (("serif", 0, 0, 1, 0),),
            (("lserif", 0, 0, 1, 0),),
            (("lserif", 0, 0, 1, 1),),
        ),
    ),
    "stik": (
        "f.svg",
        (
            (("srf", 0, -4, 1, 0),),
            # (('srf',  0,-4,1,1),),
        ),
    ),
    "3": ("3.svg", ((("loop2", 0, 0, 0, 0),),)),
    # uppercase
    # Bar rules
    "X": (
        "epsilon.svg",
        (
            (("Xtb", 0, 0, 0, 0), ("Xtb", 0, -5, 1, 1)),
            (("Xlr", 0, 0, 0, 0), ("Xlr", 0, -5, 1, 1)),
            (("Xtb", 0, 0, 0, 0), ("Xtb2", 0, -5, 1, 1)),
            (("Xlr", 0, 0, 0, 0), ("Xlr2", 0, -5, 1, 1)),
            (("Xtb2", 0, 0, 0, 0), ("Xtb", 0, -5, 1, 1)),
            (("Xlr2", 0, 0, 0, 0), ("Xlr", 0, -5, 1, 1)),
        ),
    ),
    "Xtb": (
        "epsilon.svg",
        (
            (("Xnw", 0, 0, 0, 0), ("Xne", 0, 0, 0, 0)),
            (("Xne", 0, 0, 0, 0), ("Xh", 0, 0, 0, 0), ("Lterm2", 0, 0, 0, 0)),
            (("Xnw", 0, 0, 0, 0), ("Xh", 0, 0, 0, 1), ("Lterm2", 0, 0, 0, 1)),
            (
                ("Xne", 0, 0, 0, 0),
                ("Xh", 0, 0, 0, 0),
                ("Xnw", 0, 0, 0, 0),
                ("Xh", 0, 0, 0, 1),
            ),
        ),
    ),
    "Xlr": (
        "epsilon.svg",
        (
            (("Xne", 0, -5, 1, 1), ("Xnw", 0, 0, 0, 0)),
            (
                ("Xne", 0, -5, 1, 1),
                ("Xvt", 0, 0, 0, 0),
                ("Xvb", 0, 0, 0, 0),
                ("ITSerif", 0.5, 0, 0, 0),
            ),
            (
                ("Xnw", 0, 0, 0, 0),
                ("Xvt", 0, 0, 0, 0),
                ("Xvt", 0, -5, 1, 0),
                ("IBSerif", 0, 0, 0, 0),
            ),
            (
                ("Xne", 0, -5, 1, 1),
                ("Xnw", 0, 0, 0, 0),
                ("Xvt", 0, 0, 0, 0),
                ("Xvb", 0, 0, 0, 0),
            ),
        ),
    ),
    "Xtb2": ("epsilon.svg", ((("Xne", 0, 0, 0, 0),), (("Xnw", 0, 0, 0, 0),))),
    "Xlr2": ("epsilon.svg", ((("Xnw", 0, 0, 0, 0),), (("Xne", 0, -5, 1, 1),))),
    "Xne": ("Xne.svg",),
    "Xnw": ("Xnw.svg",),
    "Xh": ("Xh.svg",),
    "Xvt": ("Xvt.svg",),
    "Xvb": ("Xvb.svg",),
    "Bar": (
        "barcap.svg",
        (
            (("Bartop", 0, 0, 0, 0), ("Barbot", 0, 0, 0, 0), ("Barmid", 0, 0, 0, 0)),
            (("Bartop2", 0, 0, 0, 0), ("Barbot2", 0, 0, 0, 0)),
        ),
    ),
    "Bartop": ("epsilon.svg", ((("ITSerif", 0.5, 0, 0, 0),), (("Tt", 0, 0, 0, 0),))),
    "Barbot": ("epsilon.svg", ((("IBSerif", 0, 0, 0, 0),), (("Tb", 0, 0, 0, 0),))),
    "Barbot2": ("epsilon.svg", ((("Barbot", 0, 0, 0, 0),), (("Psi", 0, 0, 0, 0),))),
    "Bartop2": ("epsilon.svg", ((("Bartop", 0, 0, 0, 0),), (("Psi", 0, -5, 1, 0),))),
    "Barmid": (
        "epsilon.svg",
        (
            (
                ("Hm", 0, 0, 0, 0),
                ("Eserif", 0, 0, 0, 0),
                ("Hm", -7.5, 0, 0, 1),
                ("Eserif", -7.5, 0, 0, 1),
            ),
            (("P", -2.5, 3, 0, 0), ("P", -5, 3, 0, 1)),
            (("P", -5, 3, 0, 1),),  # points left
        ),
    ),
    "Psi": (
        "epsilon.svg",
        ((("IBSerif", 0, 0, 0, 0), ("R", -2.5, 0, 0, 0), ("R", -5, 0, 0, 1)),),
    ),
    # D / E / F / H / L rules
    "D": (
        "epsilon.svg",
        (
            (("Dterm", 0, 0, 0, 0), ("Dterm", 0, 0, 0, 1)),
            (("Dterm", 0, 0, 0, 0), ("Dterm2", 0, 0, 0, 1)),
        ),
    ),
    "E": (
        "epsilon.svg",
        (
            (("Eterm", 0, 0, 0, 0), ("Eterm", 0, 0, 0, 1)),
            (("Eterm", 0, 0, 0, 0), ("Eterm2", 0, 0, 0, 1)),
            (("Eterm2", 0, 0, 0, 1), ("Eterm2", 0, -5, 1, 0)),  # for S
        ),
    ),
    "F": (
        "epsilon.svg",
        (
            (("Fterm", 0, 0, 0, 0), ("Fterm", 0, 0, 0, 1)),
            (("Fterm", 0, 0, 0, 0), ("Fterm2", 0, 0, 0, 1)),
        ),
    ),
    "H": (
        "epsilon.svg",
        (
            (("Hterm", 0, 0, 0, 0), ("Hterm", 0, 0, 0, 1)),
            (("Hterm", 0, 0, 0, 0), ("Hterm2", 0, 0, 0, 1)),
        ),
    ),
    "L": (
        "epsilon.svg",
        (
            (("Lterm", 0, 0, 0, 0), ("Lterm", 0, 0, 0, 1)),
            (("Lterm", 0, 0, 0, 0), ("Lterm2", 0, 0, 0, 1)),
        ),
    ),
    "Dterm": (
        "epsilon.svg",
        (
            (("Barterm", 0, 0, 0, 0), ("Et", 0, 0, 0, 0), ("Eb", 0, 0, 0, 0)),
            (("O", 0, 0, 0, 0),),
        ),
    ),
    "Dterm2": (
        "epsilon.svg",
        ((("C", 0, 0, 0, 1),), (("Ltserif", 0, 0, 0, 1), ("Lbserif", 0, 0, 0, 1))),
    ),
    "Eterm": (
        "epsilon.svg",
        (
            (
                ("Barterm", 0, 0, 0, 0),
                ("Et", 0, 0, 0, 0),
                ("Hm", 0, 0, 0, 0),
                ("Eb", 0, 0, 0, 0),
            ),
            (("B", 0, 0, 0, 1),),
            (("O", 0, 0, 0, 0), ("Ocross", 0, 0, 0, 0)),
            (("Dterm", 0, 0, 0, 0), ("Eserif", 0, 0, 0, 1)),
            (("Dterm2", 0, 0, 0, 0), ("Eserif", 0, 0, 0, 1)),
        ),
    ),
    "Eterm2": ("epsilon.svg", ((("P", 0, 0, 0, 1), ("Lterm2", 0, -5, 1, 0)),)),
    "Fterm": (
        "epsilon.svg",
        (
            (
                ("Barterm", 0, 0, 0, 0),
                ("Et", 0, 0, 0, 0),
                ("Hm", 0, 0, 0, 0),
                ("IBSerif", 0, 0, 0, 0),
            ),
            (("Lterm", 0, 0, 0, 0), ("Eserif", 0, 0, 0, 1)),
            (("P", 0, 0, 0, 1), ("R", 0, 0, 0, 1)),
            (("Ltserif", 0, 0, 0, 1), ("R", 0, 0, 0, 1)),
            (("Ltserif", 0, 0, 0, 1), ("Rblock", 0, 0, 0, 1)),
            (("Uterm", 0, 0, 0, 0), ("Ocross", 0, 0, 0, 0)),
        ),
    ),
    "Fterm2": (
        "epsilon.svg",
        ((("P", 0, 0, 0, 1),), (("Lterm2", 0, 0, 0, 0), ("Eserif", 0, 0, 0, 1))),
    ),
    "Hterm": (
        "epsilon.svg",
        (
            (
                ("Barterm", 0, 0, 0, 0),
                ("Hm", 0, 0, 0, 0),
                ("ITSerif", 0.5, 0, 0, 0),
                ("IBSerif", 0, 0, 0, 0),
            ),
            (("R", 0, 0, 0, 1), ("R", 0, -5, 1, 1)),
        ),
    ),
    "Hterm2": ("epsilon.svg", ((("R", 0, 0, 0, 1),), (("Rblock", 0, 0, 0, 1),))),
    "Lterm": (
        "epsilon.svg",
        (
            (("Barterm", 0, 0, 0, 0), ("Et", 0, 0, 0, 0), ("IBSerif", 0, 0, 0, 0)),
            (("Uterm", 0, 0, 0, 0),),
        ),
    ),
    "Lterm2": ("epsilon.svg", ((("Ltserif", 0, 0, 0, 1),), (("Cserif", 0, -5, 1, 1),))),
    "B": ("epsilon.svg", ((("P", 0, 0, 0, 0), ("P", 0, 6, 0, 0)),)),
    "C": ("epsilon.svg", ((("Cserif", 0, 0, 0, 0), ("Cserif", 0, -5, 1, 0)),)),
    "Cserif": (
        "epsilon.svg",
        (  # (('Ctail', 0,0,0,0),), # I just hate the way these look...
            (("Cblob", 0, 0, 0, 0),),
            (("Chook", 0, -5, 1, 0),),
            (("G", 0, 0, 0, 0),),
        ),
    ),
    "O": (
        "epsilon.svg",
        ((("Oterm", 0, 0, 0, 0),), (("Q", 0, 0, 0, 1),), (("Qu", 0, 0, 0, 1),)),
    ),
    "Qu": ("epsilon.svg", ((("Q", 0, -5, 1, 0),),)),
    "Barterm": ("barcap.svg",),
    "Ctail": ("Ctail.svg",),
    "Chook": ("Chook.svg",),
    "Cblob": ("Cblob.svg",),
    "G": ("G.svg",),
    "Ltserif": ("Lt.svg",),
    "Lbserif": ("Lb.svg",),
    "Et": ("Et.svg",),
    "Eb": ("Eb.svg",),
    "Hm": ("hcap.svg",),
    "P": ("P.svg",),
    "Tb": ("Tb.svg",),
    "Tt": ("Tt.svg",),
    "Ocross": ("Ocross.svg",),
    "Oterm": ("ocap.svg",),
    "Q": ("Q.svg",),
    "R": ("rcap.svg", ((("IBSerif", -0.5, 0, 0, 1),),)),
    "Rblock": ("Rblock.svg", ((("IBSerif", -0.5, 0, 0, 1),),)),
    "Uterm": ("U.svg", ((("IBSerif", -0.5, 0, 0, 0),),)),
    "IBSerif": ("IBSerif.svg",),
    "ITSerif": ("ITSerif.svg",),
    "Eserif": ("Eserif.svg",),
    # V rules
    "V": (
        "vcap.svg",
        ((("V2", 0, 0, 0, 0),), (("V2", 0, 0, 0, 0), ("Across", 0, 0, 0, 0))),
    ),
    "V2": (
        "epsilon.svg",
        ((("M", 0, 0, 0, 0),), (("Delta", 0, 0, 0, 0),), (("Vser", 0, 0, 0, 0),)),
    ),
    "M": ("mcap.svg", ((("IBSerif", -1.5, 0, 0, 0), ("IBSerif", 1.5, 0, 0, 1)),)),
    "Delta": ("Delta.svg",),
    "Vser": ("Vser.svg",),
    "Across": ("acap.svg",),
    # single daughter rules
    "b": (
        "b.svg",
        (
            (("hlike", 0, 0, 0, 0), ("f", 0, 0, 0, 0)),
            # (('hlike', 0,0,0,0), ('f', 0,0,0,1),),
        ),
    ),
    "b1": (
        "b.svg",
        (
            (("loop", 0, 0, 0, 0), ("f", 0, 0, 0, 0)),
            # (('loop', 0,0,0,0), ('f', 0,0,0,1),),
        ),
    ),
    "b0": (
        "b.svg",
        (
            (("f", 0, 0, 0, 0),),
            # (('f', 0,0,0,1),),
        ),
    ),
    "h": ("h.svg", ((("vert", 5, 0, 1, 0),),)),
    "m": (
        "m.svg",
        ((("h", 5, 0, 0, 0), ("vert", 5, 0, 1, 0)),),
    ),  # change later to allow 3 humped m
    "n": ("n.svg", ((("hlike", 0, 0, 0, 0),),)),
    "n1": ("n.svg", ((("loop", 0, 0, 0, 0),),)),
    "s": ("s.svg", ((("crv", 0, 0, 0, 0), ("crv", 5, 0, 1, 1)),)),
    "j": ("j.svg", ((("crv", 0, -5, 0, 0),),)),
    "?": ("question.svg", ((("crv", -2.5, -5, 0, 0),),)),
    "yogh": ("yogh.svg", ((("crv", -2.5, 4, 1, 0),),)),
    # terminal rules
    "2": ("2.svg",),
    "30": ("3.svg",),
    "7": ("7.svg",),
    "a": ("a.svg",),
    "cserif": ("cserif.svg",),
    "e": ("e.svg",),
    "k": ("k.svg",),
    "n0": ("n.svg",),
    "o0": ("o.svg",),
    "r": ("r.svg",),
    "serif": ("serif.svg",),
    "tserif": ("tserif.svg",),
    "lserif": ("lserif.svg",),
    "t": ("t.svg",),
    "x": ("x.svg",),
    "z": ("z.svg",),
    "vserl": ("vserl.svg",),
    "vserr": ("vserr.svg",),
    "y": ("y.svg",),
    "gamma": ("gamma.svg",),
}

alphabet = {
    # Uppercase fix Y make 2)
    "1": (
        "start.[.UC.[.UCb.[.Bar.[.Bartop2.[.Bartop.[.ITSerif.].].Barbot2.[.Barbot.[.IBSerif.].].].].].]",
    ),
    "33": (
        "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.[.C.|.].Eserif.|.].Eterm.[.O.Ocross.].|.].].].]",
    ),
    "3": (
        "start.[.UC.[.UCb.[.E.[.Eterm.[.B.[.P.P.].|.].Eterm.[.Dterm2.[.C.|.].Eserif.|.].|.].|.].].]",
        "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.[.C.|.].Eserif.|.].Eterm.[.O.Ocross.].|.].].].]",
    ),
    "4": (
        "start.[.UC.[.UCu.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm2.[.Rblock.[.IBSerif.|.].|.].|.].].-.|.].].]",
    ),
    "5": (
        "start.[.UC.[.UCu.[.UCb.[.E.[.Eterm.[.Dterm2.[.Ltserif.|.Lbserif.|.].Eserif.|.].Eterm2.[.P.|.Lterm2.[.Ltserif.|.].-.].|.].|.].-.|.].].]",
    ),
    "6": (
        "start.[.UC.[.UCu.[.UCb.[.E.[.Eterm.[.Dterm.[.O.].Eserif.|.].Eterm2.[.P.|.Lterm2.-.].|.].|.].-.|.].].]",
        "start.[.UC.[.UCu.[.UCb.[.E.[.Eterm.[.O.Ocross.].Eterm2.[.P.|.Lterm2.-.].|.].|.].-.|.].].]",
    ),
    "7": (
        "start.[.UC.[.UCb.[.X.[.Xtb.[.Xne.Xh.Lterm2.[.Ltserif.|.].].Xtb2.[.Xne.].-.|.].].].]",
    ),
    "8": (
        "start.[.UC.[.UCb.[.E.[.Eterm.[.B.[.P.P.].|.].Eterm.[.B.[.P.P.].|.].|.].].].]",
    ),
    "9": (
        "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm.[.O.].Eserif.|.].Eterm2.[.P.|.Lterm2.-.].|.].|.].].]",
        "start.[.UC.[.UCb.[.E.[.Eterm.[.O.Ocross.].Eterm2.[.P.|.Lterm2.-.].|.].|.].].]",
    ),
    "0": ("start.[.UC.[.UCb.[.D.[.Dterm.[.O.].Dterm.[.O.].|.].].].]",),
    "A": (
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Barterm.Et.Hm.IBSerif.].|.].].].]",  # no flip needed
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].|.].].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].|.].|.].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Uterm.[.IBSerif.].Ocross.].|.].].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Uterm.[.IBSerif.].Ocross.].|.].|.].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].Fterm.[.Uterm.[.IBSerif.].Ocross.].|.].|.].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Uterm.[.IBSerif.].Ocross.].Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].|.].|.].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Uterm.[.IBSerif.].Ocross.].Fterm.[.Uterm.[.IBSerif.].Ocross.].|.].].].]",
        "start.[.UC.[.UCu.[.UCb.[.V.[.V2.[.Vser.].Across.].|.].-.|.].].]",
    ),
    "B": (
        "start.[.UC.[.UCb.[.E.[.Eterm.[.B.[.P.P.].|.].Eterm.|.].|.].].]",
        "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm.Eserif.|.].Eterm.[.B.[.P.P.].|.].|.].].].]",
    ),
    "Be": (
        "start.[.UC.[.UCu.[.UCb.[.E.[.Eterm.[.Barterm.Et.Hm.Eb.].Eterm2.[.P.|.Lterm2.-.].|.].|.].-.|.].].]",  # cyrillic
        "start.[.UC.[.UCu.[.UCb.[.E.[.Eterm.[.Dterm.[.Barterm.Et.Eb.].Eserif.|.].Eterm2.[.P.|.Lterm2.-.].|.].|.].-.|.].].]",
    ),
    "C": ("start.[.UC.[.UCb.[.D.[.Dterm.[.O.[.Oterm.].].Dterm2.[.C.|.].|.].].].]",),
    "D": (
        "start.[.UC.[.UCb.[.D.[.Dterm.Dterm.[.O.[.Oterm.].].|.].].].]",
        "start.[.UC.[.UCb.[.D.[.Dterm.[.O.[.Oterm.].].Dterm2.[.Ltserif.|.Lbserif.|.].|.].|.].].].",
        "start.[.UC.[.UCb.[.D.[.Dterm.[.Barterm.Et.Eb.].Dterm.[.Barterm.Et.Eb.].|.].].].]",
    ),
    "Delta": ("start.[.UC.[.UCu.[.UCb.[.V.[.V2.[.Delta.].].|.].-.|.].].]",),  # Delta
    "De": (
        "start.[.UC.[.UCu.[.UCb.[.D.[.Dterm.[.Barterm.Et.Eb.].Dterm.[.Barterm.Et.Eb.].|.].].-.|.].].]",
    ),  # Cyrillic
    "E": (
        "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.Eserif.|.].Eterm.[.Dterm.[.Barterm.Et.Eb.].Eserif.|.].|.].|.].].]",
        "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.Eserif.|.].Eterm.[.Dterm.[.O.].Eserif.|.].|.].|.].].]",
        "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.Eserif.|.].Eterm.[.B.[.P.P.].|.].|.].|.].].]",
        "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.Eserif.|.].Eterm.[.Barterm.Et.Hm.Eb.].|.].|.].].]",
        "start.[.UC.[.UCb.[.E.[.Eterm.[.O.Ocross.].Eterm.[.Dterm2.Eserif.|.].|.].].].]",
    ),
    "Eth": (
        "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm.[.O.].Eserif.|.].Eterm.[.Barterm.Et.Hm.Eb.].|.].|.].].]",
    ),
    "F": ("start.[.UC.[.UCb.[.F.[.Fterm.Fterm2.[.Lterm2.Eserif.|.].|.].].].]",),
    "G": (
        "start.[.UC.[.UCb.[.D.[.Dterm.[.O.].Dterm2.[.C.[.Cserif.[.G.].Cserif.-.].|.].|.].].].]",
    ),
    "Gamma": (
        "start.[.UC.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm2.|.].].].]",
    ),  # Gamma
    "H": (
        "start.[.UC.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm.[.Barterm.Hm.ITSerif.IBSerif.].|.].].].]",
        "start.[.UC.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm2.[.R.[.IBSerif.|.].|.].|.].].].]",
        "start.[.UC.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm2.[.Rblock.[.IBSerif.|.].|.].|.].].].]",
    ),
    "Che": (
        "start.[.UC.[.UCu.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm2.[.Rblock.[.IBSerif.|.].|.].|.].].-.|.].].]",  # Cyrillic
        "start.[.UC.[.UCu.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm2.[.R.[.IBSerif.|.].|.].|.].].-.|.].].]",
    ),
    "Heng": (
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Ltserif.|.R.[.IBSerif.|.].|.].|.].].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Ltserif.|.Rblock.[.IBSerif.|.].|.].|.].].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Barterm.Et.IBSerif.].Eserif.|.].Fterm.[.Ltserif.|.R.[.IBSerif.|.].|.].|.].].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Barterm.Et.IBSerif.].Eserif.|.].Fterm.[.Ltserif.|.Rblock.[.IBSerif.|.].|.].|.].].].]",
    ),
    "I": (
        "start.[.UC.[.UCb.[.Bar.[.Bartop2.[.Bartop.[.ITSerif.].].Barbot2.[.Barbot.[.IBSerif.].].].].].]",
        "start.[.UC.[.UCb.[.Bar.[.Bartop2.[.Bartop.[.Tt.].].Barbot2.[.Barbot.[.Tb.].].].].].]",
    ),
    "J": (
        "start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Uterm.[.IBSerif.].].Lterm2.|.].].-.|.].].]",
    ),
    "K": (
        "start.[.UC.[.UCu.[.UCb.[.X.[.Xlr.[.Xne.-.|.Xnw.].Xlr.[.Xne.-.|.Xvt.Xvb.ITSerif.].-.|.].].-.|.].].]",
        "start.[.UC.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm.[.R.[.IBSerif.|.].|.R.[.IBSerif.|.].-.|.].|.].].].]",
    ),
    "Zhe": (
        "start.[.UC.[.UCb.[.Bar.[.Bartop2.[.Psi.[.IBSerif.R.[.IBSerif.|.].R.[.IBSerif.|.].|.].-.].Barbot2.[.Psi.[.IBSerif.R.[.IBSerif.|.].R.[.IBSerif.|.].|.].].].].].]",
    ),  # Cyrillic
    "L": (
        "start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm2.|.].|.].-.|.].].]",
    ),
    "Lambda": ("start.[.UC.[.UCu.[.UCb.[.V.[.V2.[.Vser.].].|.].-.|.].].]",),  # Lambda
    "M": (
        "start.[.UC.[.UCu.[.UCb.[.X.[.Xlr.[.Xne.-.|.Xvt.Xvb.ITSerif.].Xlr.[.Xnw.Xvt.Xvt.-.IBSerif.].-.|.].].-.|.].].]",
        "start.[.UC.[.UCb.[.V.[.V2.[.M.[.IBSerif.IBSerif.|.].].].|.].].]",
    ),
    "N": (
        "start.[.UC.[.UCu.[.UCb.[.X.[.Xlr.[.Xnw.Xvt.Xvt.-.IBSerif.].Xlr.[.Xnw.Xvt.Xvt.-.IBSerif.].-.|.].].-.|.].].]",
        "start.[.UC.[.UCb.[.L.[.Lterm.[.Uterm.[.IBSerif.].].Lterm.[.Barterm.Et.IBSerif.].|.].|.].].]",
    ),
    "NN": (
        "start.[.UC.[.UCu.[.UCb.[.X.[.Xlr.[.Xne.-.|.Xvt.Xvb.ITSerif.].Xlr.[.Xne.-.|.Xvt.Xvb.ITSerif.].-.|.].].-.|.].].]",
    ),  # Cyrillic I
    "O": ("start.[.UC.[.UCb.[.D.[.Dterm.[.O.].Dterm.[.O.].|.].].].]",),
    "P": (
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm2.[.P.|.].|.].].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Ltserif.|.R.[.IBSerif.|.].|.].Fterm2.[.P.|.].|.].].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Ltserif.|.Rblock.[.IBSerif.|.].|.].Fterm2.[.P.|.].|.].].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Barterm.Et.IBSerif.].Eserif.|.].Fterm2.[.P.|.].|.].].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].Fterm2.[.P.|.].|.].].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Uterm.[.IBSerif.].Ocross.].Fterm2.[.P.|.].|.].].].]",
    ),
    "PL": (
        "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm.[.Barterm.Et.Eb.].Eserif.|.].Eterm2.[.P.|.Lterm2.-.].|.].].].]",
        "start.[.UC.[.UCb.[.E.[.Eterm.[.Barterm.Et.Hm.Eb.].Eterm2.[.P.|.Lterm2.[.Cserif.-.|.].-.].|.].].].]",
    ),
    "Phi": (
        "start.[.UC.[.UCb.[.Bar.[.Bartop.[.ITSerif.].Barbot.[.IBSerif.].Barmid.[.P.P.|.].].].].]",
    ),
    "Pi": (
        "start.[.UC.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm.[.Barterm.Et.IBSerif.].|.].].].]",
    ),
    "Psi": (
        "start.[.UC.[.UCb.[.Bar.[.Bartop2.[.Psi.[.IBSerif.R.[.IBSerif.|.].R.[.IBSerif.|.].|.].-.].Barbot2.[.Barbot.[.IBSerif.].].].].].]",
    ),
    "Soft": (
        "start.[.UC.[.UCu.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm2.[.P.|.].|.].|.].-.|.].].]",  # Cyrillic Yeru/Soft/Hard
        "start.[.UC.[.UCu.[.UCb.[.F.[.Fterm.[.Lterm.[.Barterm.Et.IBSerif.].Eserif.|.].Fterm2.[.P.|.].|.].|.].-.|.].].]",
        "start.[.UC.[.UCu.[.UCb.[.F.[.Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].Fterm2.[.P.|.].|.].|.].-.|.].].]",
        "start.[.UC.[.UCu.[.UCb.[.F.[.Fterm.[.Ltserif.|.Rblock.[.IBSerif.|.].|.].Fterm2.[.P.|.].|.].|.].-.|.].].]",
        "start.[.UC.[.UCu.[.UCb.[.F.[.Fterm.[.Uterm.[.IBSerif.].Ocross.].Fterm2.[.P.|.].|.].|.].-.|.].].]",
    ),
    "Q": (
        "start.[.UC.[.UCb.[.D.[.Dterm.[.O.[.Oterm.].].Dterm.[.O.[.Q.|.].].|.].].].]",
    ),
    "R": (
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Barterm.Et.IBSerif.].Eserif.|.].Fterm.[.P.|.R.[.IBSerif.|.].|.].|.].].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].Fterm.[.P.|.R.[.IBSerif.|.].|.].|.].].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.P.|.R.[.IBSerif.|.].|.].Fterm.[.Barterm.Et.Hm.IBSerif.].|.].|.].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Uterm.[.IBSerif.].Ocross.].Fterm.[.P.|.R.[.IBSerif.|.].|.].|.].].].]",
    ),
    "Ya": (
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Barterm.Et.IBSerif.].Eserif.|.].Fterm.[.P.|.R.[.IBSerif.|.].|.].|.].|.].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].Fterm.[.P.|.R.[.IBSerif.|.].|.].|.].|.].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.P.|.R.[.IBSerif.|.].|.].Fterm.[.Barterm.Et.Hm.IBSerif.].|.].].].]",
        "start.[.UC.[.UCb.[.F.[.Fterm.[.Uterm.[.IBSerif.].Ocross.].Fterm.[.P.|.R.[.IBSerif.|.].|.].|.].|.].].]",
    ),
    "S": (
        "start.[.UC.[.UCb.[.E.[.Eterm2.[.P.|.Lterm2.-.].|.Eterm2.[.P.|.Lterm2.-.].-.].|.].].]",
    ),
    "Sigma": (
        "start.[.UC.[.UCb.[.X.[.Xtb.[.Xnw.Xh.|.Lterm2.|.].Xtb.[.Xne.Xh.Lterm2.].-.|.].].].]",
    ),
    "T": (
        "start.[.UC.[.UCb.[.Bar.[.Bartop2.[.Bartop.[.Tt.].].Barbot2.[.Barbot.[.IBSerif.].].].].].]",
        "start.[.UC.[.UCb.[.Bar.[.Bartop.[.ITSerif.].Barbot.[.IBSerif.].Barmid.[.Hm.Eserif.Hm.|.Eserif.|.].].].].]",
    ),
    "Theta": (
        "start.[.UC.[.UCb.[.E.[.Eterm.[.O.Ocross.].Eterm.[.O.Ocross.].|.].].].]",
    ),
    "Thorn": (
        "start.[.UC.[.UCu.[.UCb.[.Bar.[.Bartop.[.ITSerif.].Barbot.[.IBSerif.].Barmid.[.P.|.].].].-.|.].].]",
    ),
    "U": (
        "start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm.[.Barterm.Et.IBSerif.].|.].|.].-.|.].].]",
        "start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm.[.Uterm.[.IBSerif.].].|.].].-.|.].].]",
        "start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Uterm.[.IBSerif.].].Lterm.[.Uterm.[.IBSerif.].].|.].].-.|.].].]",
        "start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm.[.Barterm.Et.IBSerif.].|.].].-.|.].].]",
    ),
    "Tse": (
        "start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm.[.Barterm.Et.IBSerif.].|.].].-.|.].].]",
    ),  # Cyrillic
    "V": ("start.[.UC.[.UCb.[.V.[.V2.[.Vser.].].|.].].]",),
    "W": (
        "start.[.UC.[.UCb.[.X.[.Xlr.[.Xne.-.|.Xvt.Xvb.ITSerif.].Xlr.[.Xnw.Xvt.Xvt.-.IBSerif.].-.|.].].].]",
        "start.[.UC.[.UCu.[.UCb.[.V.[.V2.[.M.[.IBSerif.IBSerif.|.].].].|.].-.|.].].]",
    ),
    "X": (
        "start.[.UC.[.UCu.[.UCb.[.X.[.Xlr.[.Xne.-.|.Xnw.].Xlr.[.Xne.-.|.Xnw.].-.|.].].-.|.].].]",
        "start.[.UC.[.UCb.[.H.[.Hterm.[.R.|.R.-.|.].Hterm.[.R.|.R.-.|.].|.].].].]",
    ),
    "Xi": (
        "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.[.Ltserif.|.Lbserif.|.].Eserif.|.].Eterm.[.Dterm2.[.Ltserif.|.Lbserif.|.].Eserif.|.].|.].|.].].]",
    ),
    "Y": ("start.[.UC.[.UCb.[.X.[.Xlr.[.Xne.-.|.Xnw.].Xlr2.[.Xne.-.|.].-.|.].].].]",),
    "Z": (
        "start.[.UC.[.UCb.[.X.[.Xtb.[.Xne.Xh.Lterm2.].Xtb.[.Xne.Xh.Lterm2.].-.|.].].].]",
    ),
    # Lowercase
    "a": (
        "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.n0.-.loop2.[.elike.[.a.crv.-.].].-.].|.].].].].]",
        "start.[.lc.[.barsym.[.bar.[.n1.[.loop.].n0.-.].-.|.].].]",
        "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.n0.-.loop2.[.loop.].].|.].].].].]",
    ),
    "carat": ("start.[.lc.[.lc2.[.vsym.[.v.[.vserl.vserr.].-.|.].].].]",),
    "b": (
        "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.].n0.-.].].].]",
        "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.].-.loop2.[.loop.].].-.].].].].]",
        "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.|.].n0.-.].].].]",
        "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.|.].-.loop2.[.loop.].].-.].].].].]",
    ),
    "c": (
        "start.[.lc.[.lc2.[.osym.[.o.[.loop2.[.elike.[.crv.-.|.crv.|.].|.].].].].].]",
    ),
    "d": (
        "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.].n0.-.].].|.].]",
        "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.].-.loop2.[.loop.].].-.].|.].].].]",
        "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.|.].n0.-.].].|.].]",
        "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.|.].-.loop2.[.loop.].].-.].|.].].].]",
    ),
    "e": (
        "start.[.lc.[.lc2.[.osym.[.o.[.loop2.[.elike.[.e.crv.-.].].].].].].]",
        "start.[.lc.[.lc2.[.lc3.[.3sym.[.3.[.loop2.[.elike.[.crv.crv.-.].].].].].].].]",
    ),
    "epsi": (
        "start.[.lc.[.lc2.[.lc3.[.3sym.[.3.[.loop2.[.elike.[.crv.crv.-.].].].].].].].]",
    ),
    "f": (
        "start.[.lc.[.barsym.[.bar.[.vert.[.xtnd.[.cross.[.f0.[.j.].].].].vert.-.].].].]",
    ),
    "g": (
        "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.[.j.[.crv.].].].n0.-.].-.|.].].]",
        "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.[.j.].].-.loop2.[.loop.].].-.].-.|.].].].]",
    ),
    "gamma": ("start.[.lc.[.lc2.[.vsym.[.v.[.vserl.vserr.y0.[.gamma.].].].].].]",),
    "h": (
        "start.[.lc.[.barsym.[.bar.[.b.[.hlike.[.h.].f.].vert.-.].].].]",
        "start.[.lc.[.barsym.[.bar.[.b.[.hlike.[.h.].f.|.].vert.-.].].].]",
    ),
    "heng": (
        "start.[.lc.[.barsym.[.bar.[.b.[.hlike.[.h.[.vert.[.xtnd.[.l.[.j.[.crv.].].].|.].-.].].f.[.j.[.crv.].].].vert.[.srf.-.|.].-.].].].]",
    ),
    "i": (
        "start.[.lc.[.barsym.[.bar.[.vert.vert.[.xtnd.[.idot.].-.].].-.|.].].]",
        "start.[.lc.[.barsym.[.bar.[.vert.vert.[.xtnd.[.idot.].-.].|.].-.|.].].]",
    ),
    "j": (
        "start.[.lc.[.barsym.[.bar.[.vert.[.xtnd.[.idot.].-.].vert.[.xtnd.[.l.[.j.].].].|.].-.].].]",
    ),
    "k": ("start.[.lc.[.barsym.[.bar.[.k.vert.vert.-.].].].]",),
    "l": (
        "start.[.lc.[.barsym.[.bar.[.vert.vert.[.xtnd.[.l.].-.].|.].-.|.].].]",
        "start.[.lc.[.barsym.[.bar.[.vert.vert.[.xtnd.[.l.|.].-.].|.].-.|.].].]",
    ),
    "lambda": ("start.[.lc.[.lc2.[.vsym.[.v.[.vserl.vserr.y0.].-.|.].].].]",),
    "m": (
        "start.[.lc.[.barsym.[.bar.[.n.[.hlike.[.m.[.h.[.vert.-.].vert.-.].].].vert.-.].].].]",
    ),
    "mu": (
        "start.[.lc.[.barsym.[.bar.[.b.[.hlike.[.h.[.vert.-.].].f.].vert.-.].-.|.].].]",
    ),
    "muu": (
        "start.[.lc.[.barsym.[.bar.[.b.[.hlike.[.m.[.h.[.vert.-.].vert.-.].].f.].vert.-.|.].-.|.].].]",
    ),
    "n": ("start.[.lc.[.barsym.[.bar.[.n.[.hlike.[.h.[.vert.-.].].].vert.-.].].].]",),
    "ng": (
        "start.[.lc.[.barsym.[.bar.[.n.[.hlike.[.h.[.vert.[.xtnd.[.l.[.j.].].|.].-.].].].vert.-.].].].]",
    ),
    "o": ("start.[.lc.[.lc2.[.osym.[.o.[.loop2.[.loop.[.o0.|.].].].].].].]",),
    "p": (
        "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.].n0.-.].].-.].]",
        "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.].-.loop2.[.loop.].].-.].-.].].].]",
        "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.|.].n0.-.].].-.].]",
        "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.|.].-.loop2.[.loop.].].-.].-.].].].]",
    ),
    "q": (
        "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.].n0.-.].].-.|.].]",
        "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.].-.loop2.[.loop.].].-.].-.|.].].].]",
        "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.|.].n0.-.].].-.|.].]",
        "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.|.].-.loop2.[.loop.].].-.].-.|.].].].]",
    ),
    "r": ("start.[.lc.[.barsym.[.bar.[.n.[.hlike.[.crv.].].vert.-.].].].]",),
    "s": ("start.[.lc.[.lc2.[.lc3.[.ssym.[.s.[.crv.crv.-.|.].].].].].]",),
    "t": ("start.[.lc.[.barsym.[.bar.[.vert.[.xtnd.[.cross.[.f0.].].].vert.-.].].].]",),
    "u": (
        "start.[.lc.[.barsym.[.bar.[.n.[.hlike.[.h.[.vert.-.].].].vert.-.].-.|.].].]",
    ),
    "uu": (
        "start.[.lc.[.barsym.[.bar.[.n.[.hlike.[.m.[.h.[.vert.-.].vert.-.].].].vert.-.].-.|.].].]",
    ),
    "v": ("start.[.lc.[.lc2.[.vsym.[.v.[.vserl.vserr.].].].].]",),
    "w": ("start.[.lc.[.lc2.[.vsym.[.v.[.vserl.w.[.vserr.].].].].].]",),
    "x": ("start.[.lc.[.lc2.[.dsym.[.diag.[.x.].-.diag.[.x.].|.].-.].].]",),
    "y": ("start.[.lc.[.lc2.[.vsym.[.v.[.vserl.vserr.y0.].].].].]",),
    "yogh": (
        "start.[.lc.[.lc2.[.dsym.[.diag.[.z.].|.diag.[.yogh.[.crv.-.].-.|.].-.].].].]",
    ),
    "z": ("start.[.lc.[.lc2.[.dsym.[.diag.[.z.].diag.[.z.].-.|.].|.].].]",),
    "glot": ("start.[.lc.[.barsym.[.bar.[.vert.[.xtnd.[.?.|.].].vert.-.].].].]",),
    "1l": (
        "start.[.lc.[.barsym.[.bar.[.vert.[.srf.[.lserif.].].vert.[.srf.[.serif.].-.].|.].].-.].]",
    ),
    "2l": ("start.[.lc.[.lc2.[.dsym.[.diag.[.2.].diag.[.z.].-.|.].|.].].]",),
    "3l": (
        "start.[.lc.[.lc2.[.dsym.[.diag.[.z.].|.diag.[.yogh.[.crv.-.].-.|.].-.].].].]",
    ),
    "6l": (
        "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.[.j.].].-.loop2.[.loop.].-.].-.].].].].]",
    ),
    "7l": ("start.[.lc.[.lc2.[.dsym.[.diag.[.z.].diag.[.7.].-.|.].|.].].]",),
    "8l": ("start.[.lc.[.lc2.[.lc3.[.3sym.[.3.[.loop2.[.loop.[.30.|.].].].].].].].]",),
    "9l": (
        "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.[.j.].].-.loop2.[.loop.].-.].|.].].].].]",
    ),
    "0l": ("start.[.lc.[.lc2.[.osym.[.o.[.loop2.[.loop.[.o0.|.].].].].].].]",),
}

space = 4  # number of unit boxes to make a " " space in string
units = 36  # pixels per unit box in font
font = "alphabet_soup/"  # location of font images
