1
0
Fork 0
inkscape/share/extensions/render_alphabetsoup_config.py
Daniel Baumann 02d935e272
Adding upstream version 1.4.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 23:40:13 +02:00

902 lines
35 KiB
Python
Executable file

# 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