| Viewing file:  constants.py (81.43 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
from __future__ import absolute_import, division, unicode_literals
 import string
 
 EOF = None
 
 E = {
 "null-character":
 "Null character in input stream, replaced with U+FFFD.",
 "invalid-codepoint":
 "Invalid codepoint in stream.",
 "incorrectly-placed-solidus":
 "Solidus (/) incorrectly placed in tag.",
 "incorrect-cr-newline-entity":
 "Incorrect CR newline entity, replaced with LF.",
 "illegal-windows-1252-entity":
 "Entity used with illegal number (windows-1252 reference).",
 "cant-convert-numeric-entity":
 "Numeric entity couldn't be converted to character "
 "(codepoint U+%(charAsInt)08x).",
 "illegal-codepoint-for-numeric-entity":
 "Numeric entity represents an illegal codepoint: "
 "U+%(charAsInt)08x.",
 "numeric-entity-without-semicolon":
 "Numeric entity didn't end with ';'.",
 "expected-numeric-entity-but-got-eof":
 "Numeric entity expected. Got end of file instead.",
 "expected-numeric-entity":
 "Numeric entity expected but none found.",
 "named-entity-without-semicolon":
 "Named entity didn't end with ';'.",
 "expected-named-entity":
 "Named entity expected. Got none.",
 "attributes-in-end-tag":
 "End tag contains unexpected attributes.",
 'self-closing-flag-on-end-tag':
 "End tag contains unexpected self-closing flag.",
 "expected-tag-name-but-got-right-bracket":
 "Expected tag name. Got '>' instead.",
 "expected-tag-name-but-got-question-mark":
 "Expected tag name. Got '?' instead. (HTML doesn't "
 "support processing instructions.)",
 "expected-tag-name":
 "Expected tag name. Got something else instead",
 "expected-closing-tag-but-got-right-bracket":
 "Expected closing tag. Got '>' instead. Ignoring '</>'.",
 "expected-closing-tag-but-got-eof":
 "Expected closing tag. Unexpected end of file.",
 "expected-closing-tag-but-got-char":
 "Expected closing tag. Unexpected character '%(data)s' found.",
 "eof-in-tag-name":
 "Unexpected end of file in the tag name.",
 "expected-attribute-name-but-got-eof":
 "Unexpected end of file. Expected attribute name instead.",
 "eof-in-attribute-name":
 "Unexpected end of file in attribute name.",
 "invalid-character-in-attribute-name":
 "Invalid character in attribute name",
 "duplicate-attribute":
 "Dropped duplicate attribute on tag.",
 "expected-end-of-tag-name-but-got-eof":
 "Unexpected end of file. Expected = or end of tag.",
 "expected-attribute-value-but-got-eof":
 "Unexpected end of file. Expected attribute value.",
 "expected-attribute-value-but-got-right-bracket":
 "Expected attribute value. Got '>' instead.",
 'equals-in-unquoted-attribute-value':
 "Unexpected = in unquoted attribute",
 'unexpected-character-in-unquoted-attribute-value':
 "Unexpected character in unquoted attribute",
 "invalid-character-after-attribute-name":
 "Unexpected character after attribute name.",
 "unexpected-character-after-attribute-value":
 "Unexpected character after attribute value.",
 "eof-in-attribute-value-double-quote":
 "Unexpected end of file in attribute value (\").",
 "eof-in-attribute-value-single-quote":
 "Unexpected end of file in attribute value (').",
 "eof-in-attribute-value-no-quotes":
 "Unexpected end of file in attribute value.",
 "unexpected-EOF-after-solidus-in-tag":
 "Unexpected end of file in tag. Expected >",
 "unexpected-character-after-solidus-in-tag":
 "Unexpected character after / in tag. Expected >",
 "expected-dashes-or-doctype":
 "Expected '--' or 'DOCTYPE'. Not found.",
 "unexpected-bang-after-double-dash-in-comment":
 "Unexpected ! after -- in comment",
 "unexpected-space-after-double-dash-in-comment":
 "Unexpected space after -- in comment",
 "incorrect-comment":
 "Incorrect comment.",
 "eof-in-comment":
 "Unexpected end of file in comment.",
 "eof-in-comment-end-dash":
 "Unexpected end of file in comment (-)",
 "unexpected-dash-after-double-dash-in-comment":
 "Unexpected '-' after '--' found in comment.",
 "eof-in-comment-double-dash":
 "Unexpected end of file in comment (--).",
 "eof-in-comment-end-space-state":
 "Unexpected end of file in comment.",
 "eof-in-comment-end-bang-state":
 "Unexpected end of file in comment.",
 "unexpected-char-in-comment":
 "Unexpected character in comment found.",
 "need-space-after-doctype":
 "No space after literal string 'DOCTYPE'.",
 "expected-doctype-name-but-got-right-bracket":
 "Unexpected > character. Expected DOCTYPE name.",
 "expected-doctype-name-but-got-eof":
 "Unexpected end of file. Expected DOCTYPE name.",
 "eof-in-doctype-name":
 "Unexpected end of file in DOCTYPE name.",
 "eof-in-doctype":
 "Unexpected end of file in DOCTYPE.",
 "expected-space-or-right-bracket-in-doctype":
 "Expected space or '>'. Got '%(data)s'",
 "unexpected-end-of-doctype":
 "Unexpected end of DOCTYPE.",
 "unexpected-char-in-doctype":
 "Unexpected character in DOCTYPE.",
 "eof-in-innerhtml":
 "XXX innerHTML EOF",
 "unexpected-doctype":
 "Unexpected DOCTYPE. Ignored.",
 "non-html-root":
 "html needs to be the first start tag.",
 "expected-doctype-but-got-eof":
 "Unexpected End of file. Expected DOCTYPE.",
 "unknown-doctype":
 "Erroneous DOCTYPE.",
 "expected-doctype-but-got-chars":
 "Unexpected non-space characters. Expected DOCTYPE.",
 "expected-doctype-but-got-start-tag":
 "Unexpected start tag (%(name)s). Expected DOCTYPE.",
 "expected-doctype-but-got-end-tag":
 "Unexpected end tag (%(name)s). Expected DOCTYPE.",
 "end-tag-after-implied-root":
 "Unexpected end tag (%(name)s) after the (implied) root element.",
 "expected-named-closing-tag-but-got-eof":
 "Unexpected end of file. Expected end tag (%(name)s).",
 "two-heads-are-not-better-than-one":
 "Unexpected start tag head in existing head. Ignored.",
 "unexpected-end-tag":
 "Unexpected end tag (%(name)s). Ignored.",
 "unexpected-start-tag-out-of-my-head":
 "Unexpected start tag (%(name)s) that can be in head. Moved.",
 "unexpected-start-tag":
 "Unexpected start tag (%(name)s).",
 "missing-end-tag":
 "Missing end tag (%(name)s).",
 "missing-end-tags":
 "Missing end tags (%(name)s).",
 "unexpected-start-tag-implies-end-tag":
 "Unexpected start tag (%(startName)s) "
 "implies end tag (%(endName)s).",
 "unexpected-start-tag-treated-as":
 "Unexpected start tag (%(originalName)s). Treated as %(newName)s.",
 "deprecated-tag":
 "Unexpected start tag %(name)s. Don't use it!",
 "unexpected-start-tag-ignored":
 "Unexpected start tag %(name)s. Ignored.",
 "expected-one-end-tag-but-got-another":
 "Unexpected end tag (%(gotName)s). "
 "Missing end tag (%(expectedName)s).",
 "end-tag-too-early":
 "End tag (%(name)s) seen too early. Expected other end tag.",
 "end-tag-too-early-named":
 "Unexpected end tag (%(gotName)s). Expected end tag (%(expectedName)s).",
 "end-tag-too-early-ignored":
 "End tag (%(name)s) seen too early. Ignored.",
 "adoption-agency-1.1":
 "End tag (%(name)s) violates step 1, "
 "paragraph 1 of the adoption agency algorithm.",
 "adoption-agency-1.2":
 "End tag (%(name)s) violates step 1, "
 "paragraph 2 of the adoption agency algorithm.",
 "adoption-agency-1.3":
 "End tag (%(name)s) violates step 1, "
 "paragraph 3 of the adoption agency algorithm.",
 "adoption-agency-4.4":
 "End tag (%(name)s) violates step 4, "
 "paragraph 4 of the adoption agency algorithm.",
 "unexpected-end-tag-treated-as":
 "Unexpected end tag (%(originalName)s). Treated as %(newName)s.",
 "no-end-tag":
 "This element (%(name)s) has no end tag.",
 "unexpected-implied-end-tag-in-table":
 "Unexpected implied end tag (%(name)s) in the table phase.",
 "unexpected-implied-end-tag-in-table-body":
 "Unexpected implied end tag (%(name)s) in the table body phase.",
 "unexpected-char-implies-table-voodoo":
 "Unexpected non-space characters in "
 "table context caused voodoo mode.",
 "unexpected-hidden-input-in-table":
 "Unexpected input with type hidden in table context.",
 "unexpected-form-in-table":
 "Unexpected form in table context.",
 "unexpected-start-tag-implies-table-voodoo":
 "Unexpected start tag (%(name)s) in "
 "table context caused voodoo mode.",
 "unexpected-end-tag-implies-table-voodoo":
 "Unexpected end tag (%(name)s) in "
 "table context caused voodoo mode.",
 "unexpected-cell-in-table-body":
 "Unexpected table cell start tag (%(name)s) "
 "in the table body phase.",
 "unexpected-cell-end-tag":
 "Got table cell end tag (%(name)s) "
 "while required end tags are missing.",
 "unexpected-end-tag-in-table-body":
 "Unexpected end tag (%(name)s) in the table body phase. Ignored.",
 "unexpected-implied-end-tag-in-table-row":
 "Unexpected implied end tag (%(name)s) in the table row phase.",
 "unexpected-end-tag-in-table-row":
 "Unexpected end tag (%(name)s) in the table row phase. Ignored.",
 "unexpected-select-in-select":
 "Unexpected select start tag in the select phase "
 "treated as select end tag.",
 "unexpected-input-in-select":
 "Unexpected input start tag in the select phase.",
 "unexpected-start-tag-in-select":
 "Unexpected start tag token (%(name)s in the select phase. "
 "Ignored.",
 "unexpected-end-tag-in-select":
 "Unexpected end tag (%(name)s) in the select phase. Ignored.",
 "unexpected-table-element-start-tag-in-select-in-table":
 "Unexpected table element start tag (%(name)s) in the select in table phase.",
 "unexpected-table-element-end-tag-in-select-in-table":
 "Unexpected table element end tag (%(name)s) in the select in table phase.",
 "unexpected-char-after-body":
 "Unexpected non-space characters in the after body phase.",
 "unexpected-start-tag-after-body":
 "Unexpected start tag token (%(name)s)"
 " in the after body phase.",
 "unexpected-end-tag-after-body":
 "Unexpected end tag token (%(name)s)"
 " in the after body phase.",
 "unexpected-char-in-frameset":
 "Unexpected characters in the frameset phase. Characters ignored.",
 "unexpected-start-tag-in-frameset":
 "Unexpected start tag token (%(name)s)"
 " in the frameset phase. Ignored.",
 "unexpected-frameset-in-frameset-innerhtml":
 "Unexpected end tag token (frameset) "
 "in the frameset phase (innerHTML).",
 "unexpected-end-tag-in-frameset":
 "Unexpected end tag token (%(name)s)"
 " in the frameset phase. Ignored.",
 "unexpected-char-after-frameset":
 "Unexpected non-space characters in the "
 "after frameset phase. Ignored.",
 "unexpected-start-tag-after-frameset":
 "Unexpected start tag (%(name)s)"
 " in the after frameset phase. Ignored.",
 "unexpected-end-tag-after-frameset":
 "Unexpected end tag (%(name)s)"
 " in the after frameset phase. Ignored.",
 "unexpected-end-tag-after-body-innerhtml":
 "Unexpected end tag after body(innerHtml)",
 "expected-eof-but-got-char":
 "Unexpected non-space characters. Expected end of file.",
 "expected-eof-but-got-start-tag":
 "Unexpected start tag (%(name)s)"
 ". Expected end of file.",
 "expected-eof-but-got-end-tag":
 "Unexpected end tag (%(name)s)"
 ". Expected end of file.",
 "eof-in-table":
 "Unexpected end of file. Expected table content.",
 "eof-in-select":
 "Unexpected end of file. Expected select content.",
 "eof-in-frameset":
 "Unexpected end of file. Expected frameset content.",
 "eof-in-script-in-script":
 "Unexpected end of file. Expected script content.",
 "eof-in-foreign-lands":
 "Unexpected end of file. Expected foreign content",
 "non-void-element-with-trailing-solidus":
 "Trailing solidus not allowed on element %(name)s",
 "unexpected-html-element-in-foreign-content":
 "Element %(name)s not allowed in a non-html context",
 "unexpected-end-tag-before-html":
 "Unexpected end tag (%(name)s) before html.",
 "unexpected-inhead-noscript-tag":
 "Element %(name)s not allowed in a inhead-noscript context",
 "eof-in-head-noscript":
 "Unexpected end of file. Expected inhead-noscript content",
 "char-in-head-noscript":
 "Unexpected non-space character. Expected inhead-noscript content",
 "XXX-undefined-error":
 "Undefined error (this sucks and should be fixed)",
 }
 
 namespaces = {
 "html": "http://www.w3.org/1999/xhtml",
 "mathml": "http://www.w3.org/1998/Math/MathML",
 "svg": "http://www.w3.org/2000/svg",
 "xlink": "http://www.w3.org/1999/xlink",
 "xml": "http://www.w3.org/XML/1998/namespace",
 "xmlns": "http://www.w3.org/2000/xmlns/"
 }
 
 scopingElements = frozenset([
 (namespaces["html"], "applet"),
 (namespaces["html"], "caption"),
 (namespaces["html"], "html"),
 (namespaces["html"], "marquee"),
 (namespaces["html"], "object"),
 (namespaces["html"], "table"),
 (namespaces["html"], "td"),
 (namespaces["html"], "th"),
 (namespaces["mathml"], "mi"),
 (namespaces["mathml"], "mo"),
 (namespaces["mathml"], "mn"),
 (namespaces["mathml"], "ms"),
 (namespaces["mathml"], "mtext"),
 (namespaces["mathml"], "annotation-xml"),
 (namespaces["svg"], "foreignObject"),
 (namespaces["svg"], "desc"),
 (namespaces["svg"], "title"),
 ])
 
 formattingElements = frozenset([
 (namespaces["html"], "a"),
 (namespaces["html"], "b"),
 (namespaces["html"], "big"),
 (namespaces["html"], "code"),
 (namespaces["html"], "em"),
 (namespaces["html"], "font"),
 (namespaces["html"], "i"),
 (namespaces["html"], "nobr"),
 (namespaces["html"], "s"),
 (namespaces["html"], "small"),
 (namespaces["html"], "strike"),
 (namespaces["html"], "strong"),
 (namespaces["html"], "tt"),
 (namespaces["html"], "u")
 ])
 
 specialElements = frozenset([
 (namespaces["html"], "address"),
 (namespaces["html"], "applet"),
 (namespaces["html"], "area"),
 (namespaces["html"], "article"),
 (namespaces["html"], "aside"),
 (namespaces["html"], "base"),
 (namespaces["html"], "basefont"),
 (namespaces["html"], "bgsound"),
 (namespaces["html"], "blockquote"),
 (namespaces["html"], "body"),
 (namespaces["html"], "br"),
 (namespaces["html"], "button"),
 (namespaces["html"], "caption"),
 (namespaces["html"], "center"),
 (namespaces["html"], "col"),
 (namespaces["html"], "colgroup"),
 (namespaces["html"], "command"),
 (namespaces["html"], "dd"),
 (namespaces["html"], "details"),
 (namespaces["html"], "dir"),
 (namespaces["html"], "div"),
 (namespaces["html"], "dl"),
 (namespaces["html"], "dt"),
 (namespaces["html"], "embed"),
 (namespaces["html"], "fieldset"),
 (namespaces["html"], "figure"),
 (namespaces["html"], "footer"),
 (namespaces["html"], "form"),
 (namespaces["html"], "frame"),
 (namespaces["html"], "frameset"),
 (namespaces["html"], "h1"),
 (namespaces["html"], "h2"),
 (namespaces["html"], "h3"),
 (namespaces["html"], "h4"),
 (namespaces["html"], "h5"),
 (namespaces["html"], "h6"),
 (namespaces["html"], "head"),
 (namespaces["html"], "header"),
 (namespaces["html"], "hr"),
 (namespaces["html"], "html"),
 (namespaces["html"], "iframe"),
 # Note that image is commented out in the spec as "this isn't an
 # element that can end up on the stack, so it doesn't matter,"
 (namespaces["html"], "image"),
 (namespaces["html"], "img"),
 (namespaces["html"], "input"),
 (namespaces["html"], "isindex"),
 (namespaces["html"], "li"),
 (namespaces["html"], "link"),
 (namespaces["html"], "listing"),
 (namespaces["html"], "marquee"),
 (namespaces["html"], "menu"),
 (namespaces["html"], "meta"),
 (namespaces["html"], "nav"),
 (namespaces["html"], "noembed"),
 (namespaces["html"], "noframes"),
 (namespaces["html"], "noscript"),
 (namespaces["html"], "object"),
 (namespaces["html"], "ol"),
 (namespaces["html"], "p"),
 (namespaces["html"], "param"),
 (namespaces["html"], "plaintext"),
 (namespaces["html"], "pre"),
 (namespaces["html"], "script"),
 (namespaces["html"], "section"),
 (namespaces["html"], "select"),
 (namespaces["html"], "style"),
 (namespaces["html"], "table"),
 (namespaces["html"], "tbody"),
 (namespaces["html"], "td"),
 (namespaces["html"], "textarea"),
 (namespaces["html"], "tfoot"),
 (namespaces["html"], "th"),
 (namespaces["html"], "thead"),
 (namespaces["html"], "title"),
 (namespaces["html"], "tr"),
 (namespaces["html"], "ul"),
 (namespaces["html"], "wbr"),
 (namespaces["html"], "xmp"),
 (namespaces["svg"], "foreignObject")
 ])
 
 htmlIntegrationPointElements = frozenset([
 (namespaces["mathml"], "annotaion-xml"),
 (namespaces["svg"], "foreignObject"),
 (namespaces["svg"], "desc"),
 (namespaces["svg"], "title")
 ])
 
 mathmlTextIntegrationPointElements = frozenset([
 (namespaces["mathml"], "mi"),
 (namespaces["mathml"], "mo"),
 (namespaces["mathml"], "mn"),
 (namespaces["mathml"], "ms"),
 (namespaces["mathml"], "mtext")
 ])
 
 adjustSVGAttributes = {
 "attributename": "attributeName",
 "attributetype": "attributeType",
 "basefrequency": "baseFrequency",
 "baseprofile": "baseProfile",
 "calcmode": "calcMode",
 "clippathunits": "clipPathUnits",
 "contentscripttype": "contentScriptType",
 "contentstyletype": "contentStyleType",
 "diffuseconstant": "diffuseConstant",
 "edgemode": "edgeMode",
 "externalresourcesrequired": "externalResourcesRequired",
 "filterres": "filterRes",
 "filterunits": "filterUnits",
 "glyphref": "glyphRef",
 "gradienttransform": "gradientTransform",
 "gradientunits": "gradientUnits",
 "kernelmatrix": "kernelMatrix",
 "kernelunitlength": "kernelUnitLength",
 "keypoints": "keyPoints",
 "keysplines": "keySplines",
 "keytimes": "keyTimes",
 "lengthadjust": "lengthAdjust",
 "limitingconeangle": "limitingConeAngle",
 "markerheight": "markerHeight",
 "markerunits": "markerUnits",
 "markerwidth": "markerWidth",
 "maskcontentunits": "maskContentUnits",
 "maskunits": "maskUnits",
 "numoctaves": "numOctaves",
 "pathlength": "pathLength",
 "patterncontentunits": "patternContentUnits",
 "patterntransform": "patternTransform",
 "patternunits": "patternUnits",
 "pointsatx": "pointsAtX",
 "pointsaty": "pointsAtY",
 "pointsatz": "pointsAtZ",
 "preservealpha": "preserveAlpha",
 "preserveaspectratio": "preserveAspectRatio",
 "primitiveunits": "primitiveUnits",
 "refx": "refX",
 "refy": "refY",
 "repeatcount": "repeatCount",
 "repeatdur": "repeatDur",
 "requiredextensions": "requiredExtensions",
 "requiredfeatures": "requiredFeatures",
 "specularconstant": "specularConstant",
 "specularexponent": "specularExponent",
 "spreadmethod": "spreadMethod",
 "startoffset": "startOffset",
 "stddeviation": "stdDeviation",
 "stitchtiles": "stitchTiles",
 "surfacescale": "surfaceScale",
 "systemlanguage": "systemLanguage",
 "tablevalues": "tableValues",
 "targetx": "targetX",
 "targety": "targetY",
 "textlength": "textLength",
 "viewbox": "viewBox",
 "viewtarget": "viewTarget",
 "xchannelselector": "xChannelSelector",
 "ychannelselector": "yChannelSelector",
 "zoomandpan": "zoomAndPan"
 }
 
 adjustMathMLAttributes = {"definitionurl": "definitionURL"}
 
 adjustForeignAttributes = {
 "xlink:actuate": ("xlink", "actuate", namespaces["xlink"]),
 "xlink:arcrole": ("xlink", "arcrole", namespaces["xlink"]),
 "xlink:href": ("xlink", "href", namespaces["xlink"]),
 "xlink:role": ("xlink", "role", namespaces["xlink"]),
 "xlink:show": ("xlink", "show", namespaces["xlink"]),
 "xlink:title": ("xlink", "title", namespaces["xlink"]),
 "xlink:type": ("xlink", "type", namespaces["xlink"]),
 "xml:base": ("xml", "base", namespaces["xml"]),
 "xml:lang": ("xml", "lang", namespaces["xml"]),
 "xml:space": ("xml", "space", namespaces["xml"]),
 "xmlns": (None, "xmlns", namespaces["xmlns"]),
 "xmlns:xlink": ("xmlns", "xlink", namespaces["xmlns"])
 }
 
 unadjustForeignAttributes = dict([((ns, local), qname) for qname, (prefix, local, ns) in
 adjustForeignAttributes.items()])
 
 spaceCharacters = frozenset([
 "\t",
 "\n",
 "\u000C",
 " ",
 "\r"
 ])
 
 tableInsertModeElements = frozenset([
 "table",
 "tbody",
 "tfoot",
 "thead",
 "tr"
 ])
 
 asciiLowercase = frozenset(string.ascii_lowercase)
 asciiUppercase = frozenset(string.ascii_uppercase)
 asciiLetters = frozenset(string.ascii_letters)
 digits = frozenset(string.digits)
 hexDigits = frozenset(string.hexdigits)
 
 asciiUpper2Lower = dict([(ord(c), ord(c.lower()))
 for c in string.ascii_uppercase])
 
 # Heading elements need to be ordered
 headingElements = (
 "h1",
 "h2",
 "h3",
 "h4",
 "h5",
 "h6"
 )
 
 voidElements = frozenset([
 "base",
 "command",
 "event-source",
 "link",
 "meta",
 "hr",
 "br",
 "img",
 "embed",
 "param",
 "area",
 "col",
 "input",
 "source",
 "track"
 ])
 
 cdataElements = frozenset(['title', 'textarea'])
 
 rcdataElements = frozenset([
 'style',
 'script',
 'xmp',
 'iframe',
 'noembed',
 'noframes',
 'noscript'
 ])
 
 booleanAttributes = {
 "": frozenset(["irrelevant"]),
 "style": frozenset(["scoped"]),
 "img": frozenset(["ismap"]),
 "audio": frozenset(["autoplay", "controls"]),
 "video": frozenset(["autoplay", "controls"]),
 "script": frozenset(["defer", "async"]),
 "details": frozenset(["open"]),
 "datagrid": frozenset(["multiple", "disabled"]),
 "command": frozenset(["hidden", "disabled", "checked", "default"]),
 "hr": frozenset(["noshade"]),
 "menu": frozenset(["autosubmit"]),
 "fieldset": frozenset(["disabled", "readonly"]),
 "option": frozenset(["disabled", "readonly", "selected"]),
 "optgroup": frozenset(["disabled", "readonly"]),
 "button": frozenset(["disabled", "autofocus"]),
 "input": frozenset(["disabled", "readonly", "required", "autofocus", "checked", "ismap"]),
 "select": frozenset(["disabled", "readonly", "autofocus", "multiple"]),
 "output": frozenset(["disabled", "readonly"]),
 }
 
 # entitiesWindows1252 has to be _ordered_ and needs to have an index. It
 # therefore can't be a frozenset.
 entitiesWindows1252 = (
 8364,   # 0x80  0x20AC  EURO SIGN
 65533,  # 0x81          UNDEFINED
 8218,   # 0x82  0x201A  SINGLE LOW-9 QUOTATION MARK
 402,    # 0x83  0x0192  LATIN SMALL LETTER F WITH HOOK
 8222,   # 0x84  0x201E  DOUBLE LOW-9 QUOTATION MARK
 8230,   # 0x85  0x2026  HORIZONTAL ELLIPSIS
 8224,   # 0x86  0x2020  DAGGER
 8225,   # 0x87  0x2021  DOUBLE DAGGER
 710,    # 0x88  0x02C6  MODIFIER LETTER CIRCUMFLEX ACCENT
 8240,   # 0x89  0x2030  PER MILLE SIGN
 352,    # 0x8A  0x0160  LATIN CAPITAL LETTER S WITH CARON
 8249,   # 0x8B  0x2039  SINGLE LEFT-POINTING ANGLE QUOTATION MARK
 338,    # 0x8C  0x0152  LATIN CAPITAL LIGATURE OE
 65533,  # 0x8D          UNDEFINED
 381,    # 0x8E  0x017D  LATIN CAPITAL LETTER Z WITH CARON
 65533,  # 0x8F          UNDEFINED
 65533,  # 0x90          UNDEFINED
 8216,   # 0x91  0x2018  LEFT SINGLE QUOTATION MARK
 8217,   # 0x92  0x2019  RIGHT SINGLE QUOTATION MARK
 8220,   # 0x93  0x201C  LEFT DOUBLE QUOTATION MARK
 8221,   # 0x94  0x201D  RIGHT DOUBLE QUOTATION MARK
 8226,   # 0x95  0x2022  BULLET
 8211,   # 0x96  0x2013  EN DASH
 8212,   # 0x97  0x2014  EM DASH
 732,    # 0x98  0x02DC  SMALL TILDE
 8482,   # 0x99  0x2122  TRADE MARK SIGN
 353,    # 0x9A  0x0161  LATIN SMALL LETTER S WITH CARON
 8250,   # 0x9B  0x203A  SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
 339,    # 0x9C  0x0153  LATIN SMALL LIGATURE OE
 65533,  # 0x9D          UNDEFINED
 382,    # 0x9E  0x017E  LATIN SMALL LETTER Z WITH CARON
 376     # 0x9F  0x0178  LATIN CAPITAL LETTER Y WITH DIAERESIS
 )
 
 xmlEntities = frozenset(['lt;', 'gt;', 'amp;', 'apos;', 'quot;'])
 
 entities = {
 "AElig": "\xc6",
 "AElig;": "\xc6",
 "AMP": "&",
 "AMP;": "&",
 "Aacute": "\xc1",
 "Aacute;": "\xc1",
 "Abreve;": "\u0102",
 "Acirc": "\xc2",
 "Acirc;": "\xc2",
 "Acy;": "\u0410",
 "Afr;": "\U0001d504",
 "Agrave": "\xc0",
 "Agrave;": "\xc0",
 "Alpha;": "\u0391",
 "Amacr;": "\u0100",
 "And;": "\u2a53",
 "Aogon;": "\u0104",
 "Aopf;": "\U0001d538",
 "ApplyFunction;": "\u2061",
 "Aring": "\xc5",
 "Aring;": "\xc5",
 "Ascr;": "\U0001d49c",
 "Assign;": "\u2254",
 "Atilde": "\xc3",
 "Atilde;": "\xc3",
 "Auml": "\xc4",
 "Auml;": "\xc4",
 "Backslash;": "\u2216",
 "Barv;": "\u2ae7",
 "Barwed;": "\u2306",
 "Bcy;": "\u0411",
 "Because;": "\u2235",
 "Bernoullis;": "\u212c",
 "Beta;": "\u0392",
 "Bfr;": "\U0001d505",
 "Bopf;": "\U0001d539",
 "Breve;": "\u02d8",
 "Bscr;": "\u212c",
 "Bumpeq;": "\u224e",
 "CHcy;": "\u0427",
 "COPY": "\xa9",
 "COPY;": "\xa9",
 "Cacute;": "\u0106",
 "Cap;": "\u22d2",
 "CapitalDifferentialD;": "\u2145",
 "Cayleys;": "\u212d",
 "Ccaron;": "\u010c",
 "Ccedil": "\xc7",
 "Ccedil;": "\xc7",
 "Ccirc;": "\u0108",
 "Cconint;": "\u2230",
 "Cdot;": "\u010a",
 "Cedilla;": "\xb8",
 "CenterDot;": "\xb7",
 "Cfr;": "\u212d",
 "Chi;": "\u03a7",
 "CircleDot;": "\u2299",
 "CircleMinus;": "\u2296",
 "CirclePlus;": "\u2295",
 "CircleTimes;": "\u2297",
 "ClockwiseContourIntegral;": "\u2232",
 "CloseCurlyDoubleQuote;": "\u201d",
 "CloseCurlyQuote;": "\u2019",
 "Colon;": "\u2237",
 "Colone;": "\u2a74",
 "Congruent;": "\u2261",
 "Conint;": "\u222f",
 "ContourIntegral;": "\u222e",
 "Copf;": "\u2102",
 "Coproduct;": "\u2210",
 "CounterClockwiseContourIntegral;": "\u2233",
 "Cross;": "\u2a2f",
 "Cscr;": "\U0001d49e",
 "Cup;": "\u22d3",
 "CupCap;": "\u224d",
 "DD;": "\u2145",
 "DDotrahd;": "\u2911",
 "DJcy;": "\u0402",
 "DScy;": "\u0405",
 "DZcy;": "\u040f",
 "Dagger;": "\u2021",
 "Darr;": "\u21a1",
 "Dashv;": "\u2ae4",
 "Dcaron;": "\u010e",
 "Dcy;": "\u0414",
 "Del;": "\u2207",
 "Delta;": "\u0394",
 "Dfr;": "\U0001d507",
 "DiacriticalAcute;": "\xb4",
 "DiacriticalDot;": "\u02d9",
 "DiacriticalDoubleAcute;": "\u02dd",
 "DiacriticalGrave;": "`",
 "DiacriticalTilde;": "\u02dc",
 "Diamond;": "\u22c4",
 "DifferentialD;": "\u2146",
 "Dopf;": "\U0001d53b",
 "Dot;": "\xa8",
 "DotDot;": "\u20dc",
 "DotEqual;": "\u2250",
 "DoubleContourIntegral;": "\u222f",
 "DoubleDot;": "\xa8",
 "DoubleDownArrow;": "\u21d3",
 "DoubleLeftArrow;": "\u21d0",
 "DoubleLeftRightArrow;": "\u21d4",
 "DoubleLeftTee;": "\u2ae4",
 "DoubleLongLeftArrow;": "\u27f8",
 "DoubleLongLeftRightArrow;": "\u27fa",
 "DoubleLongRightArrow;": "\u27f9",
 "DoubleRightArrow;": "\u21d2",
 "DoubleRightTee;": "\u22a8",
 "DoubleUpArrow;": "\u21d1",
 "DoubleUpDownArrow;": "\u21d5",
 "DoubleVerticalBar;": "\u2225",
 "DownArrow;": "\u2193",
 "DownArrowBar;": "\u2913",
 "DownArrowUpArrow;": "\u21f5",
 "DownBreve;": "\u0311",
 "DownLeftRightVector;": "\u2950",
 "DownLeftTeeVector;": "\u295e",
 "DownLeftVector;": "\u21bd",
 "DownLeftVectorBar;": "\u2956",
 "DownRightTeeVector;": "\u295f",
 "DownRightVector;": "\u21c1",
 "DownRightVectorBar;": "\u2957",
 "DownTee;": "\u22a4",
 "DownTeeArrow;": "\u21a7",
 "Downarrow;": "\u21d3",
 "Dscr;": "\U0001d49f",
 "Dstrok;": "\u0110",
 "ENG;": "\u014a",
 "ETH": "\xd0",
 "ETH;": "\xd0",
 "Eacute": "\xc9",
 "Eacute;": "\xc9",
 "Ecaron;": "\u011a",
 "Ecirc": "\xca",
 "Ecirc;": "\xca",
 "Ecy;": "\u042d",
 "Edot;": "\u0116",
 "Efr;": "\U0001d508",
 "Egrave": "\xc8",
 "Egrave;": "\xc8",
 "Element;": "\u2208",
 "Emacr;": "\u0112",
 "EmptySmallSquare;": "\u25fb",
 "EmptyVerySmallSquare;": "\u25ab",
 "Eogon;": "\u0118",
 "Eopf;": "\U0001d53c",
 "Epsilon;": "\u0395",
 "Equal;": "\u2a75",
 "EqualTilde;": "\u2242",
 "Equilibrium;": "\u21cc",
 "Escr;": "\u2130",
 "Esim;": "\u2a73",
 "Eta;": "\u0397",
 "Euml": "\xcb",
 "Euml;": "\xcb",
 "Exists;": "\u2203",
 "ExponentialE;": "\u2147",
 "Fcy;": "\u0424",
 "Ffr;": "\U0001d509",
 "FilledSmallSquare;": "\u25fc",
 "FilledVerySmallSquare;": "\u25aa",
 "Fopf;": "\U0001d53d",
 "ForAll;": "\u2200",
 "Fouriertrf;": "\u2131",
 "Fscr;": "\u2131",
 "GJcy;": "\u0403",
 "GT": ">",
 "GT;": ">",
 "Gamma;": "\u0393",
 "Gammad;": "\u03dc",
 "Gbreve;": "\u011e",
 "Gcedil;": "\u0122",
 "Gcirc;": "\u011c",
 "Gcy;": "\u0413",
 "Gdot;": "\u0120",
 "Gfr;": "\U0001d50a",
 "Gg;": "\u22d9",
 "Gopf;": "\U0001d53e",
 "GreaterEqual;": "\u2265",
 "GreaterEqualLess;": "\u22db",
 "GreaterFullEqual;": "\u2267",
 "GreaterGreater;": "\u2aa2",
 "GreaterLess;": "\u2277",
 "GreaterSlantEqual;": "\u2a7e",
 "GreaterTilde;": "\u2273",
 "Gscr;": "\U0001d4a2",
 "Gt;": "\u226b",
 "HARDcy;": "\u042a",
 "Hacek;": "\u02c7",
 "Hat;": "^",
 "Hcirc;": "\u0124",
 "Hfr;": "\u210c",
 "HilbertSpace;": "\u210b",
 "Hopf;": "\u210d",
 "HorizontalLine;": "\u2500",
 "Hscr;": "\u210b",
 "Hstrok;": "\u0126",
 "HumpDownHump;": "\u224e",
 "HumpEqual;": "\u224f",
 "IEcy;": "\u0415",
 "IJlig;": "\u0132",
 "IOcy;": "\u0401",
 "Iacute": "\xcd",
 "Iacute;": "\xcd",
 "Icirc": "\xce",
 "Icirc;": "\xce",
 "Icy;": "\u0418",
 "Idot;": "\u0130",
 "Ifr;": "\u2111",
 "Igrave": "\xcc",
 "Igrave;": "\xcc",
 "Im;": "\u2111",
 "Imacr;": "\u012a",
 "ImaginaryI;": "\u2148",
 "Implies;": "\u21d2",
 "Int;": "\u222c",
 "Integral;": "\u222b",
 "Intersection;": "\u22c2",
 "InvisibleComma;": "\u2063",
 "InvisibleTimes;": "\u2062",
 "Iogon;": "\u012e",
 "Iopf;": "\U0001d540",
 "Iota;": "\u0399",
 "Iscr;": "\u2110",
 "Itilde;": "\u0128",
 "Iukcy;": "\u0406",
 "Iuml": "\xcf",
 "Iuml;": "\xcf",
 "Jcirc;": "\u0134",
 "Jcy;": "\u0419",
 "Jfr;": "\U0001d50d",
 "Jopf;": "\U0001d541",
 "Jscr;": "\U0001d4a5",
 "Jsercy;": "\u0408",
 "Jukcy;": "\u0404",
 "KHcy;": "\u0425",
 "KJcy;": "\u040c",
 "Kappa;": "\u039a",
 "Kcedil;": "\u0136",
 "Kcy;": "\u041a",
 "Kfr;": "\U0001d50e",
 "Kopf;": "\U0001d542",
 "Kscr;": "\U0001d4a6",
 "LJcy;": "\u0409",
 "LT": "<",
 "LT;": "<",
 "Lacute;": "\u0139",
 "Lambda;": "\u039b",
 "Lang;": "\u27ea",
 "Laplacetrf;": "\u2112",
 "Larr;": "\u219e",
 "Lcaron;": "\u013d",
 "Lcedil;": "\u013b",
 "Lcy;": "\u041b",
 "LeftAngleBracket;": "\u27e8",
 "LeftArrow;": "\u2190",
 "LeftArrowBar;": "\u21e4",
 "LeftArrowRightArrow;": "\u21c6",
 "LeftCeiling;": "\u2308",
 "LeftDoubleBracket;": "\u27e6",
 "LeftDownTeeVector;": "\u2961",
 "LeftDownVector;": "\u21c3",
 "LeftDownVectorBar;": "\u2959",
 "LeftFloor;": "\u230a",
 "LeftRightArrow;": "\u2194",
 "LeftRightVector;": "\u294e",
 "LeftTee;": "\u22a3",
 "LeftTeeArrow;": "\u21a4",
 "LeftTeeVector;": "\u295a",
 "LeftTriangle;": "\u22b2",
 "LeftTriangleBar;": "\u29cf",
 "LeftTriangleEqual;": "\u22b4",
 "LeftUpDownVector;": "\u2951",
 "LeftUpTeeVector;": "\u2960",
 "LeftUpVector;": "\u21bf",
 "LeftUpVectorBar;": "\u2958",
 "LeftVector;": "\u21bc",
 "LeftVectorBar;": "\u2952",
 "Leftarrow;": "\u21d0",
 "Leftrightarrow;": "\u21d4",
 "LessEqualGreater;": "\u22da",
 "LessFullEqual;": "\u2266",
 "LessGreater;": "\u2276",
 "LessLess;": "\u2aa1",
 "LessSlantEqual;": "\u2a7d",
 "LessTilde;": "\u2272",
 "Lfr;": "\U0001d50f",
 "Ll;": "\u22d8",
 "Lleftarrow;": "\u21da",
 "Lmidot;": "\u013f",
 "LongLeftArrow;": "\u27f5",
 "LongLeftRightArrow;": "\u27f7",
 "LongRightArrow;": "\u27f6",
 "Longleftarrow;": "\u27f8",
 "Longleftrightarrow;": "\u27fa",
 "Longrightarrow;": "\u27f9",
 "Lopf;": "\U0001d543",
 "LowerLeftArrow;": "\u2199",
 "LowerRightArrow;": "\u2198",
 "Lscr;": "\u2112",
 "Lsh;": "\u21b0",
 "Lstrok;": "\u0141",
 "Lt;": "\u226a",
 "Map;": "\u2905",
 "Mcy;": "\u041c",
 "MediumSpace;": "\u205f",
 "Mellintrf;": "\u2133",
 "Mfr;": "\U0001d510",
 "MinusPlus;": "\u2213",
 "Mopf;": "\U0001d544",
 "Mscr;": "\u2133",
 "Mu;": "\u039c",
 "NJcy;": "\u040a",
 "Nacute;": "\u0143",
 "Ncaron;": "\u0147",
 "Ncedil;": "\u0145",
 "Ncy;": "\u041d",
 "NegativeMediumSpace;": "\u200b",
 "NegativeThickSpace;": "\u200b",
 "NegativeThinSpace;": "\u200b",
 "NegativeVeryThinSpace;": "\u200b",
 "NestedGreaterGreater;": "\u226b",
 "NestedLessLess;": "\u226a",
 "NewLine;": "\n",
 "Nfr;": "\U0001d511",
 "NoBreak;": "\u2060",
 "NonBreakingSpace;": "\xa0",
 "Nopf;": "\u2115",
 "Not;": "\u2aec",
 "NotCongruent;": "\u2262",
 "NotCupCap;": "\u226d",
 "NotDoubleVerticalBar;": "\u2226",
 "NotElement;": "\u2209",
 "NotEqual;": "\u2260",
 "NotEqualTilde;": "\u2242\u0338",
 "NotExists;": "\u2204",
 "NotGreater;": "\u226f",
 "NotGreaterEqual;": "\u2271",
 "NotGreaterFullEqual;": "\u2267\u0338",
 "NotGreaterGreater;": "\u226b\u0338",
 "NotGreaterLess;": "\u2279",
 "NotGreaterSlantEqual;": "\u2a7e\u0338",
 "NotGreaterTilde;": "\u2275",
 "NotHumpDownHump;": "\u224e\u0338",
 "NotHumpEqual;": "\u224f\u0338",
 "NotLeftTriangle;": "\u22ea",
 "NotLeftTriangleBar;": "\u29cf\u0338",
 "NotLeftTriangleEqual;": "\u22ec",
 "NotLess;": "\u226e",
 "NotLessEqual;": "\u2270",
 "NotLessGreater;": "\u2278",
 "NotLessLess;": "\u226a\u0338",
 "NotLessSlantEqual;": "\u2a7d\u0338",
 "NotLessTilde;": "\u2274",
 "NotNestedGreaterGreater;": "\u2aa2\u0338",
 "NotNestedLessLess;": "\u2aa1\u0338",
 "NotPrecedes;": "\u2280",
 "NotPrecedesEqual;": "\u2aaf\u0338",
 "NotPrecedesSlantEqual;": "\u22e0",
 "NotReverseElement;": "\u220c",
 "NotRightTriangle;": "\u22eb",
 "NotRightTriangleBar;": "\u29d0\u0338",
 "NotRightTriangleEqual;": "\u22ed",
 "NotSquareSubset;": "\u228f\u0338",
 "NotSquareSubsetEqual;": "\u22e2",
 "NotSquareSuperset;": "\u2290\u0338",
 "NotSquareSupersetEqual;": "\u22e3",
 "NotSubset;": "\u2282\u20d2",
 "NotSubsetEqual;": "\u2288",
 "NotSucceeds;": "\u2281",
 "NotSucceedsEqual;": "\u2ab0\u0338",
 "NotSucceedsSlantEqual;": "\u22e1",
 "NotSucceedsTilde;": "\u227f\u0338",
 "NotSuperset;": "\u2283\u20d2",
 "NotSupersetEqual;": "\u2289",
 "NotTilde;": "\u2241",
 "NotTildeEqual;": "\u2244",
 "NotTildeFullEqual;": "\u2247",
 "NotTildeTilde;": "\u2249",
 "NotVerticalBar;": "\u2224",
 "Nscr;": "\U0001d4a9",
 "Ntilde": "\xd1",
 "Ntilde;": "\xd1",
 "Nu;": "\u039d",
 "OElig;": "\u0152",
 "Oacute": "\xd3",
 "Oacute;": "\xd3",
 "Ocirc": "\xd4",
 "Ocirc;": "\xd4",
 "Ocy;": "\u041e",
 "Odblac;": "\u0150",
 "Ofr;": "\U0001d512",
 "Ograve": "\xd2",
 "Ograve;": "\xd2",
 "Omacr;": "\u014c",
 "Omega;": "\u03a9",
 "Omicron;": "\u039f",
 "Oopf;": "\U0001d546",
 "OpenCurlyDoubleQuote;": "\u201c",
 "OpenCurlyQuote;": "\u2018",
 "Or;": "\u2a54",
 "Oscr;": "\U0001d4aa",
 "Oslash": "\xd8",
 "Oslash;": "\xd8",
 "Otilde": "\xd5",
 "Otilde;": "\xd5",
 "Otimes;": "\u2a37",
 "Ouml": "\xd6",
 "Ouml;": "\xd6",
 "OverBar;": "\u203e",
 "OverBrace;": "\u23de",
 "OverBracket;": "\u23b4",
 "OverParenthesis;": "\u23dc",
 "PartialD;": "\u2202",
 "Pcy;": "\u041f",
 "Pfr;": "\U0001d513",
 "Phi;": "\u03a6",
 "Pi;": "\u03a0",
 "PlusMinus;": "\xb1",
 "Poincareplane;": "\u210c",
 "Popf;": "\u2119",
 "Pr;": "\u2abb",
 "Precedes;": "\u227a",
 "PrecedesEqual;": "\u2aaf",
 "PrecedesSlantEqual;": "\u227c",
 "PrecedesTilde;": "\u227e",
 "Prime;": "\u2033",
 "Product;": "\u220f",
 "Proportion;": "\u2237",
 "Proportional;": "\u221d",
 "Pscr;": "\U0001d4ab",
 "Psi;": "\u03a8",
 "QUOT": "\"",
 "QUOT;": "\"",
 "Qfr;": "\U0001d514",
 "Qopf;": "\u211a",
 "Qscr;": "\U0001d4ac",
 "RBarr;": "\u2910",
 "REG": "\xae",
 "REG;": "\xae",
 "Racute;": "\u0154",
 "Rang;": "\u27eb",
 "Rarr;": "\u21a0",
 "Rarrtl;": "\u2916",
 "Rcaron;": "\u0158",
 "Rcedil;": "\u0156",
 "Rcy;": "\u0420",
 "Re;": "\u211c",
 "ReverseElement;": "\u220b",
 "ReverseEquilibrium;": "\u21cb",
 "ReverseUpEquilibrium;": "\u296f",
 "Rfr;": "\u211c",
 "Rho;": "\u03a1",
 "RightAngleBracket;": "\u27e9",
 "RightArrow;": "\u2192",
 "RightArrowBar;": "\u21e5",
 "RightArrowLeftArrow;": "\u21c4",
 "RightCeiling;": "\u2309",
 "RightDoubleBracket;": "\u27e7",
 "RightDownTeeVector;": "\u295d",
 "RightDownVector;": "\u21c2",
 "RightDownVectorBar;": "\u2955",
 "RightFloor;": "\u230b",
 "RightTee;": "\u22a2",
 "RightTeeArrow;": "\u21a6",
 "RightTeeVector;": "\u295b",
 "RightTriangle;": "\u22b3",
 "RightTriangleBar;": "\u29d0",
 "RightTriangleEqual;": "\u22b5",
 "RightUpDownVector;": "\u294f",
 "RightUpTeeVector;": "\u295c",
 "RightUpVector;": "\u21be",
 "RightUpVectorBar;": "\u2954",
 "RightVector;": "\u21c0",
 "RightVectorBar;": "\u2953",
 "Rightarrow;": "\u21d2",
 "Ropf;": "\u211d",
 "RoundImplies;": "\u2970",
 "Rrightarrow;": "\u21db",
 "Rscr;": "\u211b",
 "Rsh;": "\u21b1",
 "RuleDelayed;": "\u29f4",
 "SHCHcy;": "\u0429",
 "SHcy;": "\u0428",
 "SOFTcy;": "\u042c",
 "Sacute;": "\u015a",
 "Sc;": "\u2abc",
 "Scaron;": "\u0160",
 "Scedil;": "\u015e",
 "Scirc;": "\u015c",
 "Scy;": "\u0421",
 "Sfr;": "\U0001d516",
 "ShortDownArrow;": "\u2193",
 "ShortLeftArrow;": "\u2190",
 "ShortRightArrow;": "\u2192",
 "ShortUpArrow;": "\u2191",
 "Sigma;": "\u03a3",
 "SmallCircle;": "\u2218",
 "Sopf;": "\U0001d54a",
 "Sqrt;": "\u221a",
 "Square;": "\u25a1",
 "SquareIntersection;": "\u2293",
 "SquareSubset;": "\u228f",
 "SquareSubsetEqual;": "\u2291",
 "SquareSuperset;": "\u2290",
 "SquareSupersetEqual;": "\u2292",
 "SquareUnion;": "\u2294",
 "Sscr;": "\U0001d4ae",
 "Star;": "\u22c6",
 "Sub;": "\u22d0",
 "Subset;": "\u22d0",
 "SubsetEqual;": "\u2286",
 "Succeeds;": "\u227b",
 "SucceedsEqual;": "\u2ab0",
 "SucceedsSlantEqual;": "\u227d",
 "SucceedsTilde;": "\u227f",
 "SuchThat;": "\u220b",
 "Sum;": "\u2211",
 "Sup;": "\u22d1",
 "Superset;": "\u2283",
 "SupersetEqual;": "\u2287",
 "Supset;": "\u22d1",
 "THORN": "\xde",
 "THORN;": "\xde",
 "TRADE;": "\u2122",
 "TSHcy;": "\u040b",
 "TScy;": "\u0426",
 "Tab;": "\t",
 "Tau;": "\u03a4",
 "Tcaron;": "\u0164",
 "Tcedil;": "\u0162",
 "Tcy;": "\u0422",
 "Tfr;": "\U0001d517",
 "Therefore;": "\u2234",
 "Theta;": "\u0398",
 "ThickSpace;": "\u205f\u200a",
 "ThinSpace;": "\u2009",
 "Tilde;": "\u223c",
 "TildeEqual;": "\u2243",
 "TildeFullEqual;": "\u2245",
 "TildeTilde;": "\u2248",
 "Topf;": "\U0001d54b",
 "TripleDot;": "\u20db",
 "Tscr;": "\U0001d4af",
 "Tstrok;": "\u0166",
 "Uacute": "\xda",
 "Uacute;": "\xda",
 "Uarr;": "\u219f",
 "Uarrocir;": "\u2949",
 "Ubrcy;": "\u040e",
 "Ubreve;": "\u016c",
 "Ucirc": "\xdb",
 "Ucirc;": "\xdb",
 "Ucy;": "\u0423",
 "Udblac;": "\u0170",
 "Ufr;": "\U0001d518",
 "Ugrave": "\xd9",
 "Ugrave;": "\xd9",
 "Umacr;": "\u016a",
 "UnderBar;": "_",
 "UnderBrace;": "\u23df",
 "UnderBracket;": "\u23b5",
 "UnderParenthesis;": "\u23dd",
 "Union;": "\u22c3",
 "UnionPlus;": "\u228e",
 "Uogon;": "\u0172",
 "Uopf;": "\U0001d54c",
 "UpArrow;": "\u2191",
 "UpArrowBar;": "\u2912",
 "UpArrowDownArrow;": "\u21c5",
 "UpDownArrow;": "\u2195",
 "UpEquilibrium;": "\u296e",
 "UpTee;": "\u22a5",
 "UpTeeArrow;": "\u21a5",
 "Uparrow;": "\u21d1",
 "Updownarrow;": "\u21d5",
 "UpperLeftArrow;": "\u2196",
 "UpperRightArrow;": "\u2197",
 "Upsi;": "\u03d2",
 "Upsilon;": "\u03a5",
 "Uring;": "\u016e",
 "Uscr;": "\U0001d4b0",
 "Utilde;": "\u0168",
 "Uuml": "\xdc",
 "Uuml;": "\xdc",
 "VDash;": "\u22ab",
 "Vbar;": "\u2aeb",
 "Vcy;": "\u0412",
 "Vdash;": "\u22a9",
 "Vdashl;": "\u2ae6",
 "Vee;": "\u22c1",
 "Verbar;": "\u2016",
 "Vert;": "\u2016",
 "VerticalBar;": "\u2223",
 "VerticalLine;": "|",
 "VerticalSeparator;": "\u2758",
 "VerticalTilde;": "\u2240",
 "VeryThinSpace;": "\u200a",
 "Vfr;": "\U0001d519",
 "Vopf;": "\U0001d54d",
 "Vscr;": "\U0001d4b1",
 "Vvdash;": "\u22aa",
 "Wcirc;": "\u0174",
 "Wedge;": "\u22c0",
 "Wfr;": "\U0001d51a",
 "Wopf;": "\U0001d54e",
 "Wscr;": "\U0001d4b2",
 "Xfr;": "\U0001d51b",
 "Xi;": "\u039e",
 "Xopf;": "\U0001d54f",
 "Xscr;": "\U0001d4b3",
 "YAcy;": "\u042f",
 "YIcy;": "\u0407",
 "YUcy;": "\u042e",
 "Yacute": "\xdd",
 "Yacute;": "\xdd",
 "Ycirc;": "\u0176",
 "Ycy;": "\u042b",
 "Yfr;": "\U0001d51c",
 "Yopf;": "\U0001d550",
 "Yscr;": "\U0001d4b4",
 "Yuml;": "\u0178",
 "ZHcy;": "\u0416",
 "Zacute;": "\u0179",
 "Zcaron;": "\u017d",
 "Zcy;": "\u0417",
 "Zdot;": "\u017b",
 "ZeroWidthSpace;": "\u200b",
 "Zeta;": "\u0396",
 "Zfr;": "\u2128",
 "Zopf;": "\u2124",
 "Zscr;": "\U0001d4b5",
 "aacute": "\xe1",
 "aacute;": "\xe1",
 "abreve;": "\u0103",
 "ac;": "\u223e",
 "acE;": "\u223e\u0333",
 "acd;": "\u223f",
 "acirc": "\xe2",
 "acirc;": "\xe2",
 "acute": "\xb4",
 "acute;": "\xb4",
 "acy;": "\u0430",
 "aelig": "\xe6",
 "aelig;": "\xe6",
 "af;": "\u2061",
 "afr;": "\U0001d51e",
 "agrave": "\xe0",
 "agrave;": "\xe0",
 "alefsym;": "\u2135",
 "aleph;": "\u2135",
 "alpha;": "\u03b1",
 "amacr;": "\u0101",
 "amalg;": "\u2a3f",
 "amp": "&",
 "amp;": "&",
 "and;": "\u2227",
 "andand;": "\u2a55",
 "andd;": "\u2a5c",
 "andslope;": "\u2a58",
 "andv;": "\u2a5a",
 "ang;": "\u2220",
 "ange;": "\u29a4",
 "angle;": "\u2220",
 "angmsd;": "\u2221",
 "angmsdaa;": "\u29a8",
 "angmsdab;": "\u29a9",
 "angmsdac;": "\u29aa",
 "angmsdad;": "\u29ab",
 "angmsdae;": "\u29ac",
 "angmsdaf;": "\u29ad",
 "angmsdag;": "\u29ae",
 "angmsdah;": "\u29af",
 "angrt;": "\u221f",
 "angrtvb;": "\u22be",
 "angrtvbd;": "\u299d",
 "angsph;": "\u2222",
 "angst;": "\xc5",
 "angzarr;": "\u237c",
 "aogon;": "\u0105",
 "aopf;": "\U0001d552",
 "ap;": "\u2248",
 "apE;": "\u2a70",
 "apacir;": "\u2a6f",
 "ape;": "\u224a",
 "apid;": "\u224b",
 "apos;": "'",
 "approx;": "\u2248",
 "approxeq;": "\u224a",
 "aring": "\xe5",
 "aring;": "\xe5",
 "ascr;": "\U0001d4b6",
 "ast;": "*",
 "asymp;": "\u2248",
 "asympeq;": "\u224d",
 "atilde": "\xe3",
 "atilde;": "\xe3",
 "auml": "\xe4",
 "auml;": "\xe4",
 "awconint;": "\u2233",
 "awint;": "\u2a11",
 "bNot;": "\u2aed",
 "backcong;": "\u224c",
 "backepsilon;": "\u03f6",
 "backprime;": "\u2035",
 "backsim;": "\u223d",
 "backsimeq;": "\u22cd",
 "barvee;": "\u22bd",
 "barwed;": "\u2305",
 "barwedge;": "\u2305",
 "bbrk;": "\u23b5",
 "bbrktbrk;": "\u23b6",
 "bcong;": "\u224c",
 "bcy;": "\u0431",
 "bdquo;": "\u201e",
 "becaus;": "\u2235",
 "because;": "\u2235",
 "bemptyv;": "\u29b0",
 "bepsi;": "\u03f6",
 "bernou;": "\u212c",
 "beta;": "\u03b2",
 "beth;": "\u2136",
 "between;": "\u226c",
 "bfr;": "\U0001d51f",
 "bigcap;": "\u22c2",
 "bigcirc;": "\u25ef",
 "bigcup;": "\u22c3",
 "bigodot;": "\u2a00",
 "bigoplus;": "\u2a01",
 "bigotimes;": "\u2a02",
 "bigsqcup;": "\u2a06",
 "bigstar;": "\u2605",
 "bigtriangledown;": "\u25bd",
 "bigtriangleup;": "\u25b3",
 "biguplus;": "\u2a04",
 "bigvee;": "\u22c1",
 "bigwedge;": "\u22c0",
 "bkarow;": "\u290d",
 "blacklozenge;": "\u29eb",
 "blacksquare;": "\u25aa",
 "blacktriangle;": "\u25b4",
 "blacktriangledown;": "\u25be",
 "blacktriangleleft;": "\u25c2",
 "blacktriangleright;": "\u25b8",
 "blank;": "\u2423",
 "blk12;": "\u2592",
 "blk14;": "\u2591",
 "blk34;": "\u2593",
 "block;": "\u2588",
 "bne;": "=\u20e5",
 "bnequiv;": "\u2261\u20e5",
 "bnot;": "\u2310",
 "bopf;": "\U0001d553",
 "bot;": "\u22a5",
 "bottom;": "\u22a5",
 "bowtie;": "\u22c8",
 "boxDL;": "\u2557",
 "boxDR;": "\u2554",
 "boxDl;": "\u2556",
 "boxDr;": "\u2553",
 "boxH;": "\u2550",
 "boxHD;": "\u2566",
 "boxHU;": "\u2569",
 "boxHd;": "\u2564",
 "boxHu;": "\u2567",
 "boxUL;": "\u255d",
 "boxUR;": "\u255a",
 "boxUl;": "\u255c",
 "boxUr;": "\u2559",
 "boxV;": "\u2551",
 "boxVH;": "\u256c",
 "boxVL;": "\u2563",
 "boxVR;": "\u2560",
 "boxVh;": "\u256b",
 "boxVl;": "\u2562",
 "boxVr;": "\u255f",
 "boxbox;": "\u29c9",
 "boxdL;": "\u2555",
 "boxdR;": "\u2552",
 "boxdl;": "\u2510",
 "boxdr;": "\u250c",
 "boxh;": "\u2500",
 "boxhD;": "\u2565",
 "boxhU;": "\u2568",
 "boxhd;": "\u252c",
 "boxhu;": "\u2534",
 "boxminus;": "\u229f",
 "boxplus;": "\u229e",
 "boxtimes;": "\u22a0",
 "boxuL;": "\u255b",
 "boxuR;": "\u2558",
 "boxul;": "\u2518",
 "boxur;": "\u2514",
 "boxv;": "\u2502",
 "boxvH;": "\u256a",
 "boxvL;": "\u2561",
 "boxvR;": "\u255e",
 "boxvh;": "\u253c",
 "boxvl;": "\u2524",
 "boxvr;": "\u251c",
 "bprime;": "\u2035",
 "breve;": "\u02d8",
 "brvbar": "\xa6",
 "brvbar;": "\xa6",
 "bscr;": "\U0001d4b7",
 "bsemi;": "\u204f",
 "bsim;": "\u223d",
 "bsime;": "\u22cd",
 "bsol;": "\\",
 "bsolb;": "\u29c5",
 "bsolhsub;": "\u27c8",
 "bull;": "\u2022",
 "bullet;": "\u2022",
 "bump;": "\u224e",
 "bumpE;": "\u2aae",
 "bumpe;": "\u224f",
 "bumpeq;": "\u224f",
 "cacute;": "\u0107",
 "cap;": "\u2229",
 "capand;": "\u2a44",
 "capbrcup;": "\u2a49",
 "capcap;": "\u2a4b",
 "capcup;": "\u2a47",
 "capdot;": "\u2a40",
 "caps;": "\u2229\ufe00",
 "caret;": "\u2041",
 "caron;": "\u02c7",
 "ccaps;": "\u2a4d",
 "ccaron;": "\u010d",
 "ccedil": "\xe7",
 "ccedil;": "\xe7",
 "ccirc;": "\u0109",
 "ccups;": "\u2a4c",
 "ccupssm;": "\u2a50",
 "cdot;": "\u010b",
 "cedil": "\xb8",
 "cedil;": "\xb8",
 "cemptyv;": "\u29b2",
 "cent": "\xa2",
 "cent;": "\xa2",
 "centerdot;": "\xb7",
 "cfr;": "\U0001d520",
 "chcy;": "\u0447",
 "check;": "\u2713",
 "checkmark;": "\u2713",
 "chi;": "\u03c7",
 "cir;": "\u25cb",
 "cirE;": "\u29c3",
 "circ;": "\u02c6",
 "circeq;": "\u2257",
 "circlearrowleft;": "\u21ba",
 "circlearrowright;": "\u21bb",
 "circledR;": "\xae",
 "circledS;": "\u24c8",
 "circledast;": "\u229b",
 "circledcirc;": "\u229a",
 "circleddash;": "\u229d",
 "cire;": "\u2257",
 "cirfnint;": "\u2a10",
 "cirmid;": "\u2aef",
 "cirscir;": "\u29c2",
 "clubs;": "\u2663",
 "clubsuit;": "\u2663",
 "colon;": ":",
 "colone;": "\u2254",
 "coloneq;": "\u2254",
 "comma;": ",",
 "commat;": "@",
 "comp;": "\u2201",
 "compfn;": "\u2218",
 "complement;": "\u2201",
 "complexes;": "\u2102",
 "cong;": "\u2245",
 "congdot;": "\u2a6d",
 "conint;": "\u222e",
 "copf;": "\U0001d554",
 "coprod;": "\u2210",
 "copy": "\xa9",
 "copy;": "\xa9",
 "copysr;": "\u2117",
 "crarr;": "\u21b5",
 "cross;": "\u2717",
 "cscr;": "\U0001d4b8",
 "csub;": "\u2acf",
 "csube;": "\u2ad1",
 "csup;": "\u2ad0",
 "csupe;": "\u2ad2",
 "ctdot;": "\u22ef",
 "cudarrl;": "\u2938",
 "cudarrr;": "\u2935",
 "cuepr;": "\u22de",
 "cuesc;": "\u22df",
 "cularr;": "\u21b6",
 "cularrp;": "\u293d",
 "cup;": "\u222a",
 "cupbrcap;": "\u2a48",
 "cupcap;": "\u2a46",
 "cupcup;": "\u2a4a",
 "cupdot;": "\u228d",
 "cupor;": "\u2a45",
 "cups;": "\u222a\ufe00",
 "curarr;": "\u21b7",
 "curarrm;": "\u293c",
 "curlyeqprec;": "\u22de",
 "curlyeqsucc;": "\u22df",
 "curlyvee;": "\u22ce",
 "curlywedge;": "\u22cf",
 "curren": "\xa4",
 "curren;": "\xa4",
 "curvearrowleft;": "\u21b6",
 "curvearrowright;": "\u21b7",
 "cuvee;": "\u22ce",
 "cuwed;": "\u22cf",
 "cwconint;": "\u2232",
 "cwint;": "\u2231",
 "cylcty;": "\u232d",
 "dArr;": "\u21d3",
 "dHar;": "\u2965",
 "dagger;": "\u2020",
 "daleth;": "\u2138",
 "darr;": "\u2193",
 "dash;": "\u2010",
 "dashv;": "\u22a3",
 "dbkarow;": "\u290f",
 "dblac;": "\u02dd",
 "dcaron;": "\u010f",
 "dcy;": "\u0434",
 "dd;": "\u2146",
 "ddagger;": "\u2021",
 "ddarr;": "\u21ca",
 "ddotseq;": "\u2a77",
 "deg": "\xb0",
 "deg;": "\xb0",
 "delta;": "\u03b4",
 "demptyv;": "\u29b1",
 "dfisht;": "\u297f",
 "dfr;": "\U0001d521",
 "dharl;": "\u21c3",
 "dharr;": "\u21c2",
 "diam;": "\u22c4",
 "diamond;": "\u22c4",
 "diamondsuit;": "\u2666",
 "diams;": "\u2666",
 "die;": "\xa8",
 "digamma;": "\u03dd",
 "disin;": "\u22f2",
 "div;": "\xf7",
 "divide": "\xf7",
 "divide;": "\xf7",
 "divideontimes;": "\u22c7",
 "divonx;": "\u22c7",
 "djcy;": "\u0452",
 "dlcorn;": "\u231e",
 "dlcrop;": "\u230d",
 "dollar;": "$",
 "dopf;": "\U0001d555",
 "dot;": "\u02d9",
 "doteq;": "\u2250",
 "doteqdot;": "\u2251",
 "dotminus;": "\u2238",
 "dotplus;": "\u2214",
 "dotsquare;": "\u22a1",
 "doublebarwedge;": "\u2306",
 "downarrow;": "\u2193",
 "downdownarrows;": "\u21ca",
 "downharpoonleft;": "\u21c3",
 "downharpoonright;": "\u21c2",
 "drbkarow;": "\u2910",
 "drcorn;": "\u231f",
 "drcrop;": "\u230c",
 "dscr;": "\U0001d4b9",
 "dscy;": "\u0455",
 "dsol;": "\u29f6",
 "dstrok;": "\u0111",
 "dtdot;": "\u22f1",
 "dtri;": "\u25bf",
 "dtrif;": "\u25be",
 "duarr;": "\u21f5",
 "duhar;": "\u296f",
 "dwangle;": "\u29a6",
 "dzcy;": "\u045f",
 "dzigrarr;": "\u27ff",
 "eDDot;": "\u2a77",
 "eDot;": "\u2251",
 "eacute": "\xe9",
 "eacute;": "\xe9",
 "easter;": "\u2a6e",
 "ecaron;": "\u011b",
 "ecir;": "\u2256",
 "ecirc": "\xea",
 "ecirc;": "\xea",
 "ecolon;": "\u2255",
 "ecy;": "\u044d",
 "edot;": "\u0117",
 "ee;": "\u2147",
 "efDot;": "\u2252",
 "efr;": "\U0001d522",
 "eg;": "\u2a9a",
 "egrave": "\xe8",
 "egrave;": "\xe8",
 "egs;": "\u2a96",
 "egsdot;": "\u2a98",
 "el;": "\u2a99",
 "elinters;": "\u23e7",
 "ell;": "\u2113",
 "els;": "\u2a95",
 "elsdot;": "\u2a97",
 "emacr;": "\u0113",
 "empty;": "\u2205",
 "emptyset;": "\u2205",
 "emptyv;": "\u2205",
 "emsp13;": "\u2004",
 "emsp14;": "\u2005",
 "emsp;": "\u2003",
 "eng;": "\u014b",
 "ensp;": "\u2002",
 "eogon;": "\u0119",
 "eopf;": "\U0001d556",
 "epar;": "\u22d5",
 "eparsl;": "\u29e3",
 "eplus;": "\u2a71",
 "epsi;": "\u03b5",
 "epsilon;": "\u03b5",
 "epsiv;": "\u03f5",
 "eqcirc;": "\u2256",
 "eqcolon;": "\u2255",
 "eqsim;": "\u2242",
 "eqslantgtr;": "\u2a96",
 "eqslantless;": "\u2a95",
 "equals;": "=",
 "equest;": "\u225f",
 "equiv;": "\u2261",
 "equivDD;": "\u2a78",
 "eqvparsl;": "\u29e5",
 "erDot;": "\u2253",
 "erarr;": "\u2971",
 "escr;": "\u212f",
 "esdot;": "\u2250",
 "esim;": "\u2242",
 "eta;": "\u03b7",
 "eth": "\xf0",
 "eth;": "\xf0",
 "euml": "\xeb",
 "euml;": "\xeb",
 "euro;": "\u20ac",
 "excl;": "!",
 "exist;": "\u2203",
 "expectation;": "\u2130",
 "exponentiale;": "\u2147",
 "fallingdotseq;": "\u2252",
 "fcy;": "\u0444",
 "female;": "\u2640",
 "ffilig;": "\ufb03",
 "fflig;": "\ufb00",
 "ffllig;": "\ufb04",
 "ffr;": "\U0001d523",
 "filig;": "\ufb01",
 "fjlig;": "fj",
 "flat;": "\u266d",
 "fllig;": "\ufb02",
 "fltns;": "\u25b1",
 "fnof;": "\u0192",
 "fopf;": "\U0001d557",
 "forall;": "\u2200",
 "fork;": "\u22d4",
 "forkv;": "\u2ad9",
 "fpartint;": "\u2a0d",
 "frac12": "\xbd",
 "frac12;": "\xbd",
 "frac13;": "\u2153",
 "frac14": "\xbc",
 "frac14;": "\xbc",
 "frac15;": "\u2155",
 "frac16;": "\u2159",
 "frac18;": "\u215b",
 "frac23;": "\u2154",
 "frac25;": "\u2156",
 "frac34": "\xbe",
 "frac34;": "\xbe",
 "frac35;": "\u2157",
 "frac38;": "\u215c",
 "frac45;": "\u2158",
 "frac56;": "\u215a",
 "frac58;": "\u215d",
 "frac78;": "\u215e",
 "frasl;": "\u2044",
 "frown;": "\u2322",
 "fscr;": "\U0001d4bb",
 "gE;": "\u2267",
 "gEl;": "\u2a8c",
 "gacute;": "\u01f5",
 "gamma;": "\u03b3",
 "gammad;": "\u03dd",
 "gap;": "\u2a86",
 "gbreve;": "\u011f",
 "gcirc;": "\u011d",
 "gcy;": "\u0433",
 "gdot;": "\u0121",
 "ge;": "\u2265",
 "gel;": "\u22db",
 "geq;": "\u2265",
 "geqq;": "\u2267",
 "geqslant;": "\u2a7e",
 "ges;": "\u2a7e",
 "gescc;": "\u2aa9",
 "gesdot;": "\u2a80",
 "gesdoto;": "\u2a82",
 "gesdotol;": "\u2a84",
 "gesl;": "\u22db\ufe00",
 "gesles;": "\u2a94",
 "gfr;": "\U0001d524",
 "gg;": "\u226b",
 "ggg;": "\u22d9",
 "gimel;": "\u2137",
 "gjcy;": "\u0453",
 "gl;": "\u2277",
 "glE;": "\u2a92",
 "gla;": "\u2aa5",
 "glj;": "\u2aa4",
 "gnE;": "\u2269",
 "gnap;": "\u2a8a",
 "gnapprox;": "\u2a8a",
 "gne;": "\u2a88",
 "gneq;": "\u2a88",
 "gneqq;": "\u2269",
 "gnsim;": "\u22e7",
 "gopf;": "\U0001d558",
 "grave;": "`",
 "gscr;": "\u210a",
 "gsim;": "\u2273",
 "gsime;": "\u2a8e",
 "gsiml;": "\u2a90",
 "gt": ">",
 "gt;": ">",
 "gtcc;": "\u2aa7",
 "gtcir;": "\u2a7a",
 "gtdot;": "\u22d7",
 "gtlPar;": "\u2995",
 "gtquest;": "\u2a7c",
 "gtrapprox;": "\u2a86",
 "gtrarr;": "\u2978",
 "gtrdot;": "\u22d7",
 "gtreqless;": "\u22db",
 "gtreqqless;": "\u2a8c",
 "gtrless;": "\u2277",
 "gtrsim;": "\u2273",
 "gvertneqq;": "\u2269\ufe00",
 "gvnE;": "\u2269\ufe00",
 "hArr;": "\u21d4",
 "hairsp;": "\u200a",
 "half;": "\xbd",
 "hamilt;": "\u210b",
 "hardcy;": "\u044a",
 "harr;": "\u2194",
 "harrcir;": "\u2948",
 "harrw;": "\u21ad",
 "hbar;": "\u210f",
 "hcirc;": "\u0125",
 "hearts;": "\u2665",
 "heartsuit;": "\u2665",
 "hellip;": "\u2026",
 "hercon;": "\u22b9",
 "hfr;": "\U0001d525",
 "hksearow;": "\u2925",
 "hkswarow;": "\u2926",
 "hoarr;": "\u21ff",
 "homtht;": "\u223b",
 "hookleftarrow;": "\u21a9",
 "hookrightarrow;": "\u21aa",
 "hopf;": "\U0001d559",
 "horbar;": "\u2015",
 "hscr;": "\U0001d4bd",
 "hslash;": "\u210f",
 "hstrok;": "\u0127",
 "hybull;": "\u2043",
 "hyphen;": "\u2010",
 "iacute": "\xed",
 "iacute;": "\xed",
 "ic;": "\u2063",
 "icirc": "\xee",
 "icirc;": "\xee",
 "icy;": "\u0438",
 "iecy;": "\u0435",
 "iexcl": "\xa1",
 "iexcl;": "\xa1",
 "iff;": "\u21d4",
 "ifr;": "\U0001d526",
 "igrave": "\xec",
 "igrave;": "\xec",
 "ii;": "\u2148",
 "iiiint;": "\u2a0c",
 "iiint;": "\u222d",
 "iinfin;": "\u29dc",
 "iiota;": "\u2129",
 "ijlig;": "\u0133",
 "imacr;": "\u012b",
 "image;": "\u2111",
 "imagline;": "\u2110",
 "imagpart;": "\u2111",
 "imath;": "\u0131",
 "imof;": "\u22b7",
 "imped;": "\u01b5",
 "in;": "\u2208",
 "incare;": "\u2105",
 "infin;": "\u221e",
 "infintie;": "\u29dd",
 "inodot;": "\u0131",
 "int;": "\u222b",
 "intcal;": "\u22ba",
 "integers;": "\u2124",
 "intercal;": "\u22ba",
 "intlarhk;": "\u2a17",
 "intprod;": "\u2a3c",
 "iocy;": "\u0451",
 "iogon;": "\u012f",
 "iopf;": "\U0001d55a",
 "iota;": "\u03b9",
 "iprod;": "\u2a3c",
 "iquest": "\xbf",
 "iquest;": "\xbf",
 "iscr;": "\U0001d4be",
 "isin;": "\u2208",
 "isinE;": "\u22f9",
 "isindot;": "\u22f5",
 "isins;": "\u22f4",
 "isinsv;": "\u22f3",
 "isinv;": "\u2208",
 "it;": "\u2062",
 "itilde;": "\u0129",
 "iukcy;": "\u0456",
 "iuml": "\xef",
 "iuml;": "\xef",
 "jcirc;": "\u0135",
 "jcy;": "\u0439",
 "jfr;": "\U0001d527",
 "jmath;": "\u0237",
 "jopf;": "\U0001d55b",
 "jscr;": "\U0001d4bf",
 "jsercy;": "\u0458",
 "jukcy;": "\u0454",
 "kappa;": "\u03ba",
 "kappav;": "\u03f0",
 "kcedil;": "\u0137",
 "kcy;": "\u043a",
 "kfr;": "\U0001d528",
 "kgreen;": "\u0138",
 "khcy;": "\u0445",
 "kjcy;": "\u045c",
 "kopf;": "\U0001d55c",
 "kscr;": "\U0001d4c0",
 "lAarr;": "\u21da",
 "lArr;": "\u21d0",
 "lAtail;": "\u291b",
 "lBarr;": "\u290e",
 "lE;": "\u2266",
 "lEg;": "\u2a8b",
 "lHar;": "\u2962",
 "lacute;": "\u013a",
 "laemptyv;": "\u29b4",
 "lagran;": "\u2112",
 "lambda;": "\u03bb",
 "lang;": "\u27e8",
 "langd;": "\u2991",
 "langle;": "\u27e8",
 "lap;": "\u2a85",
 "laquo": "\xab",
 "laquo;": "\xab",
 "larr;": "\u2190",
 "larrb;": "\u21e4",
 "larrbfs;": "\u291f",
 "larrfs;": "\u291d",
 "larrhk;": "\u21a9",
 "larrlp;": "\u21ab",
 "larrpl;": "\u2939",
 "larrsim;": "\u2973",
 "larrtl;": "\u21a2",
 "lat;": "\u2aab",
 "latail;": "\u2919",
 "late;": "\u2aad",
 "lates;": "\u2aad\ufe00",
 "lbarr;": "\u290c",
 "lbbrk;": "\u2772",
 "lbrace;": "{",
 "lbrack;": "[",
 "lbrke;": "\u298b",
 "lbrksld;": "\u298f",
 "lbrkslu;": "\u298d",
 "lcaron;": "\u013e",
 "lcedil;": "\u013c",
 "lceil;": "\u2308",
 "lcub;": "{",
 "lcy;": "\u043b",
 "ldca;": "\u2936",
 "ldquo;": "\u201c",
 "ldquor;": "\u201e",
 "ldrdhar;": "\u2967",
 "ldrushar;": "\u294b",
 "ldsh;": "\u21b2",
 "le;": "\u2264",
 "leftarrow;": "\u2190",
 "leftarrowtail;": "\u21a2",
 "leftharpoondown;": "\u21bd",
 "leftharpoonup;": "\u21bc",
 "leftleftarrows;": "\u21c7",
 "leftrightarrow;": "\u2194",
 "leftrightarrows;": "\u21c6",
 "leftrightharpoons;": "\u21cb",
 "leftrightsquigarrow;": "\u21ad",
 "leftthreetimes;": "\u22cb",
 "leg;": "\u22da",
 "leq;": "\u2264",
 "leqq;": "\u2266",
 "leqslant;": "\u2a7d",
 "les;": "\u2a7d",
 "lescc;": "\u2aa8",
 "lesdot;": "\u2a7f",
 "lesdoto;": "\u2a81",
 "lesdotor;": "\u2a83",
 "lesg;": "\u22da\ufe00",
 "lesges;": "\u2a93",
 "lessapprox;": "\u2a85",
 "lessdot;": "\u22d6",
 "lesseqgtr;": "\u22da",
 "lesseqqgtr;": "\u2a8b",
 "lessgtr;": "\u2276",
 "lesssim;": "\u2272",
 "lfisht;": "\u297c",
 "lfloor;": "\u230a",
 "lfr;": "\U0001d529",
 "lg;": "\u2276",
 "lgE;": "\u2a91",
 "lhard;": "\u21bd",
 "lharu;": "\u21bc",
 "lharul;": "\u296a",
 "lhblk;": "\u2584",
 "ljcy;": "\u0459",
 "ll;": "\u226a",
 "llarr;": "\u21c7",
 "llcorner;": "\u231e",
 "llhard;": "\u296b",
 "lltri;": "\u25fa",
 "lmidot;": "\u0140",
 "lmoust;": "\u23b0",
 "lmoustache;": "\u23b0",
 "lnE;": "\u2268",
 "lnap;": "\u2a89",
 "lnapprox;": "\u2a89",
 "lne;": "\u2a87",
 "lneq;": "\u2a87",
 "lneqq;": "\u2268",
 "lnsim;": "\u22e6",
 "loang;": "\u27ec",
 "loarr;": "\u21fd",
 "lobrk;": "\u27e6",
 "longleftarrow;": "\u27f5",
 "longleftrightarrow;": "\u27f7",
 "longmapsto;": "\u27fc",
 "longrightarrow;": "\u27f6",
 "looparrowleft;": "\u21ab",
 "looparrowright;": "\u21ac",
 "lopar;": "\u2985",
 "lopf;": "\U0001d55d",
 "loplus;": "\u2a2d",
 "lotimes;": "\u2a34",
 "lowast;": "\u2217",
 "lowbar;": "_",
 "loz;": "\u25ca",
 "lozenge;": "\u25ca",
 "lozf;": "\u29eb",
 "lpar;": "(",
 "lparlt;": "\u2993",
 "lrarr;": "\u21c6",
 "lrcorner;": "\u231f",
 "lrhar;": "\u21cb",
 "lrhard;": "\u296d",
 "lrm;": "\u200e",
 "lrtri;": "\u22bf",
 "lsaquo;": "\u2039",
 "lscr;": "\U0001d4c1",
 "lsh;": "\u21b0",
 "lsim;": "\u2272",
 "lsime;": "\u2a8d",
 "lsimg;": "\u2a8f",
 "lsqb;": "[",
 "lsquo;": "\u2018",
 "lsquor;": "\u201a",
 "lstrok;": "\u0142",
 "lt": "<",
 "lt;": "<",
 "ltcc;": "\u2aa6",
 "ltcir;": "\u2a79",
 "ltdot;": "\u22d6",
 "lthree;": "\u22cb",
 "ltimes;": "\u22c9",
 "ltlarr;": "\u2976",
 "ltquest;": "\u2a7b",
 "ltrPar;": "\u2996",
 "ltri;": "\u25c3",
 "ltrie;": "\u22b4",
 "ltrif;": "\u25c2",
 "lurdshar;": "\u294a",
 "luruhar;": "\u2966",
 "lvertneqq;": "\u2268\ufe00",
 "lvnE;": "\u2268\ufe00",
 "mDDot;": "\u223a",
 "macr": "\xaf",
 "macr;": "\xaf",
 "male;": "\u2642",
 "malt;": "\u2720",
 "maltese;": "\u2720",
 "map;": "\u21a6",
 "mapsto;": "\u21a6",
 "mapstodown;": "\u21a7",
 "mapstoleft;": "\u21a4",
 "mapstoup;": "\u21a5",
 "marker;": "\u25ae",
 "mcomma;": "\u2a29",
 "mcy;": "\u043c",
 "mdash;": "\u2014",
 "measuredangle;": "\u2221",
 "mfr;": "\U0001d52a",
 "mho;": "\u2127",
 "micro": "\xb5",
 "micro;": "\xb5",
 "mid;": "\u2223",
 "midast;": "*",
 "midcir;": "\u2af0",
 "middot": "\xb7",
 "middot;": "\xb7",
 "minus;": "\u2212",
 "minusb;": "\u229f",
 "minusd;": "\u2238",
 "minusdu;": "\u2a2a",
 "mlcp;": "\u2adb",
 "mldr;": "\u2026",
 "mnplus;": "\u2213",
 "models;": "\u22a7",
 "mopf;": "\U0001d55e",
 "mp;": "\u2213",
 "mscr;": "\U0001d4c2",
 "mstpos;": "\u223e",
 "mu;": "\u03bc",
 "multimap;": "\u22b8",
 "mumap;": "\u22b8",
 "nGg;": "\u22d9\u0338",
 "nGt;": "\u226b\u20d2",
 "nGtv;": "\u226b\u0338",
 "nLeftarrow;": "\u21cd",
 "nLeftrightarrow;": "\u21ce",
 "nLl;": "\u22d8\u0338",
 "nLt;": "\u226a\u20d2",
 "nLtv;": "\u226a\u0338",
 "nRightarrow;": "\u21cf",
 "nVDash;": "\u22af",
 "nVdash;": "\u22ae",
 "nabla;": "\u2207",
 "nacute;": "\u0144",
 "nang;": "\u2220\u20d2",
 "nap;": "\u2249",
 "napE;": "\u2a70\u0338",
 "napid;": "\u224b\u0338",
 "napos;": "\u0149",
 "napprox;": "\u2249",
 "natur;": "\u266e",
 "natural;": "\u266e",
 "naturals;": "\u2115",
 "nbsp": "\xa0",
 "nbsp;": "\xa0",
 "nbump;": "\u224e\u0338",
 "nbumpe;": "\u224f\u0338",
 "ncap;": "\u2a43",
 "ncaron;": "\u0148",
 "ncedil;": "\u0146",
 "ncong;": "\u2247",
 "ncongdot;": "\u2a6d\u0338",
 "ncup;": "\u2a42",
 "ncy;": "\u043d",
 "ndash;": "\u2013",
 "ne;": "\u2260",
 "neArr;": "\u21d7",
 "nearhk;": "\u2924",
 "nearr;": "\u2197",
 "nearrow;": "\u2197",
 "nedot;": "\u2250\u0338",
 "nequiv;": "\u2262",
 "nesear;": "\u2928",
 "nesim;": "\u2242\u0338",
 "nexist;": "\u2204",
 "nexists;": "\u2204",
 "nfr;": "\U0001d52b",
 "ngE;": "\u2267\u0338",
 "nge;": "\u2271",
 "ngeq;": "\u2271",
 "ngeqq;": "\u2267\u0338",
 "ngeqslant;": "\u2a7e\u0338",
 "nges;": "\u2a7e\u0338",
 "ngsim;": "\u2275",
 "ngt;": "\u226f",
 "ngtr;": "\u226f",
 "nhArr;": "\u21ce",
 "nharr;": "\u21ae",
 "nhpar;": "\u2af2",
 "ni;": "\u220b",
 "nis;": "\u22fc",
 "nisd;": "\u22fa",
 "niv;": "\u220b",
 "njcy;": "\u045a",
 "nlArr;": "\u21cd",
 "nlE;": "\u2266\u0338",
 "nlarr;": "\u219a",
 "nldr;": "\u2025",
 "nle;": "\u2270",
 "nleftarrow;": "\u219a",
 "nleftrightarrow;": "\u21ae",
 "nleq;": "\u2270",
 "nleqq;": "\u2266\u0338",
 "nleqslant;": "\u2a7d\u0338",
 "nles;": "\u2a7d\u0338",
 "nless;": "\u226e",
 "nlsim;": "\u2274",
 "nlt;": "\u226e",
 "nltri;": "\u22ea",
 "nltrie;": "\u22ec",
 "nmid;": "\u2224",
 "nopf;": "\U0001d55f",
 "not": "\xac",
 "not;": "\xac",
 "notin;": "\u2209",
 "notinE;": "\u22f9\u0338",
 "notindot;": "\u22f5\u0338",
 "notinva;": "\u2209",
 "notinvb;": "\u22f7",
 "notinvc;": "\u22f6",
 "notni;": "\u220c",
 "notniva;": "\u220c",
 "notnivb;": "\u22fe",
 "notnivc;": "\u22fd",
 "npar;": "\u2226",
 "nparallel;": "\u2226",
 "nparsl;": "\u2afd\u20e5",
 "npart;": "\u2202\u0338",
 "npolint;": "\u2a14",
 "npr;": "\u2280",
 "nprcue;": "\u22e0",
 "npre;": "\u2aaf\u0338",
 "nprec;": "\u2280",
 "npreceq;": "\u2aaf\u0338",
 "nrArr;": "\u21cf",
 "nrarr;": "\u219b",
 "nrarrc;": "\u2933\u0338",
 "nrarrw;": "\u219d\u0338",
 "nrightarrow;": "\u219b",
 "nrtri;": "\u22eb",
 "nrtrie;": "\u22ed",
 "nsc;": "\u2281",
 "nsccue;": "\u22e1",
 "nsce;": "\u2ab0\u0338",
 "nscr;": "\U0001d4c3",
 "nshortmid;": "\u2224",
 "nshortparallel;": "\u2226",
 "nsim;": "\u2241",
 "nsime;": "\u2244",
 "nsimeq;": "\u2244",
 "nsmid;": "\u2224",
 "nspar;": "\u2226",
 "nsqsube;": "\u22e2",
 "nsqsupe;": "\u22e3",
 "nsub;": "\u2284",
 "nsubE;": "\u2ac5\u0338",
 "nsube;": "\u2288",
 "nsubset;": "\u2282\u20d2",
 "nsubseteq;": "\u2288",
 "nsubseteqq;": "\u2ac5\u0338",
 "nsucc;": "\u2281",
 "nsucceq;": "\u2ab0\u0338",
 "nsup;": "\u2285",
 "nsupE;": "\u2ac6\u0338",
 "nsupe;": "\u2289",
 "nsupset;": "\u2283\u20d2",
 "nsupseteq;": "\u2289",
 "nsupseteqq;": "\u2ac6\u0338",
 "ntgl;": "\u2279",
 "ntilde": "\xf1",
 "ntilde;": "\xf1",
 "ntlg;": "\u2278",
 "ntriangleleft;": "\u22ea",
 "ntrianglelefteq;": "\u22ec",
 "ntriangleright;": "\u22eb",
 "ntrianglerighteq;": "\u22ed",
 "nu;": "\u03bd",
 "num;": "#",
 "numero;": "\u2116",
 "numsp;": "\u2007",
 "nvDash;": "\u22ad",
 "nvHarr;": "\u2904",
 "nvap;": "\u224d\u20d2",
 "nvdash;": "\u22ac",
 "nvge;": "\u2265\u20d2",
 "nvgt;": ">\u20d2",
 "nvinfin;": "\u29de",
 "nvlArr;": "\u2902",
 "nvle;": "\u2264\u20d2",
 "nvlt;": "<\u20d2",
 "nvltrie;": "\u22b4\u20d2",
 "nvrArr;": "\u2903",
 "nvrtrie;": "\u22b5\u20d2",
 "nvsim;": "\u223c\u20d2",
 "nwArr;": "\u21d6",
 "nwarhk;": "\u2923",
 "nwarr;": "\u2196",
 "nwarrow;": "\u2196",
 "nwnear;": "\u2927",
 "oS;": "\u24c8",
 "oacute": "\xf3",
 "oacute;": "\xf3",
 "oast;": "\u229b",
 "ocir;": "\u229a",
 "ocirc": "\xf4",
 "ocirc;": "\xf4",
 "ocy;": "\u043e",
 "odash;": "\u229d",
 "odblac;": "\u0151",
 "odiv;": "\u2a38",
 "odot;": "\u2299",
 "odsold;": "\u29bc",
 "oelig;": "\u0153",
 "ofcir;": "\u29bf",
 "ofr;": "\U0001d52c",
 "ogon;": "\u02db",
 "ograve": "\xf2",
 "ograve;": "\xf2",
 "ogt;": "\u29c1",
 "ohbar;": "\u29b5",
 "ohm;": "\u03a9",
 "oint;": "\u222e",
 "olarr;": "\u21ba",
 "olcir;": "\u29be",
 "olcross;": "\u29bb",
 "oline;": "\u203e",
 "olt;": "\u29c0",
 "omacr;": "\u014d",
 "omega;": "\u03c9",
 "omicron;": "\u03bf",
 "omid;": "\u29b6",
 "ominus;": "\u2296",
 "oopf;": "\U0001d560",
 "opar;": "\u29b7",
 "operp;": "\u29b9",
 "oplus;": "\u2295",
 "or;": "\u2228",
 "orarr;": "\u21bb",
 "ord;": "\u2a5d",
 "order;": "\u2134",
 "orderof;": "\u2134",
 "ordf": "\xaa",
 "ordf;": "\xaa",
 "ordm": "\xba",
 "ordm;": "\xba",
 "origof;": "\u22b6",
 "oror;": "\u2a56",
 "orslope;": "\u2a57",
 "orv;": "\u2a5b",
 "oscr;": "\u2134",
 "oslash": "\xf8",
 "oslash;": "\xf8",
 "osol;": "\u2298",
 "otilde": "\xf5",
 "otilde;": "\xf5",
 "otimes;": "\u2297",
 "otimesas;": "\u2a36",
 "ouml": "\xf6",
 "ouml;": "\xf6",
 "ovbar;": "\u233d",
 "par;": "\u2225",
 "para": "\xb6",
 "para;": "\xb6",
 "parallel;": "\u2225",
 "parsim;": "\u2af3",
 "parsl;": "\u2afd",
 "part;": "\u2202",
 "pcy;": "\u043f",
 "percnt;": "%",
 "period;": ".",
 "permil;": "\u2030",
 "perp;": "\u22a5",
 "pertenk;": "\u2031",
 "pfr;": "\U0001d52d",
 "phi;": "\u03c6",
 "phiv;": "\u03d5",
 "phmmat;": "\u2133",
 "phone;": "\u260e",
 "pi;": "\u03c0",
 "pitchfork;": "\u22d4",
 "piv;": "\u03d6",
 "planck;": "\u210f",
 "planckh;": "\u210e",
 "plankv;": "\u210f",
 "plus;": "+",
 "plusacir;": "\u2a23",
 "plusb;": "\u229e",
 "pluscir;": "\u2a22",
 "plusdo;": "\u2214",
 "plusdu;": "\u2a25",
 "pluse;": "\u2a72",
 "plusmn": "\xb1",
 "plusmn;": "\xb1",
 "plussim;": "\u2a26",
 "plustwo;": "\u2a27",
 "pm;": "\xb1",
 "pointint;": "\u2a15",
 "popf;": "\U0001d561",
 "pound": "\xa3",
 "pound;": "\xa3",
 "pr;": "\u227a",
 "prE;": "\u2ab3",
 "prap;": "\u2ab7",
 "prcue;": "\u227c",
 "pre;": "\u2aaf",
 "prec;": "\u227a",
 "precapprox;": "\u2ab7",
 "preccurlyeq;": "\u227c",
 "preceq;": "\u2aaf",
 "precnapprox;": "\u2ab9",
 "precneqq;": "\u2ab5",
 "precnsim;": "\u22e8",
 "precsim;": "\u227e",
 "prime;": "\u2032",
 "primes;": "\u2119",
 "prnE;": "\u2ab5",
 "prnap;": "\u2ab9",
 "prnsim;": "\u22e8",
 "prod;": "\u220f",
 "profalar;": "\u232e",
 "profline;": "\u2312",
 "profsurf;": "\u2313",
 "prop;": "\u221d",
 "propto;": "\u221d",
 "prsim;": "\u227e",
 "prurel;": "\u22b0",
 "pscr;": "\U0001d4c5",
 "psi;": "\u03c8",
 "puncsp;": "\u2008",
 "qfr;": "\U0001d52e",
 "qint;": "\u2a0c",
 "qopf;": "\U0001d562",
 "qprime;": "\u2057",
 "qscr;": "\U0001d4c6",
 "quaternions;": "\u210d",
 "quatint;": "\u2a16",
 "quest;": "?",
 "questeq;": "\u225f",
 "quot": "\"",
 "quot;": "\"",
 "rAarr;": "\u21db",
 "rArr;": "\u21d2",
 "rAtail;": "\u291c",
 "rBarr;": "\u290f",
 "rHar;": "\u2964",
 "race;": "\u223d\u0331",
 "racute;": "\u0155",
 "radic;": "\u221a",
 "raemptyv;": "\u29b3",
 "rang;": "\u27e9",
 "rangd;": "\u2992",
 "range;": "\u29a5",
 "rangle;": "\u27e9",
 "raquo": "\xbb",
 "raquo;": "\xbb",
 "rarr;": "\u2192",
 "rarrap;": "\u2975",
 "rarrb;": "\u21e5",
 "rarrbfs;": "\u2920",
 "rarrc;": "\u2933",
 "rarrfs;": "\u291e",
 "rarrhk;": "\u21aa",
 "rarrlp;": "\u21ac",
 "rarrpl;": "\u2945",
 "rarrsim;": "\u2974",
 "rarrtl;": "\u21a3",
 "rarrw;": "\u219d",
 "ratail;": "\u291a",
 "ratio;": "\u2236",
 "rationals;": "\u211a",
 "rbarr;": "\u290d",
 "rbbrk;": "\u2773",
 "rbrace;": "}",
 "rbrack;": "]",
 "rbrke;": "\u298c",
 "rbrksld;": "\u298e",
 "rbrkslu;": "\u2990",
 "rcaron;": "\u0159",
 "rcedil;": "\u0157",
 "rceil;": "\u2309",
 "rcub;": "}",
 "rcy;": "\u0440",
 "rdca;": "\u2937",
 "rdldhar;": "\u2969",
 "rdquo;": "\u201d",
 "rdquor;": "\u201d",
 "rdsh;": "\u21b3",
 "real;": "\u211c",
 "realine;": "\u211b",
 "realpart;": "\u211c",
 "reals;": "\u211d",
 "rect;": "\u25ad",
 "reg": "\xae",
 "reg;": "\xae",
 "rfisht;": "\u297d",
 "rfloor;": "\u230b",
 "rfr;": "\U0001d52f",
 "rhard;": "\u21c1",
 "rharu;": "\u21c0",
 "rharul;": "\u296c",
 "rho;": "\u03c1",
 "rhov;": "\u03f1",
 "rightarrow;": "\u2192",
 "rightarrowtail;": "\u21a3",
 "rightharpoondown;": "\u21c1",
 "rightharpoonup;": "\u21c0",
 "rightleftarrows;": "\u21c4",
 "rightleftharpoons;": "\u21cc",
 "rightrightarrows;": "\u21c9",
 "rightsquigarrow;": "\u219d",
 "rightthreetimes;": "\u22cc",
 "ring;": "\u02da",
 "risingdotseq;": "\u2253",
 "rlarr;": "\u21c4",
 "rlhar;": "\u21cc",
 "rlm;": "\u200f",
 "rmoust;": "\u23b1",
 "rmoustache;": "\u23b1",
 "rnmid;": "\u2aee",
 "roang;": "\u27ed",
 "roarr;": "\u21fe",
 "robrk;": "\u27e7",
 "ropar;": "\u2986",
 "ropf;": "\U0001d563",
 "roplus;": "\u2a2e",
 "rotimes;": "\u2a35",
 "rpar;": ")",
 "rpargt;": "\u2994",
 "rppolint;": "\u2a12",
 "rrarr;": "\u21c9",
 "rsaquo;": "\u203a",
 "rscr;": "\U0001d4c7",
 "rsh;": "\u21b1",
 "rsqb;": "]",
 "rsquo;": "\u2019",
 "rsquor;": "\u2019",
 "rthree;": "\u22cc",
 "rtimes;": "\u22ca",
 "rtri;": "\u25b9",
 "rtrie;": "\u22b5",
 "rtrif;": "\u25b8",
 "rtriltri;": "\u29ce",
 "ruluhar;": "\u2968",
 "rx;": "\u211e",
 "sacute;": "\u015b",
 "sbquo;": "\u201a",
 "sc;": "\u227b",
 "scE;": "\u2ab4",
 "scap;": "\u2ab8",
 "scaron;": "\u0161",
 "sccue;": "\u227d",
 "sce;": "\u2ab0",
 "scedil;": "\u015f",
 "scirc;": "\u015d",
 "scnE;": "\u2ab6",
 "scnap;": "\u2aba",
 "scnsim;": "\u22e9",
 "scpolint;": "\u2a13",
 "scsim;": "\u227f",
 "scy;": "\u0441",
 "sdot;": "\u22c5",
 "sdotb;": "\u22a1",
 "sdote;": "\u2a66",
 "seArr;": "\u21d8",
 "searhk;": "\u2925",
 "searr;": "\u2198",
 "searrow;": "\u2198",
 "sect": "\xa7",
 "sect;": "\xa7",
 "semi;": ";",
 "seswar;": "\u2929",
 "setminus;": "\u2216",
 "setmn;": "\u2216",
 "sext;": "\u2736",
 "sfr;": "\U0001d530",
 "sfrown;": "\u2322",
 "sharp;": "\u266f",
 "shchcy;": "\u0449",
 "shcy;": "\u0448",
 "shortmid;": "\u2223",
 "shortparallel;": "\u2225",
 "shy": "\xad",
 "shy;": "\xad",
 "sigma;": "\u03c3",
 "sigmaf;": "\u03c2",
 "sigmav;": "\u03c2",
 "sim;": "\u223c",
 "simdot;": "\u2a6a",
 "sime;": "\u2243",
 "simeq;": "\u2243",
 "simg;": "\u2a9e",
 "simgE;": "\u2aa0",
 "siml;": "\u2a9d",
 "simlE;": "\u2a9f",
 "simne;": "\u2246",
 "simplus;": "\u2a24",
 "simrarr;": "\u2972",
 "slarr;": "\u2190",
 "smallsetminus;": "\u2216",
 "smashp;": "\u2a33",
 "smeparsl;": "\u29e4",
 "smid;": "\u2223",
 "smile;": "\u2323",
 "smt;": "\u2aaa",
 "smte;": "\u2aac",
 "smtes;": "\u2aac\ufe00",
 "softcy;": "\u044c",
 "sol;": "/",
 "solb;": "\u29c4",
 "solbar;": "\u233f",
 "sopf;": "\U0001d564",
 "spades;": "\u2660",
 "spadesuit;": "\u2660",
 "spar;": "\u2225",
 "sqcap;": "\u2293",
 "sqcaps;": "\u2293\ufe00",
 "sqcup;": "\u2294",
 "sqcups;": "\u2294\ufe00",
 "sqsub;": "\u228f",
 "sqsube;": "\u2291",
 "sqsubset;": "\u228f",
 "sqsubseteq;": "\u2291",
 "sqsup;": "\u2290",
 "sqsupe;": "\u2292",
 "sqsupset;": "\u2290",
 "sqsupseteq;": "\u2292",
 "squ;": "\u25a1",
 "square;": "\u25a1",
 "squarf;": "\u25aa",
 "squf;": "\u25aa",
 "srarr;": "\u2192",
 "sscr;": "\U0001d4c8",
 "ssetmn;": "\u2216",
 "ssmile;": "\u2323",
 "sstarf;": "\u22c6",
 "star;": "\u2606",
 "starf;": "\u2605",
 "straightepsilon;": "\u03f5",
 "straightphi;": "\u03d5",
 "strns;": "\xaf",
 "sub;": "\u2282",
 "subE;": "\u2ac5",
 "subdot;": "\u2abd",
 "sube;": "\u2286",
 "subedot;": "\u2ac3",
 "submult;": "\u2ac1",
 "subnE;": "\u2acb",
 "subne;": "\u228a",
 "subplus;": "\u2abf",
 "subrarr;": "\u2979",
 "subset;": "\u2282",
 "subseteq;": "\u2286",
 "subseteqq;": "\u2ac5",
 "subsetneq;": "\u228a",
 "subsetneqq;": "\u2acb",
 "subsim;": "\u2ac7",
 "subsub;": "\u2ad5",
 "subsup;": "\u2ad3",
 "succ;": "\u227b",
 "succapprox;": "\u2ab8",
 "succcurlyeq;": "\u227d",
 "succeq;": "\u2ab0",
 "succnapprox;": "\u2aba",
 "succneqq;": "\u2ab6",
 "succnsim;": "\u22e9",
 "succsim;": "\u227f",
 "sum;": "\u2211",
 "sung;": "\u266a",
 "sup1": "\xb9",
 "sup1;": "\xb9",
 "sup2": "\xb2",
 "sup2;": "\xb2",
 "sup3": "\xb3",
 "sup3;": "\xb3",
 "sup;": "\u2283",
 "supE;": "\u2ac6",
 "supdot;": "\u2abe",
 "supdsub;": "\u2ad8",
 "supe;": "\u2287",
 "supedot;": "\u2ac4",
 "suphsol;": "\u27c9",
 "suphsub;": "\u2ad7",
 "suplarr;": "\u297b",
 "supmult;": "\u2ac2",
 "supnE;": "\u2acc",
 "supne;": "\u228b",
 "supplus;": "\u2ac0",
 "supset;": "\u2283",
 "supseteq;": "\u2287",
 "supseteqq;": "\u2ac6",
 "supsetneq;": "\u228b",
 "supsetneqq;": "\u2acc",
 "supsim;": "\u2ac8",
 "supsub;": "\u2ad4",
 "supsup;": "\u2ad6",
 "swArr;": "\u21d9",
 "swarhk;": "\u2926",
 "swarr;": "\u2199",
 "swarrow;": "\u2199",
 "swnwar;": "\u292a",
 "szlig": "\xdf",
 "szlig;": "\xdf",
 "target;": "\u2316",
 "tau;": "\u03c4",
 "tbrk;": "\u23b4",
 "tcaron;": "\u0165",
 "tcedil;": "\u0163",
 "tcy;": "\u0442",
 "tdot;": "\u20db",
 "telrec;": "\u2315",
 "tfr;": "\U0001d531",
 "there4;": "\u2234",
 "therefore;": "\u2234",
 "theta;": "\u03b8",
 "thetasym;": "\u03d1",
 "thetav;": "\u03d1",
 "thickapprox;": "\u2248",
 "thicksim;": "\u223c",
 "thinsp;": "\u2009",
 "thkap;": "\u2248",
 "thksim;": "\u223c",
 "thorn": "\xfe",
 "thorn;": "\xfe",
 "tilde;": "\u02dc",
 "times": "\xd7",
 "times;": "\xd7",
 "timesb;": "\u22a0",
 "timesbar;": "\u2a31",
 "timesd;": "\u2a30",
 "tint;": "\u222d",
 "toea;": "\u2928",
 "top;": "\u22a4",
 "topbot;": "\u2336",
 "topcir;": "\u2af1",
 "topf;": "\U0001d565",
 "topfork;": "\u2ada",
 "tosa;": "\u2929",
 "tprime;": "\u2034",
 "trade;": "\u2122",
 "triangle;": "\u25b5",
 "triangledown;": "\u25bf",
 "triangleleft;": "\u25c3",
 "trianglelefteq;": "\u22b4",
 "triangleq;": "\u225c",
 "triangleright;": "\u25b9",
 "trianglerighteq;": "\u22b5",
 "tridot;": "\u25ec",
 "trie;": "\u225c",
 "triminus;": "\u2a3a",
 "triplus;": "\u2a39",
 "trisb;": "\u29cd",
 "tritime;": "\u2a3b",
 "trpezium;": "\u23e2",
 "tscr;": "\U0001d4c9",
 "tscy;": "\u0446",
 "tshcy;": "\u045b",
 "tstrok;": "\u0167",
 "twixt;": "\u226c",
 "twoheadleftarrow;": "\u219e",
 "twoheadrightarrow;": "\u21a0",
 "uArr;": "\u21d1",
 "uHar;": "\u2963",
 "uacute": "\xfa",
 "uacute;": "\xfa",
 "uarr;": "\u2191",
 "ubrcy;": "\u045e",
 "ubreve;": "\u016d",
 "ucirc": "\xfb",
 "ucirc;": "\xfb",
 "ucy;": "\u0443",
 "udarr;": "\u21c5",
 "udblac;": "\u0171",
 "udhar;": "\u296e",
 "ufisht;": "\u297e",
 "ufr;": "\U0001d532",
 "ugrave": "\xf9",
 "ugrave;": "\xf9",
 "uharl;": "\u21bf",
 "uharr;": "\u21be",
 "uhblk;": "\u2580",
 "ulcorn;": "\u231c",
 "ulcorner;": "\u231c",
 "ulcrop;": "\u230f",
 "ultri;": "\u25f8",
 "umacr;": "\u016b",
 "uml": "\xa8",
 "uml;": "\xa8",
 "uogon;": "\u0173",
 "uopf;": "\U0001d566",
 "uparrow;": "\u2191",
 "updownarrow;": "\u2195",
 "upharpoonleft;": "\u21bf",
 "upharpoonright;": "\u21be",
 "uplus;": "\u228e",
 "upsi;": "\u03c5",
 "upsih;": "\u03d2",
 "upsilon;": "\u03c5",
 "upuparrows;": "\u21c8",
 "urcorn;": "\u231d",
 "urcorner;": "\u231d",
 "urcrop;": "\u230e",
 "uring;": "\u016f",
 "urtri;": "\u25f9",
 "uscr;": "\U0001d4ca",
 "utdot;": "\u22f0",
 "utilde;": "\u0169",
 "utri;": "\u25b5",
 "utrif;": "\u25b4",
 "uuarr;": "\u21c8",
 "uuml": "\xfc",
 "uuml;": "\xfc",
 "uwangle;": "\u29a7",
 "vArr;": "\u21d5",
 "vBar;": "\u2ae8",
 "vBarv;": "\u2ae9",
 "vDash;": "\u22a8",
 "vangrt;": "\u299c",
 "varepsilon;": "\u03f5",
 "varkappa;": "\u03f0",
 "varnothing;": "\u2205",
 "varphi;": "\u03d5",
 "varpi;": "\u03d6",
 "varpropto;": "\u221d",
 "varr;": "\u2195",
 "varrho;": "\u03f1",
 "varsigma;": "\u03c2",
 "varsubsetneq;": "\u228a\ufe00",
 "varsubsetneqq;": "\u2acb\ufe00",
 "varsupsetneq;": "\u228b\ufe00",
 "varsupsetneqq;": "\u2acc\ufe00",
 "vartheta;": "\u03d1",
 "vartriangleleft;": "\u22b2",
 "vartriangleright;": "\u22b3",
 "vcy;": "\u0432",
 "vdash;": "\u22a2",
 "vee;": "\u2228",
 "veebar;": "\u22bb",
 "veeeq;": "\u225a",
 "vellip;": "\u22ee",
 "verbar;": "|",
 "vert;": "|",
 "vfr;": "\U0001d533",
 "vltri;": "\u22b2",
 "vnsub;": "\u2282\u20d2",
 "vnsup;": "\u2283\u20d2",
 "vopf;": "\U0001d567",
 "vprop;": "\u221d",
 "vrtri;": "\u22b3",
 "vscr;": "\U0001d4cb",
 "vsubnE;": "\u2acb\ufe00",
 "vsubne;": "\u228a\ufe00",
 "vsupnE;": "\u2acc\ufe00",
 "vsupne;": "\u228b\ufe00",
 "vzigzag;": "\u299a",
 "wcirc;": "\u0175",
 "wedbar;": "\u2a5f",
 "wedge;": "\u2227",
 "wedgeq;": "\u2259",
 "weierp;": "\u2118",
 "wfr;": "\U0001d534",
 "wopf;": "\U0001d568",
 "wp;": "\u2118",
 "wr;": "\u2240",
 "wreath;": "\u2240",
 "wscr;": "\U0001d4cc",
 "xcap;": "\u22c2",
 "xcirc;": "\u25ef",
 "xcup;": "\u22c3",
 "xdtri;": "\u25bd",
 "xfr;": "\U0001d535",
 "xhArr;": "\u27fa",
 "xharr;": "\u27f7",
 "xi;": "\u03be",
 "xlArr;": "\u27f8",
 "xlarr;": "\u27f5",
 "xmap;": "\u27fc",
 "xnis;": "\u22fb",
 "xodot;": "\u2a00",
 "xopf;": "\U0001d569",
 "xoplus;": "\u2a01",
 "xotime;": "\u2a02",
 "xrArr;": "\u27f9",
 "xrarr;": "\u27f6",
 "xscr;": "\U0001d4cd",
 "xsqcup;": "\u2a06",
 "xuplus;": "\u2a04",
 "xutri;": "\u25b3",
 "xvee;": "\u22c1",
 "xwedge;": "\u22c0",
 "yacute": "\xfd",
 "yacute;": "\xfd",
 "yacy;": "\u044f",
 "ycirc;": "\u0177",
 "ycy;": "\u044b",
 "yen": "\xa5",
 "yen;": "\xa5",
 "yfr;": "\U0001d536",
 "yicy;": "\u0457",
 "yopf;": "\U0001d56a",
 "yscr;": "\U0001d4ce",
 "yucy;": "\u044e",
 "yuml": "\xff",
 "yuml;": "\xff",
 "zacute;": "\u017a",
 "zcaron;": "\u017e",
 "zcy;": "\u0437",
 "zdot;": "\u017c",
 "zeetrf;": "\u2128",
 "zeta;": "\u03b6",
 "zfr;": "\U0001d537",
 "zhcy;": "\u0436",
 "zigrarr;": "\u21dd",
 "zopf;": "\U0001d56b",
 "zscr;": "\U0001d4cf",
 "zwj;": "\u200d",
 "zwnj;": "\u200c",
 }
 
 replacementCharacters = {
 0x0: "\uFFFD",
 0x0d: "\u000D",
 0x80: "\u20AC",
 0x81: "\u0081",
 0x82: "\u201A",
 0x83: "\u0192",
 0x84: "\u201E",
 0x85: "\u2026",
 0x86: "\u2020",
 0x87: "\u2021",
 0x88: "\u02C6",
 0x89: "\u2030",
 0x8A: "\u0160",
 0x8B: "\u2039",
 0x8C: "\u0152",
 0x8D: "\u008D",
 0x8E: "\u017D",
 0x8F: "\u008F",
 0x90: "\u0090",
 0x91: "\u2018",
 0x92: "\u2019",
 0x93: "\u201C",
 0x94: "\u201D",
 0x95: "\u2022",
 0x96: "\u2013",
 0x97: "\u2014",
 0x98: "\u02DC",
 0x99: "\u2122",
 0x9A: "\u0161",
 0x9B: "\u203A",
 0x9C: "\u0153",
 0x9D: "\u009D",
 0x9E: "\u017E",
 0x9F: "\u0178",
 }
 
 tokenTypes = {
 "Doctype": 0,
 "Characters": 1,
 "SpaceCharacters": 2,
 "StartTag": 3,
 "EndTag": 4,
 "EmptyTag": 5,
 "Comment": 6,
 "ParseError": 7
 }
 
 tagTokenTypes = frozenset([tokenTypes["StartTag"], tokenTypes["EndTag"],
 tokenTypes["EmptyTag"]])
 
 
 prefixes = dict([(v, k) for k, v in namespaces.items()])
 prefixes["http://www.w3.org/1998/Math/MathML"] = "math"
 
 
 class DataLossWarning(UserWarning):
 pass
 
 
 class ReparseException(Exception):
 pass
 
 |