{-# LANGUAGE OverloadedStrings #-}
-- This code for lookupEntity is modified from Text.HTML.TagSoup.Entity
-- (C) 2006--2018 Neil Mitchell, released under the BSD-3 license

module Commonmark.Entity
  ( lookupEntity
  , charEntity
  , numEntity
  , unEntity
  )
where

import Data.Functor.Identity (Identity)
import qualified Data.Map.Strict as Map
import Commonmark.TokParsers
import Commonmark.Tokens
import Text.Parsec
import qualified Data.Text as T
import Data.Text (Text)
import qualified Data.Text.Read as TR
import Control.Monad (guard, mzero)
import Unicode.Char (chr, isDigit, isHexDigit)
import Data.Maybe (isJust)

-- | Lookup an entity, using 'lookupNumericEntity' if it starts with
--   @#@ and 'lookupNamedEntity' otherwise
lookupEntity :: Text -> Maybe Text
lookupEntity :: Text -> Maybe Text
lookupEntity Text
t =
  case Text -> Maybe (Char, Text)
T.uncons Text
t of
    Just (Char
'#', Text
t') -> Text -> Maybe Text
lookupNumericEntity Text
t'
    Maybe (Char, Text)
_              -> Text -> Maybe Text
lookupNamedEntity Text
t


-- | Lookup a numeric entity, the leading @\'#\'@ must have already been removed.
--
-- > lookupNumericEntity "65" == Just "A"
-- > lookupNumericEntity "x41" == Just "A"
-- > lookupNumericEntity "x4E" === Just "N"
-- > lookupNumericEntity "x4e" === Just "N"
-- > lookupNumericEntity "X4e" === Just "N"
-- > lookupNumericEntity "Haskell" == Nothing
-- > lookupNumericEntity "" == Nothing
-- > lookupNumericEntity "89439085908539082" == Nothing
lookupNumericEntity :: Text -> Maybe Text
lookupNumericEntity :: Text -> Maybe Text
lookupNumericEntity = Text -> Maybe Text
f
        -- entity = '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';'
    where
        f :: Text -> Maybe Text
f Text
t = case Text -> Maybe (Char, Text)
T.uncons Text
t of
                Just (Char
'x', Text
t') -> Reader Integer -> Text -> Maybe Text
g Reader Integer
forall a. Integral a => Reader a
TR.hexadecimal Text
t'
                Just (Char
'X', Text
t') -> Reader Integer -> Text -> Maybe Text
g Reader Integer
forall a. Integral a => Reader a
TR.hexadecimal Text
t'
                Maybe (Char, Text)
_              -> Reader Integer -> Text -> Maybe Text
g Reader Integer
forall a. Integral a => Reader a
TR.decimal     Text
t

        g :: TR.Reader Integer -> Text -> Maybe Text
        g :: Reader Integer -> Text -> Maybe Text
g Reader Integer
reader Text
t =
            case Reader Integer
reader Text
t of
              Right (Integer
x,Text
t')
                | Text -> Bool
T.null Text
t' Bool -> Bool -> Bool
|| Text
t' Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
";" ->
                  if Integer
x Integer -> Integer -> Bool
forall a. Ord a => a -> a -> Bool
< Integer
1 Bool -> Bool -> Bool
|| Integer
x Integer -> Integer -> Bool
forall a. Ord a => a -> a -> Bool
> Integer
0x10FFFF
                     then Text -> Maybe Text
forall a. a -> Maybe a
Just Text
"\xFFFD" -- illegal code point
                     else Text -> Maybe Text
forall a. a -> Maybe a
Just (Text -> Maybe Text) -> Text -> Maybe Text
forall a b. (a -> b) -> a -> b
$ Char -> Text
T.singleton (Char -> Text) -> Char -> Text
forall a b. (a -> b) -> a -> b
$ Int -> Char
chr (Int -> Char) -> Int -> Char
forall a b. (a -> b) -> a -> b
$ Integer -> Int
forall a. Num a => Integer -> a
fromInteger Integer
x
              Either String (Integer, Text)
_  -> Maybe Text
forall a. Maybe a
Nothing


-- | Lookup a named entity, using 'htmlEntities'
--
-- > lookupNamedEntity "amp" == Just "&"
-- > lookupNamedEntity "haskell" == Nothing
lookupNamedEntity :: Text -> Maybe Text
lookupNamedEntity :: Text -> Maybe Text
lookupNamedEntity Text
x = Text -> Map Text Text -> Maybe Text
forall k a. Ord k => k -> Map k a -> Maybe a
Map.lookup Text
x Map Text Text
htmlEntityMap

htmlEntityMap :: Map.Map Text Text
htmlEntityMap :: Map Text Text
htmlEntityMap = [(Text, Text)] -> Map Text Text
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList [(Text, Text)]
htmlEntities

-- | A table mapping HTML entity names to resolved strings. Most resolved strings are a single character long,
--   but some (e.g. @"ngeqq"@) are two characters long. The list is taken from
--   <http://www.w3.org/TR/html5/syntax.html#named-character-references>.
htmlEntities :: [(Text, Text)]
htmlEntities :: [(Text, Text)]
htmlEntities =
    [(Text
"Aacute", Text
"\x00C1")
    ,(Text
"aacute", Text
"\x00E1")
    ,(Text
"Aacute;", Text
"\x00C1")
    ,(Text
"aacute;", Text
"\x00E1")
    ,(Text
"Abreve;", Text
"\x0102")
    ,(Text
"abreve;", Text
"\x0103")
    ,(Text
"ac;", Text
"\x223E")
    ,(Text
"acd;", Text
"\x223F")
    ,(Text
"acE;", Text
"\x223E\x0333")
    ,(Text
"Acirc", Text
"\x00C2")
    ,(Text
"acirc", Text
"\x00E2")
    ,(Text
"Acirc;", Text
"\x00C2")
    ,(Text
"acirc;", Text
"\x00E2")
    ,(Text
"acute", Text
"\x00B4")
    ,(Text
"acute;", Text
"\x00B4")
    ,(Text
"Acy;", Text
"\x0410")
    ,(Text
"acy;", Text
"\x0430")
    ,(Text
"AElig", Text
"\x00C6")
    ,(Text
"aelig", Text
"\x00E6")
    ,(Text
"AElig;", Text
"\x00C6")
    ,(Text
"aelig;", Text
"\x00E6")
    ,(Text
"af;", Text
"\x2061")
    ,(Text
"Afr;", Text
"\x1D504")
    ,(Text
"afr;", Text
"\x1D51E")
    ,(Text
"Agrave", Text
"\x00C0")
    ,(Text
"agrave", Text
"\x00E0")
    ,(Text
"Agrave;", Text
"\x00C0")
    ,(Text
"agrave;", Text
"\x00E0")
    ,(Text
"alefsym;", Text
"\x2135")
    ,(Text
"aleph;", Text
"\x2135")
    ,(Text
"Alpha;", Text
"\x0391")
    ,(Text
"alpha;", Text
"\x03B1")
    ,(Text
"Amacr;", Text
"\x0100")
    ,(Text
"amacr;", Text
"\x0101")
    ,(Text
"amalg;", Text
"\x2A3F")
    ,(Text
"AMP", Text
"\x0026")
    ,(Text
"amp", Text
"\x0026")
    ,(Text
"AMP;", Text
"\x0026")
    ,(Text
"amp;", Text
"\x0026")
    ,(Text
"and;", Text
"\x2227")
    ,(Text
"And;", Text
"\x2A53")
    ,(Text
"andand;", Text
"\x2A55")
    ,(Text
"andd;", Text
"\x2A5C")
    ,(Text
"andslope;", Text
"\x2A58")
    ,(Text
"andv;", Text
"\x2A5A")
    ,(Text
"ang;", Text
"\x2220")
    ,(Text
"ange;", Text
"\x29A4")
    ,(Text
"angle;", Text
"\x2220")
    ,(Text
"angmsd;", Text
"\x2221")
    ,(Text
"angmsdaa;", Text
"\x29A8")
    ,(Text
"angmsdab;", Text
"\x29A9")
    ,(Text
"angmsdac;", Text
"\x29AA")
    ,(Text
"angmsdad;", Text
"\x29AB")
    ,(Text
"angmsdae;", Text
"\x29AC")
    ,(Text
"angmsdaf;", Text
"\x29AD")
    ,(Text
"angmsdag;", Text
"\x29AE")
    ,(Text
"angmsdah;", Text
"\x29AF")
    ,(Text
"angrt;", Text
"\x221F")
    ,(Text
"angrtvb;", Text
"\x22BE")
    ,(Text
"angrtvbd;", Text
"\x299D")
    ,(Text
"angsph;", Text
"\x2222")
    ,(Text
"angst;", Text
"\x00C5")
    ,(Text
"angzarr;", Text
"\x237C")
    ,(Text
"Aogon;", Text
"\x0104")
    ,(Text
"aogon;", Text
"\x0105")
    ,(Text
"Aopf;", Text
"\x1D538")
    ,(Text
"aopf;", Text
"\x1D552")
    ,(Text
"ap;", Text
"\x2248")
    ,(Text
"apacir;", Text
"\x2A6F")
    ,(Text
"ape;", Text
"\x224A")
    ,(Text
"apE;", Text
"\x2A70")
    ,(Text
"apid;", Text
"\x224B")
    ,(Text
"apos;", Text
"\x0027")
    ,(Text
"ApplyFunction;", Text
"\x2061")
    ,(Text
"approx;", Text
"\x2248")
    ,(Text
"approxeq;", Text
"\x224A")
    ,(Text
"Aring", Text
"\x00C5")
    ,(Text
"aring", Text
"\x00E5")
    ,(Text
"Aring;", Text
"\x00C5")
    ,(Text
"aring;", Text
"\x00E5")
    ,(Text
"Ascr;", Text
"\x1D49C")
    ,(Text
"ascr;", Text
"\x1D4B6")
    ,(Text
"Assign;", Text
"\x2254")
    ,(Text
"ast;", Text
"\x002A")
    ,(Text
"asymp;", Text
"\x2248")
    ,(Text
"asympeq;", Text
"\x224D")
    ,(Text
"Atilde", Text
"\x00C3")
    ,(Text
"atilde", Text
"\x00E3")
    ,(Text
"Atilde;", Text
"\x00C3")
    ,(Text
"atilde;", Text
"\x00E3")
    ,(Text
"Auml", Text
"\x00C4")
    ,(Text
"auml", Text
"\x00E4")
    ,(Text
"Auml;", Text
"\x00C4")
    ,(Text
"auml;", Text
"\x00E4")
    ,(Text
"awconint;", Text
"\x2233")
    ,(Text
"awint;", Text
"\x2A11")
    ,(Text
"backcong;", Text
"\x224C")
    ,(Text
"backepsilon;", Text
"\x03F6")
    ,(Text
"backprime;", Text
"\x2035")
    ,(Text
"backsim;", Text
"\x223D")
    ,(Text
"backsimeq;", Text
"\x22CD")
    ,(Text
"Backslash;", Text
"\x2216")
    ,(Text
"Barv;", Text
"\x2AE7")
    ,(Text
"barvee;", Text
"\x22BD")
    ,(Text
"barwed;", Text
"\x2305")
    ,(Text
"Barwed;", Text
"\x2306")
    ,(Text
"barwedge;", Text
"\x2305")
    ,(Text
"bbrk;", Text
"\x23B5")
    ,(Text
"bbrktbrk;", Text
"\x23B6")
    ,(Text
"bcong;", Text
"\x224C")
    ,(Text
"Bcy;", Text
"\x0411")
    ,(Text
"bcy;", Text
"\x0431")
    ,(Text
"bdquo;", Text
"\x201E")
    ,(Text
"becaus;", Text
"\x2235")
    ,(Text
"Because;", Text
"\x2235")
    ,(Text
"because;", Text
"\x2235")
    ,(Text
"bemptyv;", Text
"\x29B0")
    ,(Text
"bepsi;", Text
"\x03F6")
    ,(Text
"bernou;", Text
"\x212C")
    ,(Text
"Bernoullis;", Text
"\x212C")
    ,(Text
"Beta;", Text
"\x0392")
    ,(Text
"beta;", Text
"\x03B2")
    ,(Text
"beth;", Text
"\x2136")
    ,(Text
"between;", Text
"\x226C")
    ,(Text
"Bfr;", Text
"\x1D505")
    ,(Text
"bfr;", Text
"\x1D51F")
    ,(Text
"bigcap;", Text
"\x22C2")
    ,(Text
"bigcirc;", Text
"\x25EF")
    ,(Text
"bigcup;", Text
"\x22C3")
    ,(Text
"bigodot;", Text
"\x2A00")
    ,(Text
"bigoplus;", Text
"\x2A01")
    ,(Text
"bigotimes;", Text
"\x2A02")
    ,(Text
"bigsqcup;", Text
"\x2A06")
    ,(Text
"bigstar;", Text
"\x2605")
    ,(Text
"bigtriangledown;", Text
"\x25BD")
    ,(Text
"bigtriangleup;", Text
"\x25B3")
    ,(Text
"biguplus;", Text
"\x2A04")
    ,(Text
"bigvee;", Text
"\x22C1")
    ,(Text
"bigwedge;", Text
"\x22C0")
    ,(Text
"bkarow;", Text
"\x290D")
    ,(Text
"blacklozenge;", Text
"\x29EB")
    ,(Text
"blacksquare;", Text
"\x25AA")
    ,(Text
"blacktriangle;", Text
"\x25B4")
    ,(Text
"blacktriangledown;", Text
"\x25BE")
    ,(Text
"blacktriangleleft;", Text
"\x25C2")
    ,(Text
"blacktriangleright;", Text
"\x25B8")
    ,(Text
"blank;", Text
"\x2423")
    ,(Text
"blk12;", Text
"\x2592")
    ,(Text
"blk14;", Text
"\x2591")
    ,(Text
"blk34;", Text
"\x2593")
    ,(Text
"block;", Text
"\x2588")
    ,(Text
"bne;", Text
"\x003D\x20E5")
    ,(Text
"bnequiv;", Text
"\x2261\x20E5")
    ,(Text
"bnot;", Text
"\x2310")
    ,(Text
"bNot;", Text
"\x2AED")
    ,(Text
"Bopf;", Text
"\x1D539")
    ,(Text
"bopf;", Text
"\x1D553")
    ,(Text
"bot;", Text
"\x22A5")
    ,(Text
"bottom;", Text
"\x22A5")
    ,(Text
"bowtie;", Text
"\x22C8")
    ,(Text
"boxbox;", Text
"\x29C9")
    ,(Text
"boxdl;", Text
"\x2510")
    ,(Text
"boxdL;", Text
"\x2555")
    ,(Text
"boxDl;", Text
"\x2556")
    ,(Text
"boxDL;", Text
"\x2557")
    ,(Text
"boxdr;", Text
"\x250C")
    ,(Text
"boxdR;", Text
"\x2552")
    ,(Text
"boxDr;", Text
"\x2553")
    ,(Text
"boxDR;", Text
"\x2554")
    ,(Text
"boxh;", Text
"\x2500")
    ,(Text
"boxH;", Text
"\x2550")
    ,(Text
"boxhd;", Text
"\x252C")
    ,(Text
"boxHd;", Text
"\x2564")
    ,(Text
"boxhD;", Text
"\x2565")
    ,(Text
"boxHD;", Text
"\x2566")
    ,(Text
"boxhu;", Text
"\x2534")
    ,(Text
"boxHu;", Text
"\x2567")
    ,(Text
"boxhU;", Text
"\x2568")
    ,(Text
"boxHU;", Text
"\x2569")
    ,(Text
"boxminus;", Text
"\x229F")
    ,(Text
"boxplus;", Text
"\x229E")
    ,(Text
"boxtimes;", Text
"\x22A0")
    ,(Text
"boxul;", Text
"\x2518")
    ,(Text
"boxuL;", Text
"\x255B")
    ,(Text
"boxUl;", Text
"\x255C")
    ,(Text
"boxUL;", Text
"\x255D")
    ,(Text
"boxur;", Text
"\x2514")
    ,(Text
"boxuR;", Text
"\x2558")
    ,(Text
"boxUr;", Text
"\x2559")
    ,(Text
"boxUR;", Text
"\x255A")
    ,(Text
"boxv;", Text
"\x2502")
    ,(Text
"boxV;", Text
"\x2551")
    ,(Text
"boxvh;", Text
"\x253C")
    ,(Text
"boxvH;", Text
"\x256A")
    ,(Text
"boxVh;", Text
"\x256B")
    ,(Text
"boxVH;", Text
"\x256C")
    ,(Text
"boxvl;", Text
"\x2524")
    ,(Text
"boxvL;", Text
"\x2561")
    ,(Text
"boxVl;", Text
"\x2562")
    ,(Text
"boxVL;", Text
"\x2563")
    ,(Text
"boxvr;", Text
"\x251C")
    ,(Text
"boxvR;", Text
"\x255E")
    ,(Text
"boxVr;", Text
"\x255F")
    ,(Text
"boxVR;", Text
"\x2560")
    ,(Text
"bprime;", Text
"\x2035")
    ,(Text
"Breve;", Text
"\x02D8")
    ,(Text
"breve;", Text
"\x02D8")
    ,(Text
"brvbar", Text
"\x00A6")
    ,(Text
"brvbar;", Text
"\x00A6")
    ,(Text
"Bscr;", Text
"\x212C")
    ,(Text
"bscr;", Text
"\x1D4B7")
    ,(Text
"bsemi;", Text
"\x204F")
    ,(Text
"bsim;", Text
"\x223D")
    ,(Text
"bsime;", Text
"\x22CD")
    ,(Text
"bsol;", Text
"\x005C")
    ,(Text
"bsolb;", Text
"\x29C5")
    ,(Text
"bsolhsub;", Text
"\x27C8")
    ,(Text
"bull;", Text
"\x2022")
    ,(Text
"bullet;", Text
"\x2022")
    ,(Text
"bump;", Text
"\x224E")
    ,(Text
"bumpe;", Text
"\x224F")
    ,(Text
"bumpE;", Text
"\x2AAE")
    ,(Text
"Bumpeq;", Text
"\x224E")
    ,(Text
"bumpeq;", Text
"\x224F")
    ,(Text
"Cacute;", Text
"\x0106")
    ,(Text
"cacute;", Text
"\x0107")
    ,(Text
"cap;", Text
"\x2229")
    ,(Text
"Cap;", Text
"\x22D2")
    ,(Text
"capand;", Text
"\x2A44")
    ,(Text
"capbrcup;", Text
"\x2A49")
    ,(Text
"capcap;", Text
"\x2A4B")
    ,(Text
"capcup;", Text
"\x2A47")
    ,(Text
"capdot;", Text
"\x2A40")
    ,(Text
"CapitalDifferentialD;", Text
"\x2145")
    ,(Text
"caps;", Text
"\x2229\xFE00")
    ,(Text
"caret;", Text
"\x2041")
    ,(Text
"caron;", Text
"\x02C7")
    ,(Text
"Cayleys;", Text
"\x212D")
    ,(Text
"ccaps;", Text
"\x2A4D")
    ,(Text
"Ccaron;", Text
"\x010C")
    ,(Text
"ccaron;", Text
"\x010D")
    ,(Text
"Ccedil", Text
"\x00C7")
    ,(Text
"ccedil", Text
"\x00E7")
    ,(Text
"Ccedil;", Text
"\x00C7")
    ,(Text
"ccedil;", Text
"\x00E7")
    ,(Text
"Ccirc;", Text
"\x0108")
    ,(Text
"ccirc;", Text
"\x0109")
    ,(Text
"Cconint;", Text
"\x2230")
    ,(Text
"ccups;", Text
"\x2A4C")
    ,(Text
"ccupssm;", Text
"\x2A50")
    ,(Text
"Cdot;", Text
"\x010A")
    ,(Text
"cdot;", Text
"\x010B")
    ,(Text
"cedil", Text
"\x00B8")
    ,(Text
"cedil;", Text
"\x00B8")
    ,(Text
"Cedilla;", Text
"\x00B8")
    ,(Text
"cemptyv;", Text
"\x29B2")
    ,(Text
"cent", Text
"\x00A2")
    ,(Text
"cent;", Text
"\x00A2")
    ,(Text
"CenterDot;", Text
"\x00B7")
    ,(Text
"centerdot;", Text
"\x00B7")
    ,(Text
"Cfr;", Text
"\x212D")
    ,(Text
"cfr;", Text
"\x1D520")
    ,(Text
"CHcy;", Text
"\x0427")
    ,(Text
"chcy;", Text
"\x0447")
    ,(Text
"check;", Text
"\x2713")
    ,(Text
"checkmark;", Text
"\x2713")
    ,(Text
"Chi;", Text
"\x03A7")
    ,(Text
"chi;", Text
"\x03C7")
    ,(Text
"cir;", Text
"\x25CB")
    ,(Text
"circ;", Text
"\x02C6")
    ,(Text
"circeq;", Text
"\x2257")
    ,(Text
"circlearrowleft;", Text
"\x21BA")
    ,(Text
"circlearrowright;", Text
"\x21BB")
    ,(Text
"circledast;", Text
"\x229B")
    ,(Text
"circledcirc;", Text
"\x229A")
    ,(Text
"circleddash;", Text
"\x229D")
    ,(Text
"CircleDot;", Text
"\x2299")
    ,(Text
"circledR;", Text
"\x00AE")
    ,(Text
"circledS;", Text
"\x24C8")
    ,(Text
"CircleMinus;", Text
"\x2296")
    ,(Text
"CirclePlus;", Text
"\x2295")
    ,(Text
"CircleTimes;", Text
"\x2297")
    ,(Text
"cire;", Text
"\x2257")
    ,(Text
"cirE;", Text
"\x29C3")
    ,(Text
"cirfnint;", Text
"\x2A10")
    ,(Text
"cirmid;", Text
"\x2AEF")
    ,(Text
"cirscir;", Text
"\x29C2")
    ,(Text
"ClockwiseContourIntegral;", Text
"\x2232")
    ,(Text
"CloseCurlyDoubleQuote;", Text
"\x201D")
    ,(Text
"CloseCurlyQuote;", Text
"\x2019")
    ,(Text
"clubs;", Text
"\x2663")
    ,(Text
"clubsuit;", Text
"\x2663")
    ,(Text
"colon;", Text
"\x003A")
    ,(Text
"Colon;", Text
"\x2237")
    ,(Text
"colone;", Text
"\x2254")
    ,(Text
"Colone;", Text
"\x2A74")
    ,(Text
"coloneq;", Text
"\x2254")
    ,(Text
"comma;", Text
"\x002C")
    ,(Text
"commat;", Text
"\x0040")
    ,(Text
"comp;", Text
"\x2201")
    ,(Text
"compfn;", Text
"\x2218")
    ,(Text
"complement;", Text
"\x2201")
    ,(Text
"complexes;", Text
"\x2102")
    ,(Text
"cong;", Text
"\x2245")
    ,(Text
"congdot;", Text
"\x2A6D")
    ,(Text
"Congruent;", Text
"\x2261")
    ,(Text
"conint;", Text
"\x222E")
    ,(Text
"Conint;", Text
"\x222F")
    ,(Text
"ContourIntegral;", Text
"\x222E")
    ,(Text
"Copf;", Text
"\x2102")
    ,(Text
"copf;", Text
"\x1D554")
    ,(Text
"coprod;", Text
"\x2210")
    ,(Text
"Coproduct;", Text
"\x2210")
    ,(Text
"COPY", Text
"\x00A9")
    ,(Text
"copy", Text
"\x00A9")
    ,(Text
"COPY;", Text
"\x00A9")
    ,(Text
"copy;", Text
"\x00A9")
    ,(Text
"copysr;", Text
"\x2117")
    ,(Text
"CounterClockwiseContourIntegral;", Text
"\x2233")
    ,(Text
"crarr;", Text
"\x21B5")
    ,(Text
"cross;", Text
"\x2717")
    ,(Text
"Cross;", Text
"\x2A2F")
    ,(Text
"Cscr;", Text
"\x1D49E")
    ,(Text
"cscr;", Text
"\x1D4B8")
    ,(Text
"csub;", Text
"\x2ACF")
    ,(Text
"csube;", Text
"\x2AD1")
    ,(Text
"csup;", Text
"\x2AD0")
    ,(Text
"csupe;", Text
"\x2AD2")
    ,(Text
"ctdot;", Text
"\x22EF")
    ,(Text
"cudarrl;", Text
"\x2938")
    ,(Text
"cudarrr;", Text
"\x2935")
    ,(Text
"cuepr;", Text
"\x22DE")
    ,(Text
"cuesc;", Text
"\x22DF")
    ,(Text
"cularr;", Text
"\x21B6")
    ,(Text
"cularrp;", Text
"\x293D")
    ,(Text
"cup;", Text
"\x222A")
    ,(Text
"Cup;", Text
"\x22D3")
    ,(Text
"cupbrcap;", Text
"\x2A48")
    ,(Text
"CupCap;", Text
"\x224D")
    ,(Text
"cupcap;", Text
"\x2A46")
    ,(Text
"cupcup;", Text
"\x2A4A")
    ,(Text
"cupdot;", Text
"\x228D")
    ,(Text
"cupor;", Text
"\x2A45")
    ,(Text
"cups;", Text
"\x222A\xFE00")
    ,(Text
"curarr;", Text
"\x21B7")
    ,(Text
"curarrm;", Text
"\x293C")
    ,(Text
"curlyeqprec;", Text
"\x22DE")
    ,(Text
"curlyeqsucc;", Text
"\x22DF")
    ,(Text
"curlyvee;", Text
"\x22CE")
    ,(Text
"curlywedge;", Text
"\x22CF")
    ,(Text
"curren", Text
"\x00A4")
    ,(Text
"curren;", Text
"\x00A4")
    ,(Text
"curvearrowleft;", Text
"\x21B6")
    ,(Text
"curvearrowright;", Text
"\x21B7")
    ,(Text
"cuvee;", Text
"\x22CE")
    ,(Text
"cuwed;", Text
"\x22CF")
    ,(Text
"cwconint;", Text
"\x2232")
    ,(Text
"cwint;", Text
"\x2231")
    ,(Text
"cylcty;", Text
"\x232D")
    ,(Text
"dagger;", Text
"\x2020")
    ,(Text
"Dagger;", Text
"\x2021")
    ,(Text
"daleth;", Text
"\x2138")
    ,(Text
"darr;", Text
"\x2193")
    ,(Text
"Darr;", Text
"\x21A1")
    ,(Text
"dArr;", Text
"\x21D3")
    ,(Text
"dash;", Text
"\x2010")
    ,(Text
"dashv;", Text
"\x22A3")
    ,(Text
"Dashv;", Text
"\x2AE4")
    ,(Text
"dbkarow;", Text
"\x290F")
    ,(Text
"dblac;", Text
"\x02DD")
    ,(Text
"Dcaron;", Text
"\x010E")
    ,(Text
"dcaron;", Text
"\x010F")
    ,(Text
"Dcy;", Text
"\x0414")
    ,(Text
"dcy;", Text
"\x0434")
    ,(Text
"DD;", Text
"\x2145")
    ,(Text
"dd;", Text
"\x2146")
    ,(Text
"ddagger;", Text
"\x2021")
    ,(Text
"ddarr;", Text
"\x21CA")
    ,(Text
"DDotrahd;", Text
"\x2911")
    ,(Text
"ddotseq;", Text
"\x2A77")
    ,(Text
"deg", Text
"\x00B0")
    ,(Text
"deg;", Text
"\x00B0")
    ,(Text
"Del;", Text
"\x2207")
    ,(Text
"Delta;", Text
"\x0394")
    ,(Text
"delta;", Text
"\x03B4")
    ,(Text
"demptyv;", Text
"\x29B1")
    ,(Text
"dfisht;", Text
"\x297F")
    ,(Text
"Dfr;", Text
"\x1D507")
    ,(Text
"dfr;", Text
"\x1D521")
    ,(Text
"dHar;", Text
"\x2965")
    ,(Text
"dharl;", Text
"\x21C3")
    ,(Text
"dharr;", Text
"\x21C2")
    ,(Text
"DiacriticalAcute;", Text
"\x00B4")
    ,(Text
"DiacriticalDot;", Text
"\x02D9")
    ,(Text
"DiacriticalDoubleAcute;", Text
"\x02DD")
    ,(Text
"DiacriticalGrave;", Text
"\x0060")
    ,(Text
"DiacriticalTilde;", Text
"\x02DC")
    ,(Text
"diam;", Text
"\x22C4")
    ,(Text
"Diamond;", Text
"\x22C4")
    ,(Text
"diamond;", Text
"\x22C4")
    ,(Text
"diamondsuit;", Text
"\x2666")
    ,(Text
"diams;", Text
"\x2666")
    ,(Text
"die;", Text
"\x00A8")
    ,(Text
"DifferentialD;", Text
"\x2146")
    ,(Text
"digamma;", Text
"\x03DD")
    ,(Text
"disin;", Text
"\x22F2")
    ,(Text
"div;", Text
"\x00F7")
    ,(Text
"divide", Text
"\x00F7")
    ,(Text
"divide;", Text
"\x00F7")
    ,(Text
"divideontimes;", Text
"\x22C7")
    ,(Text
"divonx;", Text
"\x22C7")
    ,(Text
"DJcy;", Text
"\x0402")
    ,(Text
"djcy;", Text
"\x0452")
    ,(Text
"dlcorn;", Text
"\x231E")
    ,(Text
"dlcrop;", Text
"\x230D")
    ,(Text
"dollar;", Text
"\x0024")
    ,(Text
"Dopf;", Text
"\x1D53B")
    ,(Text
"dopf;", Text
"\x1D555")
    ,(Text
"Dot;", Text
"\x00A8")
    ,(Text
"dot;", Text
"\x02D9")
    ,(Text
"DotDot;", Text
"\x20DC")
    ,(Text
"doteq;", Text
"\x2250")
    ,(Text
"doteqdot;", Text
"\x2251")
    ,(Text
"DotEqual;", Text
"\x2250")
    ,(Text
"dotminus;", Text
"\x2238")
    ,(Text
"dotplus;", Text
"\x2214")
    ,(Text
"dotsquare;", Text
"\x22A1")
    ,(Text
"doublebarwedge;", Text
"\x2306")
    ,(Text
"DoubleContourIntegral;", Text
"\x222F")
    ,(Text
"DoubleDot;", Text
"\x00A8")
    ,(Text
"DoubleDownArrow;", Text
"\x21D3")
    ,(Text
"DoubleLeftArrow;", Text
"\x21D0")
    ,(Text
"DoubleLeftRightArrow;", Text
"\x21D4")
    ,(Text
"DoubleLeftTee;", Text
"\x2AE4")
    ,(Text
"DoubleLongLeftArrow;", Text
"\x27F8")
    ,(Text
"DoubleLongLeftRightArrow;", Text
"\x27FA")
    ,(Text
"DoubleLongRightArrow;", Text
"\x27F9")
    ,(Text
"DoubleRightArrow;", Text
"\x21D2")
    ,(Text
"DoubleRightTee;", Text
"\x22A8")
    ,(Text
"DoubleUpArrow;", Text
"\x21D1")
    ,(Text
"DoubleUpDownArrow;", Text
"\x21D5")
    ,(Text
"DoubleVerticalBar;", Text
"\x2225")
    ,(Text
"DownArrow;", Text
"\x2193")
    ,(Text
"downarrow;", Text
"\x2193")
    ,(Text
"Downarrow;", Text
"\x21D3")
    ,(Text
"DownArrowBar;", Text
"\x2913")
    ,(Text
"DownArrowUpArrow;", Text
"\x21F5")
    ,(Text
"DownBreve;", Text
"\x0311")
    ,(Text
"downdownarrows;", Text
"\x21CA")
    ,(Text
"downharpoonleft;", Text
"\x21C3")
    ,(Text
"downharpoonright;", Text
"\x21C2")
    ,(Text
"DownLeftRightVector;", Text
"\x2950")
    ,(Text
"DownLeftTeeVector;", Text
"\x295E")
    ,(Text
"DownLeftVector;", Text
"\x21BD")
    ,(Text
"DownLeftVectorBar;", Text
"\x2956")
    ,(Text
"DownRightTeeVector;", Text
"\x295F")
    ,(Text
"DownRightVector;", Text
"\x21C1")
    ,(Text
"DownRightVectorBar;", Text
"\x2957")
    ,(Text
"DownTee;", Text
"\x22A4")
    ,(Text
"DownTeeArrow;", Text
"\x21A7")
    ,(Text
"drbkarow;", Text
"\x2910")
    ,(Text
"drcorn;", Text
"\x231F")
    ,(Text
"drcrop;", Text
"\x230C")
    ,(Text
"Dscr;", Text
"\x1D49F")
    ,(Text
"dscr;", Text
"\x1D4B9")
    ,(Text
"DScy;", Text
"\x0405")
    ,(Text
"dscy;", Text
"\x0455")
    ,(Text
"dsol;", Text
"\x29F6")
    ,(Text
"Dstrok;", Text
"\x0110")
    ,(Text
"dstrok;", Text
"\x0111")
    ,(Text
"dtdot;", Text
"\x22F1")
    ,(Text
"dtri;", Text
"\x25BF")
    ,(Text
"dtrif;", Text
"\x25BE")
    ,(Text
"duarr;", Text
"\x21F5")
    ,(Text
"duhar;", Text
"\x296F")
    ,(Text
"dwangle;", Text
"\x29A6")
    ,(Text
"DZcy;", Text
"\x040F")
    ,(Text
"dzcy;", Text
"\x045F")
    ,(Text
"dzigrarr;", Text
"\x27FF")
    ,(Text
"Eacute", Text
"\x00C9")
    ,(Text
"eacute", Text
"\x00E9")
    ,(Text
"Eacute;", Text
"\x00C9")
    ,(Text
"eacute;", Text
"\x00E9")
    ,(Text
"easter;", Text
"\x2A6E")
    ,(Text
"Ecaron;", Text
"\x011A")
    ,(Text
"ecaron;", Text
"\x011B")
    ,(Text
"ecir;", Text
"\x2256")
    ,(Text
"Ecirc", Text
"\x00CA")
    ,(Text
"ecirc", Text
"\x00EA")
    ,(Text
"Ecirc;", Text
"\x00CA")
    ,(Text
"ecirc;", Text
"\x00EA")
    ,(Text
"ecolon;", Text
"\x2255")
    ,(Text
"Ecy;", Text
"\x042D")
    ,(Text
"ecy;", Text
"\x044D")
    ,(Text
"eDDot;", Text
"\x2A77")
    ,(Text
"Edot;", Text
"\x0116")
    ,(Text
"edot;", Text
"\x0117")
    ,(Text
"eDot;", Text
"\x2251")
    ,(Text
"ee;", Text
"\x2147")
    ,(Text
"efDot;", Text
"\x2252")
    ,(Text
"Efr;", Text
"\x1D508")
    ,(Text
"efr;", Text
"\x1D522")
    ,(Text
"eg;", Text
"\x2A9A")
    ,(Text
"Egrave", Text
"\x00C8")
    ,(Text
"egrave", Text
"\x00E8")
    ,(Text
"Egrave;", Text
"\x00C8")
    ,(Text
"egrave;", Text
"\x00E8")
    ,(Text
"egs;", Text
"\x2A96")
    ,(Text
"egsdot;", Text
"\x2A98")
    ,(Text
"el;", Text
"\x2A99")
    ,(Text
"Element;", Text
"\x2208")
    ,(Text
"elinters;", Text
"\x23E7")
    ,(Text
"ell;", Text
"\x2113")
    ,(Text
"els;", Text
"\x2A95")
    ,(Text
"elsdot;", Text
"\x2A97")
    ,(Text
"Emacr;", Text
"\x0112")
    ,(Text
"emacr;", Text
"\x0113")
    ,(Text
"empty;", Text
"\x2205")
    ,(Text
"emptyset;", Text
"\x2205")
    ,(Text
"EmptySmallSquare;", Text
"\x25FB")
    ,(Text
"emptyv;", Text
"\x2205")
    ,(Text
"EmptyVerySmallSquare;", Text
"\x25AB")
    ,(Text
"emsp13;", Text
"\x2004")
    ,(Text
"emsp14;", Text
"\x2005")
    ,(Text
"emsp;", Text
"\x2003")
    ,(Text
"ENG;", Text
"\x014A")
    ,(Text
"eng;", Text
"\x014B")
    ,(Text
"ensp;", Text
"\x2002")
    ,(Text
"Eogon;", Text
"\x0118")
    ,(Text
"eogon;", Text
"\x0119")
    ,(Text
"Eopf;", Text
"\x1D53C")
    ,(Text
"eopf;", Text
"\x1D556")
    ,(Text
"epar;", Text
"\x22D5")
    ,(Text
"eparsl;", Text
"\x29E3")
    ,(Text
"eplus;", Text
"\x2A71")
    ,(Text
"epsi;", Text
"\x03B5")
    ,(Text
"Epsilon;", Text
"\x0395")
    ,(Text
"epsilon;", Text
"\x03B5")
    ,(Text
"epsiv;", Text
"\x03F5")
    ,(Text
"eqcirc;", Text
"\x2256")
    ,(Text
"eqcolon;", Text
"\x2255")
    ,(Text
"eqsim;", Text
"\x2242")
    ,(Text
"eqslantgtr;", Text
"\x2A96")
    ,(Text
"eqslantless;", Text
"\x2A95")
    ,(Text
"Equal;", Text
"\x2A75")
    ,(Text
"equals;", Text
"\x003D")
    ,(Text
"EqualTilde;", Text
"\x2242")
    ,(Text
"equest;", Text
"\x225F")
    ,(Text
"Equilibrium;", Text
"\x21CC")
    ,(Text
"equiv;", Text
"\x2261")
    ,(Text
"equivDD;", Text
"\x2A78")
    ,(Text
"eqvparsl;", Text
"\x29E5")
    ,(Text
"erarr;", Text
"\x2971")
    ,(Text
"erDot;", Text
"\x2253")
    ,(Text
"escr;", Text
"\x212F")
    ,(Text
"Escr;", Text
"\x2130")
    ,(Text
"esdot;", Text
"\x2250")
    ,(Text
"esim;", Text
"\x2242")
    ,(Text
"Esim;", Text
"\x2A73")
    ,(Text
"Eta;", Text
"\x0397")
    ,(Text
"eta;", Text
"\x03B7")
    ,(Text
"ETH", Text
"\x00D0")
    ,(Text
"eth", Text
"\x00F0")
    ,(Text
"ETH;", Text
"\x00D0")
    ,(Text
"eth;", Text
"\x00F0")
    ,(Text
"Euml", Text
"\x00CB")
    ,(Text
"euml", Text
"\x00EB")
    ,(Text
"Euml;", Text
"\x00CB")
    ,(Text
"euml;", Text
"\x00EB")
    ,(Text
"euro;", Text
"\x20AC")
    ,(Text
"excl;", Text
"\x0021")
    ,(Text
"exist;", Text
"\x2203")
    ,(Text
"Exists;", Text
"\x2203")
    ,(Text
"expectation;", Text
"\x2130")
    ,(Text
"ExponentialE;", Text
"\x2147")
    ,(Text
"exponentiale;", Text
"\x2147")
    ,(Text
"fallingdotseq;", Text
"\x2252")
    ,(Text
"Fcy;", Text
"\x0424")
    ,(Text
"fcy;", Text
"\x0444")
    ,(Text
"female;", Text
"\x2640")
    ,(Text
"ffilig;", Text
"\xFB03")
    ,(Text
"fflig;", Text
"\xFB00")
    ,(Text
"ffllig;", Text
"\xFB04")
    ,(Text
"Ffr;", Text
"\x1D509")
    ,(Text
"ffr;", Text
"\x1D523")
    ,(Text
"filig;", Text
"\xFB01")
    ,(Text
"FilledSmallSquare;", Text
"\x25FC")
    ,(Text
"FilledVerySmallSquare;", Text
"\x25AA")
    ,(Text
"fjlig;", Text
"\x0066\x006A")
    ,(Text
"flat;", Text
"\x266D")
    ,(Text
"fllig;", Text
"\xFB02")
    ,(Text
"fltns;", Text
"\x25B1")
    ,(Text
"fnof;", Text
"\x0192")
    ,(Text
"Fopf;", Text
"\x1D53D")
    ,(Text
"fopf;", Text
"\x1D557")
    ,(Text
"ForAll;", Text
"\x2200")
    ,(Text
"forall;", Text
"\x2200")
    ,(Text
"fork;", Text
"\x22D4")
    ,(Text
"forkv;", Text
"\x2AD9")
    ,(Text
"Fouriertrf;", Text
"\x2131")
    ,(Text
"fpartint;", Text
"\x2A0D")
    ,(Text
"frac12", Text
"\x00BD")
    ,(Text
"frac12;", Text
"\x00BD")
    ,(Text
"frac13;", Text
"\x2153")
    ,(Text
"frac14", Text
"\x00BC")
    ,(Text
"frac14;", Text
"\x00BC")
    ,(Text
"frac15;", Text
"\x2155")
    ,(Text
"frac16;", Text
"\x2159")
    ,(Text
"frac18;", Text
"\x215B")
    ,(Text
"frac23;", Text
"\x2154")
    ,(Text
"frac25;", Text
"\x2156")
    ,(Text
"frac34", Text
"\x00BE")
    ,(Text
"frac34;", Text
"\x00BE")
    ,(Text
"frac35;", Text
"\x2157")
    ,(Text
"frac38;", Text
"\x215C")
    ,(Text
"frac45;", Text
"\x2158")
    ,(Text
"frac56;", Text
"\x215A")
    ,(Text
"frac58;", Text
"\x215D")
    ,(Text
"frac78;", Text
"\x215E")
    ,(Text
"frasl;", Text
"\x2044")
    ,(Text
"frown;", Text
"\x2322")
    ,(Text
"Fscr;", Text
"\x2131")
    ,(Text
"fscr;", Text
"\x1D4BB")
    ,(Text
"gacute;", Text
"\x01F5")
    ,(Text
"Gamma;", Text
"\x0393")
    ,(Text
"gamma;", Text
"\x03B3")
    ,(Text
"Gammad;", Text
"\x03DC")
    ,(Text
"gammad;", Text
"\x03DD")
    ,(Text
"gap;", Text
"\x2A86")
    ,(Text
"Gbreve;", Text
"\x011E")
    ,(Text
"gbreve;", Text
"\x011F")
    ,(Text
"Gcedil;", Text
"\x0122")
    ,(Text
"Gcirc;", Text
"\x011C")
    ,(Text
"gcirc;", Text
"\x011D")
    ,(Text
"Gcy;", Text
"\x0413")
    ,(Text
"gcy;", Text
"\x0433")
    ,(Text
"Gdot;", Text
"\x0120")
    ,(Text
"gdot;", Text
"\x0121")
    ,(Text
"ge;", Text
"\x2265")
    ,(Text
"gE;", Text
"\x2267")
    ,(Text
"gel;", Text
"\x22DB")
    ,(Text
"gEl;", Text
"\x2A8C")
    ,(Text
"geq;", Text
"\x2265")
    ,(Text
"geqq;", Text
"\x2267")
    ,(Text
"geqslant;", Text
"\x2A7E")
    ,(Text
"ges;", Text
"\x2A7E")
    ,(Text
"gescc;", Text
"\x2AA9")
    ,(Text
"gesdot;", Text
"\x2A80")
    ,(Text
"gesdoto;", Text
"\x2A82")
    ,(Text
"gesdotol;", Text
"\x2A84")
    ,(Text
"gesl;", Text
"\x22DB\xFE00")
    ,(Text
"gesles;", Text
"\x2A94")
    ,(Text
"Gfr;", Text
"\x1D50A")
    ,(Text
"gfr;", Text
"\x1D524")
    ,(Text
"gg;", Text
"\x226B")
    ,(Text
"Gg;", Text
"\x22D9")
    ,(Text
"ggg;", Text
"\x22D9")
    ,(Text
"gimel;", Text
"\x2137")
    ,(Text
"GJcy;", Text
"\x0403")
    ,(Text
"gjcy;", Text
"\x0453")
    ,(Text
"gl;", Text
"\x2277")
    ,(Text
"gla;", Text
"\x2AA5")
    ,(Text
"glE;", Text
"\x2A92")
    ,(Text
"glj;", Text
"\x2AA4")
    ,(Text
"gnap;", Text
"\x2A8A")
    ,(Text
"gnapprox;", Text
"\x2A8A")
    ,(Text
"gnE;", Text
"\x2269")
    ,(Text
"gne;", Text
"\x2A88")
    ,(Text
"gneq;", Text
"\x2A88")
    ,(Text
"gneqq;", Text
"\x2269")
    ,(Text
"gnsim;", Text
"\x22E7")
    ,(Text
"Gopf;", Text
"\x1D53E")
    ,(Text
"gopf;", Text
"\x1D558")
    ,(Text
"grave;", Text
"\x0060")
    ,(Text
"GreaterEqual;", Text
"\x2265")
    ,(Text
"GreaterEqualLess;", Text
"\x22DB")
    ,(Text
"GreaterFullEqual;", Text
"\x2267")
    ,(Text
"GreaterGreater;", Text
"\x2AA2")
    ,(Text
"GreaterLess;", Text
"\x2277")
    ,(Text
"GreaterSlantEqual;", Text
"\x2A7E")
    ,(Text
"GreaterTilde;", Text
"\x2273")
    ,(Text
"gscr;", Text
"\x210A")
    ,(Text
"Gscr;", Text
"\x1D4A2")
    ,(Text
"gsim;", Text
"\x2273")
    ,(Text
"gsime;", Text
"\x2A8E")
    ,(Text
"gsiml;", Text
"\x2A90")
    ,(Text
"GT", Text
"\x003E")
    ,(Text
"gt", Text
"\x003E")
    ,(Text
"GT;", Text
"\x003E")
    ,(Text
"gt;", Text
"\x003E")
    ,(Text
"Gt;", Text
"\x226B")
    ,(Text
"gtcc;", Text
"\x2AA7")
    ,(Text
"gtcir;", Text
"\x2A7A")
    ,(Text
"gtdot;", Text
"\x22D7")
    ,(Text
"gtlPar;", Text
"\x2995")
    ,(Text
"gtquest;", Text
"\x2A7C")
    ,(Text
"gtrapprox;", Text
"\x2A86")
    ,(Text
"gtrarr;", Text
"\x2978")
    ,(Text
"gtrdot;", Text
"\x22D7")
    ,(Text
"gtreqless;", Text
"\x22DB")
    ,(Text
"gtreqqless;", Text
"\x2A8C")
    ,(Text
"gtrless;", Text
"\x2277")
    ,(Text
"gtrsim;", Text
"\x2273")
    ,(Text
"gvertneqq;", Text
"\x2269\xFE00")
    ,(Text
"gvnE;", Text
"\x2269\xFE00")
    ,(Text
"Hacek;", Text
"\x02C7")
    ,(Text
"hairsp;", Text
"\x200A")
    ,(Text
"half;", Text
"\x00BD")
    ,(Text
"hamilt;", Text
"\x210B")
    ,(Text
"HARDcy;", Text
"\x042A")
    ,(Text
"hardcy;", Text
"\x044A")
    ,(Text
"harr;", Text
"\x2194")
    ,(Text
"hArr;", Text
"\x21D4")
    ,(Text
"harrcir;", Text
"\x2948")
    ,(Text
"harrw;", Text
"\x21AD")
    ,(Text
"Hat;", Text
"\x005E")
    ,(Text
"hbar;", Text
"\x210F")
    ,(Text
"Hcirc;", Text
"\x0124")
    ,(Text
"hcirc;", Text
"\x0125")
    ,(Text
"hearts;", Text
"\x2665")
    ,(Text
"heartsuit;", Text
"\x2665")
    ,(Text
"hellip;", Text
"\x2026")
    ,(Text
"hercon;", Text
"\x22B9")
    ,(Text
"Hfr;", Text
"\x210C")
    ,(Text
"hfr;", Text
"\x1D525")
    ,(Text
"HilbertSpace;", Text
"\x210B")
    ,(Text
"hksearow;", Text
"\x2925")
    ,(Text
"hkswarow;", Text
"\x2926")
    ,(Text
"hoarr;", Text
"\x21FF")
    ,(Text
"homtht;", Text
"\x223B")
    ,(Text
"hookleftarrow;", Text
"\x21A9")
    ,(Text
"hookrightarrow;", Text
"\x21AA")
    ,(Text
"Hopf;", Text
"\x210D")
    ,(Text
"hopf;", Text
"\x1D559")
    ,(Text
"horbar;", Text
"\x2015")
    ,(Text
"HorizontalLine;", Text
"\x2500")
    ,(Text
"Hscr;", Text
"\x210B")
    ,(Text
"hscr;", Text
"\x1D4BD")
    ,(Text
"hslash;", Text
"\x210F")
    ,(Text
"Hstrok;", Text
"\x0126")
    ,(Text
"hstrok;", Text
"\x0127")
    ,(Text
"HumpDownHump;", Text
"\x224E")
    ,(Text
"HumpEqual;", Text
"\x224F")
    ,(Text
"hybull;", Text
"\x2043")
    ,(Text
"hyphen;", Text
"\x2010")
    ,(Text
"Iacute", Text
"\x00CD")
    ,(Text
"iacute", Text
"\x00ED")
    ,(Text
"Iacute;", Text
"\x00CD")
    ,(Text
"iacute;", Text
"\x00ED")
    ,(Text
"ic;", Text
"\x2063")
    ,(Text
"Icirc", Text
"\x00CE")
    ,(Text
"icirc", Text
"\x00EE")
    ,(Text
"Icirc;", Text
"\x00CE")
    ,(Text
"icirc;", Text
"\x00EE")
    ,(Text
"Icy;", Text
"\x0418")
    ,(Text
"icy;", Text
"\x0438")
    ,(Text
"Idot;", Text
"\x0130")
    ,(Text
"IEcy;", Text
"\x0415")
    ,(Text
"iecy;", Text
"\x0435")
    ,(Text
"iexcl", Text
"\x00A1")
    ,(Text
"iexcl;", Text
"\x00A1")
    ,(Text
"iff;", Text
"\x21D4")
    ,(Text
"Ifr;", Text
"\x2111")
    ,(Text
"ifr;", Text
"\x1D526")
    ,(Text
"Igrave", Text
"\x00CC")
    ,(Text
"igrave", Text
"\x00EC")
    ,(Text
"Igrave;", Text
"\x00CC")
    ,(Text
"igrave;", Text
"\x00EC")
    ,(Text
"ii;", Text
"\x2148")
    ,(Text
"iiiint;", Text
"\x2A0C")
    ,(Text
"iiint;", Text
"\x222D")
    ,(Text
"iinfin;", Text
"\x29DC")
    ,(Text
"iiota;", Text
"\x2129")
    ,(Text
"IJlig;", Text
"\x0132")
    ,(Text
"ijlig;", Text
"\x0133")
    ,(Text
"Im;", Text
"\x2111")
    ,(Text
"Imacr;", Text
"\x012A")
    ,(Text
"imacr;", Text
"\x012B")
    ,(Text
"image;", Text
"\x2111")
    ,(Text
"ImaginaryI;", Text
"\x2148")
    ,(Text
"imagline;", Text
"\x2110")
    ,(Text
"imagpart;", Text
"\x2111")
    ,(Text
"imath;", Text
"\x0131")
    ,(Text
"imof;", Text
"\x22B7")
    ,(Text
"imped;", Text
"\x01B5")
    ,(Text
"Implies;", Text
"\x21D2")
    ,(Text
"in;", Text
"\x2208")
    ,(Text
"incare;", Text
"\x2105")
    ,(Text
"infin;", Text
"\x221E")
    ,(Text
"infintie;", Text
"\x29DD")
    ,(Text
"inodot;", Text
"\x0131")
    ,(Text
"int;", Text
"\x222B")
    ,(Text
"Int;", Text
"\x222C")
    ,(Text
"intcal;", Text
"\x22BA")
    ,(Text
"integers;", Text
"\x2124")
    ,(Text
"Integral;", Text
"\x222B")
    ,(Text
"intercal;", Text
"\x22BA")
    ,(Text
"Intersection;", Text
"\x22C2")
    ,(Text
"intlarhk;", Text
"\x2A17")
    ,(Text
"intprod;", Text
"\x2A3C")
    ,(Text
"InvisibleComma;", Text
"\x2063")
    ,(Text
"InvisibleTimes;", Text
"\x2062")
    ,(Text
"IOcy;", Text
"\x0401")
    ,(Text
"iocy;", Text
"\x0451")
    ,(Text
"Iogon;", Text
"\x012E")
    ,(Text
"iogon;", Text
"\x012F")
    ,(Text
"Iopf;", Text
"\x1D540")
    ,(Text
"iopf;", Text
"\x1D55A")
    ,(Text
"Iota;", Text
"\x0399")
    ,(Text
"iota;", Text
"\x03B9")
    ,(Text
"iprod;", Text
"\x2A3C")
    ,(Text
"iquest", Text
"\x00BF")
    ,(Text
"iquest;", Text
"\x00BF")
    ,(Text
"Iscr;", Text
"\x2110")
    ,(Text
"iscr;", Text
"\x1D4BE")
    ,(Text
"isin;", Text
"\x2208")
    ,(Text
"isindot;", Text
"\x22F5")
    ,(Text
"isinE;", Text
"\x22F9")
    ,(Text
"isins;", Text
"\x22F4")
    ,(Text
"isinsv;", Text
"\x22F3")
    ,(Text
"isinv;", Text
"\x2208")
    ,(Text
"it;", Text
"\x2062")
    ,(Text
"Itilde;", Text
"\x0128")
    ,(Text
"itilde;", Text
"\x0129")
    ,(Text
"Iukcy;", Text
"\x0406")
    ,(Text
"iukcy;", Text
"\x0456")
    ,(Text
"Iuml", Text
"\x00CF")
    ,(Text
"iuml", Text
"\x00EF")
    ,(Text
"Iuml;", Text
"\x00CF")
    ,(Text
"iuml;", Text
"\x00EF")
    ,(Text
"Jcirc;", Text
"\x0134")
    ,(Text
"jcirc;", Text
"\x0135")
    ,(Text
"Jcy;", Text
"\x0419")
    ,(Text
"jcy;", Text
"\x0439")
    ,(Text
"Jfr;", Text
"\x1D50D")
    ,(Text
"jfr;", Text
"\x1D527")
    ,(Text
"jmath;", Text
"\x0237")
    ,(Text
"Jopf;", Text
"\x1D541")
    ,(Text
"jopf;", Text
"\x1D55B")
    ,(Text
"Jscr;", Text
"\x1D4A5")
    ,(Text
"jscr;", Text
"\x1D4BF")
    ,(Text
"Jsercy;", Text
"\x0408")
    ,(Text
"jsercy;", Text
"\x0458")
    ,(Text
"Jukcy;", Text
"\x0404")
    ,(Text
"jukcy;", Text
"\x0454")
    ,(Text
"Kappa;", Text
"\x039A")
    ,(Text
"kappa;", Text
"\x03BA")
    ,(Text
"kappav;", Text
"\x03F0")
    ,(Text
"Kcedil;", Text
"\x0136")
    ,(Text
"kcedil;", Text
"\x0137")
    ,(Text
"Kcy;", Text
"\x041A")
    ,(Text
"kcy;", Text
"\x043A")
    ,(Text
"Kfr;", Text
"\x1D50E")
    ,(Text
"kfr;", Text
"\x1D528")
    ,(Text
"kgreen;", Text
"\x0138")
    ,(Text
"KHcy;", Text
"\x0425")
    ,(Text
"khcy;", Text
"\x0445")
    ,(Text
"KJcy;", Text
"\x040C")
    ,(Text
"kjcy;", Text
"\x045C")
    ,(Text
"Kopf;", Text
"\x1D542")
    ,(Text
"kopf;", Text
"\x1D55C")
    ,(Text
"Kscr;", Text
"\x1D4A6")
    ,(Text
"kscr;", Text
"\x1D4C0")
    ,(Text
"lAarr;", Text
"\x21DA")
    ,(Text
"Lacute;", Text
"\x0139")
    ,(Text
"lacute;", Text
"\x013A")
    ,(Text
"laemptyv;", Text
"\x29B4")
    ,(Text
"lagran;", Text
"\x2112")
    ,(Text
"Lambda;", Text
"\x039B")
    ,(Text
"lambda;", Text
"\x03BB")
    ,(Text
"lang;", Text
"\x27E8")
    ,(Text
"Lang;", Text
"\x27EA")
    ,(Text
"langd;", Text
"\x2991")
    ,(Text
"langle;", Text
"\x27E8")
    ,(Text
"lap;", Text
"\x2A85")
    ,(Text
"Laplacetrf;", Text
"\x2112")
    ,(Text
"laquo", Text
"\x00AB")
    ,(Text
"laquo;", Text
"\x00AB")
    ,(Text
"larr;", Text
"\x2190")
    ,(Text
"Larr;", Text
"\x219E")
    ,(Text
"lArr;", Text
"\x21D0")
    ,(Text
"larrb;", Text
"\x21E4")
    ,(Text
"larrbfs;", Text
"\x291F")
    ,(Text
"larrfs;", Text
"\x291D")
    ,(Text
"larrhk;", Text
"\x21A9")
    ,(Text
"larrlp;", Text
"\x21AB")
    ,(Text
"larrpl;", Text
"\x2939")
    ,(Text
"larrsim;", Text
"\x2973")
    ,(Text
"larrtl;", Text
"\x21A2")
    ,(Text
"lat;", Text
"\x2AAB")
    ,(Text
"latail;", Text
"\x2919")
    ,(Text
"lAtail;", Text
"\x291B")
    ,(Text
"late;", Text
"\x2AAD")
    ,(Text
"lates;", Text
"\x2AAD\xFE00")
    ,(Text
"lbarr;", Text
"\x290C")
    ,(Text
"lBarr;", Text
"\x290E")
    ,(Text
"lbbrk;", Text
"\x2772")
    ,(Text
"lbrace;", Text
"\x007B")
    ,(Text
"lbrack;", Text
"\x005B")
    ,(Text
"lbrke;", Text
"\x298B")
    ,(Text
"lbrksld;", Text
"\x298F")
    ,(Text
"lbrkslu;", Text
"\x298D")
    ,(Text
"Lcaron;", Text
"\x013D")
    ,(Text
"lcaron;", Text
"\x013E")
    ,(Text
"Lcedil;", Text
"\x013B")
    ,(Text
"lcedil;", Text
"\x013C")
    ,(Text
"lceil;", Text
"\x2308")
    ,(Text
"lcub;", Text
"\x007B")
    ,(Text
"Lcy;", Text
"\x041B")
    ,(Text
"lcy;", Text
"\x043B")
    ,(Text
"ldca;", Text
"\x2936")
    ,(Text
"ldquo;", Text
"\x201C")
    ,(Text
"ldquor;", Text
"\x201E")
    ,(Text
"ldrdhar;", Text
"\x2967")
    ,(Text
"ldrushar;", Text
"\x294B")
    ,(Text
"ldsh;", Text
"\x21B2")
    ,(Text
"le;", Text
"\x2264")
    ,(Text
"lE;", Text
"\x2266")
    ,(Text
"LeftAngleBracket;", Text
"\x27E8")
    ,(Text
"LeftArrow;", Text
"\x2190")
    ,(Text
"leftarrow;", Text
"\x2190")
    ,(Text
"Leftarrow;", Text
"\x21D0")
    ,(Text
"LeftArrowBar;", Text
"\x21E4")
    ,(Text
"LeftArrowRightArrow;", Text
"\x21C6")
    ,(Text
"leftarrowtail;", Text
"\x21A2")
    ,(Text
"LeftCeiling;", Text
"\x2308")
    ,(Text
"LeftDoubleBracket;", Text
"\x27E6")
    ,(Text
"LeftDownTeeVector;", Text
"\x2961")
    ,(Text
"LeftDownVector;", Text
"\x21C3")
    ,(Text
"LeftDownVectorBar;", Text
"\x2959")
    ,(Text
"LeftFloor;", Text
"\x230A")
    ,(Text
"leftharpoondown;", Text
"\x21BD")
    ,(Text
"leftharpoonup;", Text
"\x21BC")
    ,(Text
"leftleftarrows;", Text
"\x21C7")
    ,(Text
"LeftRightArrow;", Text
"\x2194")
    ,(Text
"leftrightarrow;", Text
"\x2194")
    ,(Text
"Leftrightarrow;", Text
"\x21D4")
    ,(Text
"leftrightarrows;", Text
"\x21C6")
    ,(Text
"leftrightharpoons;", Text
"\x21CB")
    ,(Text
"leftrightsquigarrow;", Text
"\x21AD")
    ,(Text
"LeftRightVector;", Text
"\x294E")
    ,(Text
"LeftTee;", Text
"\x22A3")
    ,(Text
"LeftTeeArrow;", Text
"\x21A4")
    ,(Text
"LeftTeeVector;", Text
"\x295A")
    ,(Text
"leftthreetimes;", Text
"\x22CB")
    ,(Text
"LeftTriangle;", Text
"\x22B2")
    ,(Text
"LeftTriangleBar;", Text
"\x29CF")
    ,(Text
"LeftTriangleEqual;", Text
"\x22B4")
    ,(Text
"LeftUpDownVector;", Text
"\x2951")
    ,(Text
"LeftUpTeeVector;", Text
"\x2960")
    ,(Text
"LeftUpVector;", Text
"\x21BF")
    ,(Text
"LeftUpVectorBar;", Text
"\x2958")
    ,(Text
"LeftVector;", Text
"\x21BC")
    ,(Text
"LeftVectorBar;", Text
"\x2952")
    ,(Text
"leg;", Text
"\x22DA")
    ,(Text
"lEg;", Text
"\x2A8B")
    ,(Text
"leq;", Text
"\x2264")
    ,(Text
"leqq;", Text
"\x2266")
    ,(Text
"leqslant;", Text
"\x2A7D")
    ,(Text
"les;", Text
"\x2A7D")
    ,(Text
"lescc;", Text
"\x2AA8")
    ,(Text
"lesdot;", Text
"\x2A7F")
    ,(Text
"lesdoto;", Text
"\x2A81")
    ,(Text
"lesdotor;", Text
"\x2A83")
    ,(Text
"lesg;", Text
"\x22DA\xFE00")
    ,(Text
"lesges;", Text
"\x2A93")
    ,(Text
"lessapprox;", Text
"\x2A85")
    ,(Text
"lessdot;", Text
"\x22D6")
    ,(Text
"lesseqgtr;", Text
"\x22DA")
    ,(Text
"lesseqqgtr;", Text
"\x2A8B")
    ,(Text
"LessEqualGreater;", Text
"\x22DA")
    ,(Text
"LessFullEqual;", Text
"\x2266")
    ,(Text
"LessGreater;", Text
"\x2276")
    ,(Text
"lessgtr;", Text
"\x2276")
    ,(Text
"LessLess;", Text
"\x2AA1")
    ,(Text
"lesssim;", Text
"\x2272")
    ,(Text
"LessSlantEqual;", Text
"\x2A7D")
    ,(Text
"LessTilde;", Text
"\x2272")
    ,(Text
"lfisht;", Text
"\x297C")
    ,(Text
"lfloor;", Text
"\x230A")
    ,(Text
"Lfr;", Text
"\x1D50F")
    ,(Text
"lfr;", Text
"\x1D529")
    ,(Text
"lg;", Text
"\x2276")
    ,(Text
"lgE;", Text
"\x2A91")
    ,(Text
"lHar;", Text
"\x2962")
    ,(Text
"lhard;", Text
"\x21BD")
    ,(Text
"lharu;", Text
"\x21BC")
    ,(Text
"lharul;", Text
"\x296A")
    ,(Text
"lhblk;", Text
"\x2584")
    ,(Text
"LJcy;", Text
"\x0409")
    ,(Text
"ljcy;", Text
"\x0459")
    ,(Text
"ll;", Text
"\x226A")
    ,(Text
"Ll;", Text
"\x22D8")
    ,(Text
"llarr;", Text
"\x21C7")
    ,(Text
"llcorner;", Text
"\x231E")
    ,(Text
"Lleftarrow;", Text
"\x21DA")
    ,(Text
"llhard;", Text
"\x296B")
    ,(Text
"lltri;", Text
"\x25FA")
    ,(Text
"Lmidot;", Text
"\x013F")
    ,(Text
"lmidot;", Text
"\x0140")
    ,(Text
"lmoust;", Text
"\x23B0")
    ,(Text
"lmoustache;", Text
"\x23B0")
    ,(Text
"lnap;", Text
"\x2A89")
    ,(Text
"lnapprox;", Text
"\x2A89")
    ,(Text
"lnE;", Text
"\x2268")
    ,(Text
"lne;", Text
"\x2A87")
    ,(Text
"lneq;", Text
"\x2A87")
    ,(Text
"lneqq;", Text
"\x2268")
    ,(Text
"lnsim;", Text
"\x22E6")
    ,(Text
"loang;", Text
"\x27EC")
    ,(Text
"loarr;", Text
"\x21FD")
    ,(Text
"lobrk;", Text
"\x27E6")
    ,(Text
"LongLeftArrow;", Text
"\x27F5")
    ,(Text
"longleftarrow;", Text
"\x27F5")
    ,(Text
"Longleftarrow;", Text
"\x27F8")
    ,(Text
"LongLeftRightArrow;", Text
"\x27F7")
    ,(Text
"longleftrightarrow;", Text
"\x27F7")
    ,(Text
"Longleftrightarrow;", Text
"\x27FA")
    ,(Text
"longmapsto;", Text
"\x27FC")
    ,(Text
"LongRightArrow;", Text
"\x27F6")
    ,(Text
"longrightarrow;", Text
"\x27F6")
    ,(Text
"Longrightarrow;", Text
"\x27F9")
    ,(Text
"looparrowleft;", Text
"\x21AB")
    ,(Text
"looparrowright;", Text
"\x21AC")
    ,(Text
"lopar;", Text
"\x2985")
    ,(Text
"Lopf;", Text
"\x1D543")
    ,(Text
"lopf;", Text
"\x1D55D")
    ,(Text
"loplus;", Text
"\x2A2D")
    ,(Text
"lotimes;", Text
"\x2A34")
    ,(Text
"lowast;", Text
"\x2217")
    ,(Text
"lowbar;", Text
"\x005F")
    ,(Text
"LowerLeftArrow;", Text
"\x2199")
    ,(Text
"LowerRightArrow;", Text
"\x2198")
    ,(Text
"loz;", Text
"\x25CA")
    ,(Text
"lozenge;", Text
"\x25CA")
    ,(Text
"lozf;", Text
"\x29EB")
    ,(Text
"lpar;", Text
"\x0028")
    ,(Text
"lparlt;", Text
"\x2993")
    ,(Text
"lrarr;", Text
"\x21C6")
    ,(Text
"lrcorner;", Text
"\x231F")
    ,(Text
"lrhar;", Text
"\x21CB")
    ,(Text
"lrhard;", Text
"\x296D")
    ,(Text
"lrm;", Text
"\x200E")
    ,(Text
"lrtri;", Text
"\x22BF")
    ,(Text
"lsaquo;", Text
"\x2039")
    ,(Text
"Lscr;", Text
"\x2112")
    ,(Text
"lscr;", Text
"\x1D4C1")
    ,(Text
"Lsh;", Text
"\x21B0")
    ,(Text
"lsh;", Text
"\x21B0")
    ,(Text
"lsim;", Text
"\x2272")
    ,(Text
"lsime;", Text
"\x2A8D")
    ,(Text
"lsimg;", Text
"\x2A8F")
    ,(Text
"lsqb;", Text
"\x005B")
    ,(Text
"lsquo;", Text
"\x2018")
    ,(Text
"lsquor;", Text
"\x201A")
    ,(Text
"Lstrok;", Text
"\x0141")
    ,(Text
"lstrok;", Text
"\x0142")
    ,(Text
"LT", Text
"\x003C")
    ,(Text
"lt", Text
"\x003C")
    ,(Text
"LT;", Text
"\x003C")
    ,(Text
"lt;", Text
"\x003C")
    ,(Text
"Lt;", Text
"\x226A")
    ,(Text
"ltcc;", Text
"\x2AA6")
    ,(Text
"ltcir;", Text
"\x2A79")
    ,(Text
"ltdot;", Text
"\x22D6")
    ,(Text
"lthree;", Text
"\x22CB")
    ,(Text
"ltimes;", Text
"\x22C9")
    ,(Text
"ltlarr;", Text
"\x2976")
    ,(Text
"ltquest;", Text
"\x2A7B")
    ,(Text
"ltri;", Text
"\x25C3")
    ,(Text
"ltrie;", Text
"\x22B4")
    ,(Text
"ltrif;", Text
"\x25C2")
    ,(Text
"ltrPar;", Text
"\x2996")
    ,(Text
"lurdshar;", Text
"\x294A")
    ,(Text
"luruhar;", Text
"\x2966")
    ,(Text
"lvertneqq;", Text
"\x2268\xFE00")
    ,(Text
"lvnE;", Text
"\x2268\xFE00")
    ,(Text
"macr", Text
"\x00AF")
    ,(Text
"macr;", Text
"\x00AF")
    ,(Text
"male;", Text
"\x2642")
    ,(Text
"malt;", Text
"\x2720")
    ,(Text
"maltese;", Text
"\x2720")
    ,(Text
"map;", Text
"\x21A6")
    ,(Text
"Map;", Text
"\x2905")
    ,(Text
"mapsto;", Text
"\x21A6")
    ,(Text
"mapstodown;", Text
"\x21A7")
    ,(Text
"mapstoleft;", Text
"\x21A4")
    ,(Text
"mapstoup;", Text
"\x21A5")
    ,(Text
"marker;", Text
"\x25AE")
    ,(Text
"mcomma;", Text
"\x2A29")
    ,(Text
"Mcy;", Text
"\x041C")
    ,(Text
"mcy;", Text
"\x043C")
    ,(Text
"mdash;", Text
"\x2014")
    ,(Text
"mDDot;", Text
"\x223A")
    ,(Text
"measuredangle;", Text
"\x2221")
    ,(Text
"MediumSpace;", Text
"\x205F")
    ,(Text
"Mellintrf;", Text
"\x2133")
    ,(Text
"Mfr;", Text
"\x1D510")
    ,(Text
"mfr;", Text
"\x1D52A")
    ,(Text
"mho;", Text
"\x2127")
    ,(Text
"micro", Text
"\x00B5")
    ,(Text
"micro;", Text
"\x00B5")
    ,(Text
"mid;", Text
"\x2223")
    ,(Text
"midast;", Text
"\x002A")
    ,(Text
"midcir;", Text
"\x2AF0")
    ,(Text
"middot", Text
"\x00B7")
    ,(Text
"middot;", Text
"\x00B7")
    ,(Text
"minus;", Text
"\x2212")
    ,(Text
"minusb;", Text
"\x229F")
    ,(Text
"minusd;", Text
"\x2238")
    ,(Text
"minusdu;", Text
"\x2A2A")
    ,(Text
"MinusPlus;", Text
"\x2213")
    ,(Text
"mlcp;", Text
"\x2ADB")
    ,(Text
"mldr;", Text
"\x2026")
    ,(Text
"mnplus;", Text
"\x2213")
    ,(Text
"models;", Text
"\x22A7")
    ,(Text
"Mopf;", Text
"\x1D544")
    ,(Text
"mopf;", Text
"\x1D55E")
    ,(Text
"mp;", Text
"\x2213")
    ,(Text
"Mscr;", Text
"\x2133")
    ,(Text
"mscr;", Text
"\x1D4C2")
    ,(Text
"mstpos;", Text
"\x223E")
    ,(Text
"Mu;", Text
"\x039C")
    ,(Text
"mu;", Text
"\x03BC")
    ,(Text
"multimap;", Text
"\x22B8")
    ,(Text
"mumap;", Text
"\x22B8")
    ,(Text
"nabla;", Text
"\x2207")
    ,(Text
"Nacute;", Text
"\x0143")
    ,(Text
"nacute;", Text
"\x0144")
    ,(Text
"nang;", Text
"\x2220\x20D2")
    ,(Text
"nap;", Text
"\x2249")
    ,(Text
"napE;", Text
"\x2A70\x0338")
    ,(Text
"napid;", Text
"\x224B\x0338")
    ,(Text
"napos;", Text
"\x0149")
    ,(Text
"napprox;", Text
"\x2249")
    ,(Text
"natur;", Text
"\x266E")
    ,(Text
"natural;", Text
"\x266E")
    ,(Text
"naturals;", Text
"\x2115")
    ,(Text
"nbsp", Text
"\x00A0")
    ,(Text
"nbsp;", Text
"\x00A0")
    ,(Text
"nbump;", Text
"\x224E\x0338")
    ,(Text
"nbumpe;", Text
"\x224F\x0338")
    ,(Text
"ncap;", Text
"\x2A43")
    ,(Text
"Ncaron;", Text
"\x0147")
    ,(Text
"ncaron;", Text
"\x0148")
    ,(Text
"Ncedil;", Text
"\x0145")
    ,(Text
"ncedil;", Text
"\x0146")
    ,(Text
"ncong;", Text
"\x2247")
    ,(Text
"ncongdot;", Text
"\x2A6D\x0338")
    ,(Text
"ncup;", Text
"\x2A42")
    ,(Text
"Ncy;", Text
"\x041D")
    ,(Text
"ncy;", Text
"\x043D")
    ,(Text
"ndash;", Text
"\x2013")
    ,(Text
"ne;", Text
"\x2260")
    ,(Text
"nearhk;", Text
"\x2924")
    ,(Text
"nearr;", Text
"\x2197")
    ,(Text
"neArr;", Text
"\x21D7")
    ,(Text
"nearrow;", Text
"\x2197")
    ,(Text
"nedot;", Text
"\x2250\x0338")
    ,(Text
"NegativeMediumSpace;", Text
"\x200B")
    ,(Text
"NegativeThickSpace;", Text
"\x200B")
    ,(Text
"NegativeThinSpace;", Text
"\x200B")
    ,(Text
"NegativeVeryThinSpace;", Text
"\x200B")
    ,(Text
"nequiv;", Text
"\x2262")
    ,(Text
"nesear;", Text
"\x2928")
    ,(Text
"nesim;", Text
"\x2242\x0338")
    ,(Text
"NestedGreaterGreater;", Text
"\x226B")
    ,(Text
"NestedLessLess;", Text
"\x226A")
    ,(Text
"NewLine;", Text
"\x000A")
    ,(Text
"nexist;", Text
"\x2204")
    ,(Text
"nexists;", Text
"\x2204")
    ,(Text
"Nfr;", Text
"\x1D511")
    ,(Text
"nfr;", Text
"\x1D52B")
    ,(Text
"ngE;", Text
"\x2267\x0338")
    ,(Text
"nge;", Text
"\x2271")
    ,(Text
"ngeq;", Text
"\x2271")
    ,(Text
"ngeqq;", Text
"\x2267\x0338")
    ,(Text
"ngeqslant;", Text
"\x2A7E\x0338")
    ,(Text
"nges;", Text
"\x2A7E\x0338")
    ,(Text
"nGg;", Text
"\x22D9\x0338")
    ,(Text
"ngsim;", Text
"\x2275")
    ,(Text
"nGt;", Text
"\x226B\x20D2")
    ,(Text
"ngt;", Text
"\x226F")
    ,(Text
"ngtr;", Text
"\x226F")
    ,(Text
"nGtv;", Text
"\x226B\x0338")
    ,(Text
"nharr;", Text
"\x21AE")
    ,(Text
"nhArr;", Text
"\x21CE")
    ,(Text
"nhpar;", Text
"\x2AF2")
    ,(Text
"ni;", Text
"\x220B")
    ,(Text
"nis;", Text
"\x22FC")
    ,(Text
"nisd;", Text
"\x22FA")
    ,(Text
"niv;", Text
"\x220B")
    ,(Text
"NJcy;", Text
"\x040A")
    ,(Text
"njcy;", Text
"\x045A")
    ,(Text
"nlarr;", Text
"\x219A")
    ,(Text
"nlArr;", Text
"\x21CD")
    ,(Text
"nldr;", Text
"\x2025")
    ,(Text
"nlE;", Text
"\x2266\x0338")
    ,(Text
"nle;", Text
"\x2270")
    ,(Text
"nleftarrow;", Text
"\x219A")
    ,(Text
"nLeftarrow;", Text
"\x21CD")
    ,(Text
"nleftrightarrow;", Text
"\x21AE")
    ,(Text
"nLeftrightarrow;", Text
"\x21CE")
    ,(Text
"nleq;", Text
"\x2270")
    ,(Text
"nleqq;", Text
"\x2266\x0338")
    ,(Text
"nleqslant;", Text
"\x2A7D\x0338")
    ,(Text
"nles;", Text
"\x2A7D\x0338")
    ,(Text
"nless;", Text
"\x226E")
    ,(Text
"nLl;", Text
"\x22D8\x0338")
    ,(Text
"nlsim;", Text
"\x2274")
    ,(Text
"nLt;", Text
"\x226A\x20D2")
    ,(Text
"nlt;", Text
"\x226E")
    ,(Text
"nltri;", Text
"\x22EA")
    ,(Text
"nltrie;", Text
"\x22EC")
    ,(Text
"nLtv;", Text
"\x226A\x0338")
    ,(Text
"nmid;", Text
"\x2224")
    ,(Text
"NoBreak;", Text
"\x2060")
    ,(Text
"NonBreakingSpace;", Text
"\x00A0")
    ,(Text
"Nopf;", Text
"\x2115")
    ,(Text
"nopf;", Text
"\x1D55F")
    ,(Text
"not", Text
"\x00AC")
    ,(Text
"not;", Text
"\x00AC")
    ,(Text
"Not;", Text
"\x2AEC")
    ,(Text
"NotCongruent;", Text
"\x2262")
    ,(Text
"NotCupCap;", Text
"\x226D")
    ,(Text
"NotDoubleVerticalBar;", Text
"\x2226")
    ,(Text
"NotElement;", Text
"\x2209")
    ,(Text
"NotEqual;", Text
"\x2260")
    ,(Text
"NotEqualTilde;", Text
"\x2242\x0338")
    ,(Text
"NotExists;", Text
"\x2204")
    ,(Text
"NotGreater;", Text
"\x226F")
    ,(Text
"NotGreaterEqual;", Text
"\x2271")
    ,(Text
"NotGreaterFullEqual;", Text
"\x2267\x0338")
    ,(Text
"NotGreaterGreater;", Text
"\x226B\x0338")
    ,(Text
"NotGreaterLess;", Text
"\x2279")
    ,(Text
"NotGreaterSlantEqual;", Text
"\x2A7E\x0338")
    ,(Text
"NotGreaterTilde;", Text
"\x2275")
    ,(Text
"NotHumpDownHump;", Text
"\x224E\x0338")
    ,(Text
"NotHumpEqual;", Text
"\x224F\x0338")
    ,(Text
"notin;", Text
"\x2209")
    ,(Text
"notindot;", Text
"\x22F5\x0338")
    ,(Text
"notinE;", Text
"\x22F9\x0338")
    ,(Text
"notinva;", Text
"\x2209")
    ,(Text
"notinvb;", Text
"\x22F7")
    ,(Text
"notinvc;", Text
"\x22F6")
    ,(Text
"NotLeftTriangle;", Text
"\x22EA")
    ,(Text
"NotLeftTriangleBar;", Text
"\x29CF\x0338")
    ,(Text
"NotLeftTriangleEqual;", Text
"\x22EC")
    ,(Text
"NotLess;", Text
"\x226E")
    ,(Text
"NotLessEqual;", Text
"\x2270")
    ,(Text
"NotLessGreater;", Text
"\x2278")
    ,(Text
"NotLessLess;", Text
"\x226A\x0338")
    ,(Text
"NotLessSlantEqual;", Text
"\x2A7D\x0338")
    ,(Text
"NotLessTilde;", Text
"\x2274")
    ,(Text
"NotNestedGreaterGreater;", Text
"\x2AA2\x0338")
    ,(Text
"NotNestedLessLess;", Text
"\x2AA1\x0338")
    ,(Text
"notni;", Text
"\x220C")
    ,(Text
"notniva;", Text
"\x220C")
    ,(Text
"notnivb;", Text
"\x22FE")
    ,(Text
"notnivc;", Text
"\x22FD")
    ,(Text
"NotPrecedes;", Text
"\x2280")
    ,(Text
"NotPrecedesEqual;", Text
"\x2AAF\x0338")
    ,(Text
"NotPrecedesSlantEqual;", Text
"\x22E0")
    ,(Text
"NotReverseElement;", Text
"\x220C")
    ,(Text
"NotRightTriangle;", Text
"\x22EB")
    ,(Text
"NotRightTriangleBar;", Text
"\x29D0\x0338")
    ,(Text
"NotRightTriangleEqual;", Text
"\x22ED")
    ,(Text
"NotSquareSubset;", Text
"\x228F\x0338")
    ,(Text
"NotSquareSubsetEqual;", Text
"\x22E2")
    ,(Text
"NotSquareSuperset;", Text
"\x2290\x0338")
    ,(Text
"NotSquareSupersetEqual;", Text
"\x22E3")
    ,(Text
"NotSubset;", Text
"\x2282\x20D2")
    ,(Text
"NotSubsetEqual;", Text
"\x2288")
    ,(Text
"NotSucceeds;", Text
"\x2281")
    ,(Text
"NotSucceedsEqual;", Text
"\x2AB0\x0338")
    ,(Text
"NotSucceedsSlantEqual;", Text
"\x22E1")
    ,(Text
"NotSucceedsTilde;", Text
"\x227F\x0338")
    ,(Text
"NotSuperset;", Text
"\x2283\x20D2")
    ,(Text
"NotSupersetEqual;", Text
"\x2289")
    ,(Text
"NotTilde;", Text
"\x2241")
    ,(Text
"NotTildeEqual;", Text
"\x2244")
    ,(Text
"NotTildeFullEqual;", Text
"\x2247")
    ,(Text
"NotTildeTilde;", Text
"\x2249")
    ,(Text
"NotVerticalBar;", Text
"\x2224")
    ,(Text
"npar;", Text
"\x2226")
    ,(Text
"nparallel;", Text
"\x2226")
    ,(Text
"nparsl;", Text
"\x2AFD\x20E5")
    ,(Text
"npart;", Text
"\x2202\x0338")
    ,(Text
"npolint;", Text
"\x2A14")
    ,(Text
"npr;", Text
"\x2280")
    ,(Text
"nprcue;", Text
"\x22E0")
    ,(Text
"npre;", Text
"\x2AAF\x0338")
    ,(Text
"nprec;", Text
"\x2280")
    ,(Text
"npreceq;", Text
"\x2AAF\x0338")
    ,(Text
"nrarr;", Text
"\x219B")
    ,(Text
"nrArr;", Text
"\x21CF")
    ,(Text
"nrarrc;", Text
"\x2933\x0338")
    ,(Text
"nrarrw;", Text
"\x219D\x0338")
    ,(Text
"nrightarrow;", Text
"\x219B")
    ,(Text
"nRightarrow;", Text
"\x21CF")
    ,(Text
"nrtri;", Text
"\x22EB")
    ,(Text
"nrtrie;", Text
"\x22ED")
    ,(Text
"nsc;", Text
"\x2281")
    ,(Text
"nsccue;", Text
"\x22E1")
    ,(Text
"nsce;", Text
"\x2AB0\x0338")
    ,(Text
"Nscr;", Text
"\x1D4A9")
    ,(Text
"nscr;", Text
"\x1D4C3")
    ,(Text
"nshortmid;", Text
"\x2224")
    ,(Text
"nshortparallel;", Text
"\x2226")
    ,(Text
"nsim;", Text
"\x2241")
    ,(Text
"nsime;", Text
"\x2244")
    ,(Text
"nsimeq;", Text
"\x2244")
    ,(Text
"nsmid;", Text
"\x2224")
    ,(Text
"nspar;", Text
"\x2226")
    ,(Text
"nsqsube;", Text
"\x22E2")
    ,(Text
"nsqsupe;", Text
"\x22E3")
    ,(Text
"nsub;", Text
"\x2284")
    ,(Text
"nsube;", Text
"\x2288")
    ,(Text
"nsubE;", Text
"\x2AC5\x0338")
    ,(Text
"nsubset;", Text
"\x2282\x20D2")
    ,(Text
"nsubseteq;", Text
"\x2288")
    ,(Text
"nsubseteqq;", Text
"\x2AC5\x0338")
    ,(Text
"nsucc;", Text
"\x2281")
    ,(Text
"nsucceq;", Text
"\x2AB0\x0338")
    ,(Text
"nsup;", Text
"\x2285")
    ,(Text
"nsupe;", Text
"\x2289")
    ,(Text
"nsupE;", Text
"\x2AC6\x0338")
    ,(Text
"nsupset;", Text
"\x2283\x20D2")
    ,(Text
"nsupseteq;", Text
"\x2289")
    ,(Text
"nsupseteqq;", Text
"\x2AC6\x0338")
    ,(Text
"ntgl;", Text
"\x2279")
    ,(Text
"Ntilde", Text
"\x00D1")
    ,(Text
"ntilde", Text
"\x00F1")
    ,(Text
"Ntilde;", Text
"\x00D1")
    ,(Text
"ntilde;", Text
"\x00F1")
    ,(Text
"ntlg;", Text
"\x2278")
    ,(Text
"ntriangleleft;", Text
"\x22EA")
    ,(Text
"ntrianglelefteq;", Text
"\x22EC")
    ,(Text
"ntriangleright;", Text
"\x22EB")
    ,(Text
"ntrianglerighteq;", Text
"\x22ED")
    ,(Text
"Nu;", Text
"\x039D")
    ,(Text
"nu;", Text
"\x03BD")
    ,(Text
"num;", Text
"\x0023")
    ,(Text
"numero;", Text
"\x2116")
    ,(Text
"numsp;", Text
"\x2007")
    ,(Text
"nvap;", Text
"\x224D\x20D2")
    ,(Text
"nvdash;", Text
"\x22AC")
    ,(Text
"nvDash;", Text
"\x22AD")
    ,(Text
"nVdash;", Text
"\x22AE")
    ,(Text
"nVDash;", Text
"\x22AF")
    ,(Text
"nvge;", Text
"\x2265\x20D2")
    ,(Text
"nvgt;", Text
"\x003E\x20D2")
    ,(Text
"nvHarr;", Text
"\x2904")
    ,(Text
"nvinfin;", Text
"\x29DE")
    ,(Text
"nvlArr;", Text
"\x2902")
    ,(Text
"nvle;", Text
"\x2264\x20D2")
    ,(Text
"nvlt;", Text
"\x003C\x20D2")
    ,(Text
"nvltrie;", Text
"\x22B4\x20D2")
    ,(Text
"nvrArr;", Text
"\x2903")
    ,(Text
"nvrtrie;", Text
"\x22B5\x20D2")
    ,(Text
"nvsim;", Text
"\x223C\x20D2")
    ,(Text
"nwarhk;", Text
"\x2923")
    ,(Text
"nwarr;", Text
"\x2196")
    ,(Text
"nwArr;", Text
"\x21D6")
    ,(Text
"nwarrow;", Text
"\x2196")
    ,(Text
"nwnear;", Text
"\x2927")
    ,(Text
"Oacute", Text
"\x00D3")
    ,(Text
"oacute", Text
"\x00F3")
    ,(Text
"Oacute;", Text
"\x00D3")
    ,(Text
"oacute;", Text
"\x00F3")
    ,(Text
"oast;", Text
"\x229B")
    ,(Text
"ocir;", Text
"\x229A")
    ,(Text
"Ocirc", Text
"\x00D4")
    ,(Text
"ocirc", Text
"\x00F4")
    ,(Text
"Ocirc;", Text
"\x00D4")
    ,(Text
"ocirc;", Text
"\x00F4")
    ,(Text
"Ocy;", Text
"\x041E")
    ,(Text
"ocy;", Text
"\x043E")
    ,(Text
"odash;", Text
"\x229D")
    ,(Text
"Odblac;", Text
"\x0150")
    ,(Text
"odblac;", Text
"\x0151")
    ,(Text
"odiv;", Text
"\x2A38")
    ,(Text
"odot;", Text
"\x2299")
    ,(Text
"odsold;", Text
"\x29BC")
    ,(Text
"OElig;", Text
"\x0152")
    ,(Text
"oelig;", Text
"\x0153")
    ,(Text
"ofcir;", Text
"\x29BF")
    ,(Text
"Ofr;", Text
"\x1D512")
    ,(Text
"ofr;", Text
"\x1D52C")
    ,(Text
"ogon;", Text
"\x02DB")
    ,(Text
"Ograve", Text
"\x00D2")
    ,(Text
"ograve", Text
"\x00F2")
    ,(Text
"Ograve;", Text
"\x00D2")
    ,(Text
"ograve;", Text
"\x00F2")
    ,(Text
"ogt;", Text
"\x29C1")
    ,(Text
"ohbar;", Text
"\x29B5")
    ,(Text
"ohm;", Text
"\x03A9")
    ,(Text
"oint;", Text
"\x222E")
    ,(Text
"olarr;", Text
"\x21BA")
    ,(Text
"olcir;", Text
"\x29BE")
    ,(Text
"olcross;", Text
"\x29BB")
    ,(Text
"oline;", Text
"\x203E")
    ,(Text
"olt;", Text
"\x29C0")
    ,(Text
"Omacr;", Text
"\x014C")
    ,(Text
"omacr;", Text
"\x014D")
    ,(Text
"Omega;", Text
"\x03A9")
    ,(Text
"omega;", Text
"\x03C9")
    ,(Text
"Omicron;", Text
"\x039F")
    ,(Text
"omicron;", Text
"\x03BF")
    ,(Text
"omid;", Text
"\x29B6")
    ,(Text
"ominus;", Text
"\x2296")
    ,(Text
"Oopf;", Text
"\x1D546")
    ,(Text
"oopf;", Text
"\x1D560")
    ,(Text
"opar;", Text
"\x29B7")
    ,(Text
"OpenCurlyDoubleQuote;", Text
"\x201C")
    ,(Text
"OpenCurlyQuote;", Text
"\x2018")
    ,(Text
"operp;", Text
"\x29B9")
    ,(Text
"oplus;", Text
"\x2295")
    ,(Text
"or;", Text
"\x2228")
    ,(Text
"Or;", Text
"\x2A54")
    ,(Text
"orarr;", Text
"\x21BB")
    ,(Text
"ord;", Text
"\x2A5D")
    ,(Text
"order;", Text
"\x2134")
    ,(Text
"orderof;", Text
"\x2134")
    ,(Text
"ordf", Text
"\x00AA")
    ,(Text
"ordf;", Text
"\x00AA")
    ,(Text
"ordm", Text
"\x00BA")
    ,(Text
"ordm;", Text
"\x00BA")
    ,(Text
"origof;", Text
"\x22B6")
    ,(Text
"oror;", Text
"\x2A56")
    ,(Text
"orslope;", Text
"\x2A57")
    ,(Text
"orv;", Text
"\x2A5B")
    ,(Text
"oS;", Text
"\x24C8")
    ,(Text
"oscr;", Text
"\x2134")
    ,(Text
"Oscr;", Text
"\x1D4AA")
    ,(Text
"Oslash", Text
"\x00D8")
    ,(Text
"oslash", Text
"\x00F8")
    ,(Text
"Oslash;", Text
"\x00D8")
    ,(Text
"oslash;", Text
"\x00F8")
    ,(Text
"osol;", Text
"\x2298")
    ,(Text
"Otilde", Text
"\x00D5")
    ,(Text
"otilde", Text
"\x00F5")
    ,(Text
"Otilde;", Text
"\x00D5")
    ,(Text
"otilde;", Text
"\x00F5")
    ,(Text
"otimes;", Text
"\x2297")
    ,(Text
"Otimes;", Text
"\x2A37")
    ,(Text
"otimesas;", Text
"\x2A36")
    ,(Text
"Ouml", Text
"\x00D6")
    ,(Text
"ouml", Text
"\x00F6")
    ,(Text
"Ouml;", Text
"\x00D6")
    ,(Text
"ouml;", Text
"\x00F6")
    ,(Text
"ovbar;", Text
"\x233D")
    ,(Text
"OverBar;", Text
"\x203E")
    ,(Text
"OverBrace;", Text
"\x23DE")
    ,(Text
"OverBracket;", Text
"\x23B4")
    ,(Text
"OverParenthesis;", Text
"\x23DC")
    ,(Text
"par;", Text
"\x2225")
    ,(Text
"para", Text
"\x00B6")
    ,(Text
"para;", Text
"\x00B6")
    ,(Text
"parallel;", Text
"\x2225")
    ,(Text
"parsim;", Text
"\x2AF3")
    ,(Text
"parsl;", Text
"\x2AFD")
    ,(Text
"part;", Text
"\x2202")
    ,(Text
"PartialD;", Text
"\x2202")
    ,(Text
"Pcy;", Text
"\x041F")
    ,(Text
"pcy;", Text
"\x043F")
    ,(Text
"percnt;", Text
"\x0025")
    ,(Text
"period;", Text
"\x002E")
    ,(Text
"permil;", Text
"\x2030")
    ,(Text
"perp;", Text
"\x22A5")
    ,(Text
"pertenk;", Text
"\x2031")
    ,(Text
"Pfr;", Text
"\x1D513")
    ,(Text
"pfr;", Text
"\x1D52D")
    ,(Text
"Phi;", Text
"\x03A6")
    ,(Text
"phi;", Text
"\x03C6")
    ,(Text
"phiv;", Text
"\x03D5")
    ,(Text
"phmmat;", Text
"\x2133")
    ,(Text
"phone;", Text
"\x260E")
    ,(Text
"Pi;", Text
"\x03A0")
    ,(Text
"pi;", Text
"\x03C0")
    ,(Text
"pitchfork;", Text
"\x22D4")
    ,(Text
"piv;", Text
"\x03D6")
    ,(Text
"planck;", Text
"\x210F")
    ,(Text
"planckh;", Text
"\x210E")
    ,(Text
"plankv;", Text
"\x210F")
    ,(Text
"plus;", Text
"\x002B")
    ,(Text
"plusacir;", Text
"\x2A23")
    ,(Text
"plusb;", Text
"\x229E")
    ,(Text
"pluscir;", Text
"\x2A22")
    ,(Text
"plusdo;", Text
"\x2214")
    ,(Text
"plusdu;", Text
"\x2A25")
    ,(Text
"pluse;", Text
"\x2A72")
    ,(Text
"PlusMinus;", Text
"\x00B1")
    ,(Text
"plusmn", Text
"\x00B1")
    ,(Text
"plusmn;", Text
"\x00B1")
    ,(Text
"plussim;", Text
"\x2A26")
    ,(Text
"plustwo;", Text
"\x2A27")
    ,(Text
"pm;", Text
"\x00B1")
    ,(Text
"Poincareplane;", Text
"\x210C")
    ,(Text
"pointint;", Text
"\x2A15")
    ,(Text
"Popf;", Text
"\x2119")
    ,(Text
"popf;", Text
"\x1D561")
    ,(Text
"pound", Text
"\x00A3")
    ,(Text
"pound;", Text
"\x00A3")
    ,(Text
"pr;", Text
"\x227A")
    ,(Text
"Pr;", Text
"\x2ABB")
    ,(Text
"prap;", Text
"\x2AB7")
    ,(Text
"prcue;", Text
"\x227C")
    ,(Text
"pre;", Text
"\x2AAF")
    ,(Text
"prE;", Text
"\x2AB3")
    ,(Text
"prec;", Text
"\x227A")
    ,(Text
"precapprox;", Text
"\x2AB7")
    ,(Text
"preccurlyeq;", Text
"\x227C")
    ,(Text
"Precedes;", Text
"\x227A")
    ,(Text
"PrecedesEqual;", Text
"\x2AAF")
    ,(Text
"PrecedesSlantEqual;", Text
"\x227C")
    ,(Text
"PrecedesTilde;", Text
"\x227E")
    ,(Text
"preceq;", Text
"\x2AAF")
    ,(Text
"precnapprox;", Text
"\x2AB9")
    ,(Text
"precneqq;", Text
"\x2AB5")
    ,(Text
"precnsim;", Text
"\x22E8")
    ,(Text
"precsim;", Text
"\x227E")
    ,(Text
"prime;", Text
"\x2032")
    ,(Text
"Prime;", Text
"\x2033")
    ,(Text
"primes;", Text
"\x2119")
    ,(Text
"prnap;", Text
"\x2AB9")
    ,(Text
"prnE;", Text
"\x2AB5")
    ,(Text
"prnsim;", Text
"\x22E8")
    ,(Text
"prod;", Text
"\x220F")
    ,(Text
"Product;", Text
"\x220F")
    ,(Text
"profalar;", Text
"\x232E")
    ,(Text
"profline;", Text
"\x2312")
    ,(Text
"profsurf;", Text
"\x2313")
    ,(Text
"prop;", Text
"\x221D")
    ,(Text
"Proportion;", Text
"\x2237")
    ,(Text
"Proportional;", Text
"\x221D")
    ,(Text
"propto;", Text
"\x221D")
    ,(Text
"prsim;", Text
"\x227E")
    ,(Text
"prurel;", Text
"\x22B0")
    ,(Text
"Pscr;", Text
"\x1D4AB")
    ,(Text
"pscr;", Text
"\x1D4C5")
    ,(Text
"Psi;", Text
"\x03A8")
    ,(Text
"psi;", Text
"\x03C8")
    ,(Text
"puncsp;", Text
"\x2008")
    ,(Text
"Qfr;", Text
"\x1D514")
    ,(Text
"qfr;", Text
"\x1D52E")
    ,(Text
"qint;", Text
"\x2A0C")
    ,(Text
"Qopf;", Text
"\x211A")
    ,(Text
"qopf;", Text
"\x1D562")
    ,(Text
"qprime;", Text
"\x2057")
    ,(Text
"Qscr;", Text
"\x1D4AC")
    ,(Text
"qscr;", Text
"\x1D4C6")
    ,(Text
"quaternions;", Text
"\x210D")
    ,(Text
"quatint;", Text
"\x2A16")
    ,(Text
"quest;", Text
"\x003F")
    ,(Text
"questeq;", Text
"\x225F")
    ,(Text
"QUOT", Text
"\x0022")
    ,(Text
"quot", Text
"\x0022")
    ,(Text
"QUOT;", Text
"\x0022")
    ,(Text
"quot;", Text
"\x0022")
    ,(Text
"rAarr;", Text
"\x21DB")
    ,(Text
"race;", Text
"\x223D\x0331")
    ,(Text
"Racute;", Text
"\x0154")
    ,(Text
"racute;", Text
"\x0155")
    ,(Text
"radic;", Text
"\x221A")
    ,(Text
"raemptyv;", Text
"\x29B3")
    ,(Text
"rang;", Text
"\x27E9")
    ,(Text
"Rang;", Text
"\x27EB")
    ,(Text
"rangd;", Text
"\x2992")
    ,(Text
"range;", Text
"\x29A5")
    ,(Text
"rangle;", Text
"\x27E9")
    ,(Text
"raquo", Text
"\x00BB")
    ,(Text
"raquo;", Text
"\x00BB")
    ,(Text
"rarr;", Text
"\x2192")
    ,(Text
"Rarr;", Text
"\x21A0")
    ,(Text
"rArr;", Text
"\x21D2")
    ,(Text
"rarrap;", Text
"\x2975")
    ,(Text
"rarrb;", Text
"\x21E5")
    ,(Text
"rarrbfs;", Text
"\x2920")
    ,(Text
"rarrc;", Text
"\x2933")
    ,(Text
"rarrfs;", Text
"\x291E")
    ,(Text
"rarrhk;", Text
"\x21AA")
    ,(Text
"rarrlp;", Text
"\x21AC")
    ,(Text
"rarrpl;", Text
"\x2945")
    ,(Text
"rarrsim;", Text
"\x2974")
    ,(Text
"rarrtl;", Text
"\x21A3")
    ,(Text
"Rarrtl;", Text
"\x2916")
    ,(Text
"rarrw;", Text
"\x219D")
    ,(Text
"ratail;", Text
"\x291A")
    ,(Text
"rAtail;", Text
"\x291C")
    ,(Text
"ratio;", Text
"\x2236")
    ,(Text
"rationals;", Text
"\x211A")
    ,(Text
"rbarr;", Text
"\x290D")
    ,(Text
"rBarr;", Text
"\x290F")
    ,(Text
"RBarr;", Text
"\x2910")
    ,(Text
"rbbrk;", Text
"\x2773")
    ,(Text
"rbrace;", Text
"\x007D")
    ,(Text
"rbrack;", Text
"\x005D")
    ,(Text
"rbrke;", Text
"\x298C")
    ,(Text
"rbrksld;", Text
"\x298E")
    ,(Text
"rbrkslu;", Text
"\x2990")
    ,(Text
"Rcaron;", Text
"\x0158")
    ,(Text
"rcaron;", Text
"\x0159")
    ,(Text
"Rcedil;", Text
"\x0156")
    ,(Text
"rcedil;", Text
"\x0157")
    ,(Text
"rceil;", Text
"\x2309")
    ,(Text
"rcub;", Text
"\x007D")
    ,(Text
"Rcy;", Text
"\x0420")
    ,(Text
"rcy;", Text
"\x0440")
    ,(Text
"rdca;", Text
"\x2937")
    ,(Text
"rdldhar;", Text
"\x2969")
    ,(Text
"rdquo;", Text
"\x201D")
    ,(Text
"rdquor;", Text
"\x201D")
    ,(Text
"rdsh;", Text
"\x21B3")
    ,(Text
"Re;", Text
"\x211C")
    ,(Text
"real;", Text
"\x211C")
    ,(Text
"realine;", Text
"\x211B")
    ,(Text
"realpart;", Text
"\x211C")
    ,(Text
"reals;", Text
"\x211D")
    ,(Text
"rect;", Text
"\x25AD")
    ,(Text
"REG", Text
"\x00AE")
    ,(Text
"reg", Text
"\x00AE")
    ,(Text
"REG;", Text
"\x00AE")
    ,(Text
"reg;", Text
"\x00AE")
    ,(Text
"ReverseElement;", Text
"\x220B")
    ,(Text
"ReverseEquilibrium;", Text
"\x21CB")
    ,(Text
"ReverseUpEquilibrium;", Text
"\x296F")
    ,(Text
"rfisht;", Text
"\x297D")
    ,(Text
"rfloor;", Text
"\x230B")
    ,(Text
"Rfr;", Text
"\x211C")
    ,(Text
"rfr;", Text
"\x1D52F")
    ,(Text
"rHar;", Text
"\x2964")
    ,(Text
"rhard;", Text
"\x21C1")
    ,(Text
"rharu;", Text
"\x21C0")
    ,(Text
"rharul;", Text
"\x296C")
    ,(Text
"Rho;", Text
"\x03A1")
    ,(Text
"rho;", Text
"\x03C1")
    ,(Text
"rhov;", Text
"\x03F1")
    ,(Text
"RightAngleBracket;", Text
"\x27E9")
    ,(Text
"RightArrow;", Text
"\x2192")
    ,(Text
"rightarrow;", Text
"\x2192")
    ,(Text
"Rightarrow;", Text
"\x21D2")
    ,(Text
"RightArrowBar;", Text
"\x21E5")
    ,(Text
"RightArrowLeftArrow;", Text
"\x21C4")
    ,(Text
"rightarrowtail;", Text
"\x21A3")
    ,(Text
"RightCeiling;", Text
"\x2309")
    ,(Text
"RightDoubleBracket;", Text
"\x27E7")
    ,(Text
"RightDownTeeVector;", Text
"\x295D")
    ,(Text
"RightDownVector;", Text
"\x21C2")
    ,(Text
"RightDownVectorBar;", Text
"\x2955")
    ,(Text
"RightFloor;", Text
"\x230B")
    ,(Text
"rightharpoondown;", Text
"\x21C1")
    ,(Text
"rightharpoonup;", Text
"\x21C0")
    ,(Text
"rightleftarrows;", Text
"\x21C4")
    ,(Text
"rightleftharpoons;", Text
"\x21CC")
    ,(Text
"rightrightarrows;", Text
"\x21C9")
    ,(Text
"rightsquigarrow;", Text
"\x219D")
    ,(Text
"RightTee;", Text
"\x22A2")
    ,(Text
"RightTeeArrow;", Text
"\x21A6")
    ,(Text
"RightTeeVector;", Text
"\x295B")
    ,(Text
"rightthreetimes;", Text
"\x22CC")
    ,(Text
"RightTriangle;", Text
"\x22B3")
    ,(Text
"RightTriangleBar;", Text
"\x29D0")
    ,(Text
"RightTriangleEqual;", Text
"\x22B5")
    ,(Text
"RightUpDownVector;", Text
"\x294F")
    ,(Text
"RightUpTeeVector;", Text
"\x295C")
    ,(Text
"RightUpVector;", Text
"\x21BE")
    ,(Text
"RightUpVectorBar;", Text
"\x2954")
    ,(Text
"RightVector;", Text
"\x21C0")
    ,(Text
"RightVectorBar;", Text
"\x2953")
    ,(Text
"ring;", Text
"\x02DA")
    ,(Text
"risingdotseq;", Text
"\x2253")
    ,(Text
"rlarr;", Text
"\x21C4")
    ,(Text
"rlhar;", Text
"\x21CC")
    ,(Text
"rlm;", Text
"\x200F")
    ,(Text
"rmoust;", Text
"\x23B1")
    ,(Text
"rmoustache;", Text
"\x23B1")
    ,(Text
"rnmid;", Text
"\x2AEE")
    ,(Text
"roang;", Text
"\x27ED")
    ,(Text
"roarr;", Text
"\x21FE")
    ,(Text
"robrk;", Text
"\x27E7")
    ,(Text
"ropar;", Text
"\x2986")
    ,(Text
"Ropf;", Text
"\x211D")
    ,(Text
"ropf;", Text
"\x1D563")
    ,(Text
"roplus;", Text
"\x2A2E")
    ,(Text
"rotimes;", Text
"\x2A35")
    ,(Text
"RoundImplies;", Text
"\x2970")
    ,(Text
"rpar;", Text
"\x0029")
    ,(Text
"rpargt;", Text
"\x2994")
    ,(Text
"rppolint;", Text
"\x2A12")
    ,(Text
"rrarr;", Text
"\x21C9")
    ,(Text
"Rrightarrow;", Text
"\x21DB")
    ,(Text
"rsaquo;", Text
"\x203A")
    ,(Text
"Rscr;", Text
"\x211B")
    ,(Text
"rscr;", Text
"\x1D4C7")
    ,(Text
"Rsh;", Text
"\x21B1")
    ,(Text
"rsh;", Text
"\x21B1")
    ,(Text
"rsqb;", Text
"\x005D")
    ,(Text
"rsquo;", Text
"\x2019")
    ,(Text
"rsquor;", Text
"\x2019")
    ,(Text
"rthree;", Text
"\x22CC")
    ,(Text
"rtimes;", Text
"\x22CA")
    ,(Text
"rtri;", Text
"\x25B9")
    ,(Text
"rtrie;", Text
"\x22B5")
    ,(Text
"rtrif;", Text
"\x25B8")
    ,(Text
"rtriltri;", Text
"\x29CE")
    ,(Text
"RuleDelayed;", Text
"\x29F4")
    ,(Text
"ruluhar;", Text
"\x2968")
    ,(Text
"rx;", Text
"\x211E")
    ,(Text
"Sacute;", Text
"\x015A")
    ,(Text
"sacute;", Text
"\x015B")
    ,(Text
"sbquo;", Text
"\x201A")
    ,(Text
"sc;", Text
"\x227B")
    ,(Text
"Sc;", Text
"\x2ABC")
    ,(Text
"scap;", Text
"\x2AB8")
    ,(Text
"Scaron;", Text
"\x0160")
    ,(Text
"scaron;", Text
"\x0161")
    ,(Text
"sccue;", Text
"\x227D")
    ,(Text
"sce;", Text
"\x2AB0")
    ,(Text
"scE;", Text
"\x2AB4")
    ,(Text
"Scedil;", Text
"\x015E")
    ,(Text
"scedil;", Text
"\x015F")
    ,(Text
"Scirc;", Text
"\x015C")
    ,(Text
"scirc;", Text
"\x015D")
    ,(Text
"scnap;", Text
"\x2ABA")
    ,(Text
"scnE;", Text
"\x2AB6")
    ,(Text
"scnsim;", Text
"\x22E9")
    ,(Text
"scpolint;", Text
"\x2A13")
    ,(Text
"scsim;", Text
"\x227F")
    ,(Text
"Scy;", Text
"\x0421")
    ,(Text
"scy;", Text
"\x0441")
    ,(Text
"sdot;", Text
"\x22C5")
    ,(Text
"sdotb;", Text
"\x22A1")
    ,(Text
"sdote;", Text
"\x2A66")
    ,(Text
"searhk;", Text
"\x2925")
    ,(Text
"searr;", Text
"\x2198")
    ,(Text
"seArr;", Text
"\x21D8")
    ,(Text
"searrow;", Text
"\x2198")
    ,(Text
"sect", Text
"\x00A7")
    ,(Text
"sect;", Text
"\x00A7")
    ,(Text
"semi;", Text
"\x003B")
    ,(Text
"seswar;", Text
"\x2929")
    ,(Text
"setminus;", Text
"\x2216")
    ,(Text
"setmn;", Text
"\x2216")
    ,(Text
"sext;", Text
"\x2736")
    ,(Text
"Sfr;", Text
"\x1D516")
    ,(Text
"sfr;", Text
"\x1D530")
    ,(Text
"sfrown;", Text
"\x2322")
    ,(Text
"sharp;", Text
"\x266F")
    ,(Text
"SHCHcy;", Text
"\x0429")
    ,(Text
"shchcy;", Text
"\x0449")
    ,(Text
"SHcy;", Text
"\x0428")
    ,(Text
"shcy;", Text
"\x0448")
    ,(Text
"ShortDownArrow;", Text
"\x2193")
    ,(Text
"ShortLeftArrow;", Text
"\x2190")
    ,(Text
"shortmid;", Text
"\x2223")
    ,(Text
"shortparallel;", Text
"\x2225")
    ,(Text
"ShortRightArrow;", Text
"\x2192")
    ,(Text
"ShortUpArrow;", Text
"\x2191")
    ,(Text
"shy", Text
"\x00AD")
    ,(Text
"shy;", Text
"\x00AD")
    ,(Text
"Sigma;", Text
"\x03A3")
    ,(Text
"sigma;", Text
"\x03C3")
    ,(Text
"sigmaf;", Text
"\x03C2")
    ,(Text
"sigmav;", Text
"\x03C2")
    ,(Text
"sim;", Text
"\x223C")
    ,(Text
"simdot;", Text
"\x2A6A")
    ,(Text
"sime;", Text
"\x2243")
    ,(Text
"simeq;", Text
"\x2243")
    ,(Text
"simg;", Text
"\x2A9E")
    ,(Text
"simgE;", Text
"\x2AA0")
    ,(Text
"siml;", Text
"\x2A9D")
    ,(Text
"simlE;", Text
"\x2A9F")
    ,(Text
"simne;", Text
"\x2246")
    ,(Text
"simplus;", Text
"\x2A24")
    ,(Text
"simrarr;", Text
"\x2972")
    ,(Text
"slarr;", Text
"\x2190")
    ,(Text
"SmallCircle;", Text
"\x2218")
    ,(Text
"smallsetminus;", Text
"\x2216")
    ,(Text
"smashp;", Text
"\x2A33")
    ,(Text
"smeparsl;", Text
"\x29E4")
    ,(Text
"smid;", Text
"\x2223")
    ,(Text
"smile;", Text
"\x2323")
    ,(Text
"smt;", Text
"\x2AAA")
    ,(Text
"smte;", Text
"\x2AAC")
    ,(Text
"smtes;", Text
"\x2AAC\xFE00")
    ,(Text
"SOFTcy;", Text
"\x042C")
    ,(Text
"softcy;", Text
"\x044C")
    ,(Text
"sol;", Text
"\x002F")
    ,(Text
"solb;", Text
"\x29C4")
    ,(Text
"solbar;", Text
"\x233F")
    ,(Text
"Sopf;", Text
"\x1D54A")
    ,(Text
"sopf;", Text
"\x1D564")
    ,(Text
"spades;", Text
"\x2660")
    ,(Text
"spadesuit;", Text
"\x2660")
    ,(Text
"spar;", Text
"\x2225")
    ,(Text
"sqcap;", Text
"\x2293")
    ,(Text
"sqcaps;", Text
"\x2293\xFE00")
    ,(Text
"sqcup;", Text
"\x2294")
    ,(Text
"sqcups;", Text
"\x2294\xFE00")
    ,(Text
"Sqrt;", Text
"\x221A")
    ,(Text
"sqsub;", Text
"\x228F")
    ,(Text
"sqsube;", Text
"\x2291")
    ,(Text
"sqsubset;", Text
"\x228F")
    ,(Text
"sqsubseteq;", Text
"\x2291")
    ,(Text
"sqsup;", Text
"\x2290")
    ,(Text
"sqsupe;", Text
"\x2292")
    ,(Text
"sqsupset;", Text
"\x2290")
    ,(Text
"sqsupseteq;", Text
"\x2292")
    ,(Text
"squ;", Text
"\x25A1")
    ,(Text
"Square;", Text
"\x25A1")
    ,(Text
"square;", Text
"\x25A1")
    ,(Text
"SquareIntersection;", Text
"\x2293")
    ,(Text
"SquareSubset;", Text
"\x228F")
    ,(Text
"SquareSubsetEqual;", Text
"\x2291")
    ,(Text
"SquareSuperset;", Text
"\x2290")
    ,(Text
"SquareSupersetEqual;", Text
"\x2292")
    ,(Text
"SquareUnion;", Text
"\x2294")
    ,(Text
"squarf;", Text
"\x25AA")
    ,(Text
"squf;", Text
"\x25AA")
    ,(Text
"srarr;", Text
"\x2192")
    ,(Text
"Sscr;", Text
"\x1D4AE")
    ,(Text
"sscr;", Text
"\x1D4C8")
    ,(Text
"ssetmn;", Text
"\x2216")
    ,(Text
"ssmile;", Text
"\x2323")
    ,(Text
"sstarf;", Text
"\x22C6")
    ,(Text
"Star;", Text
"\x22C6")
    ,(Text
"star;", Text
"\x2606")
    ,(Text
"starf;", Text
"\x2605")
    ,(Text
"straightepsilon;", Text
"\x03F5")
    ,(Text
"straightphi;", Text
"\x03D5")
    ,(Text
"strns;", Text
"\x00AF")
    ,(Text
"sub;", Text
"\x2282")
    ,(Text
"Sub;", Text
"\x22D0")
    ,(Text
"subdot;", Text
"\x2ABD")
    ,(Text
"sube;", Text
"\x2286")
    ,(Text
"subE;", Text
"\x2AC5")
    ,(Text
"subedot;", Text
"\x2AC3")
    ,(Text
"submult;", Text
"\x2AC1")
    ,(Text
"subne;", Text
"\x228A")
    ,(Text
"subnE;", Text
"\x2ACB")
    ,(Text
"subplus;", Text
"\x2ABF")
    ,(Text
"subrarr;", Text
"\x2979")
    ,(Text
"subset;", Text
"\x2282")
    ,(Text
"Subset;", Text
"\x22D0")
    ,(Text
"subseteq;", Text
"\x2286")
    ,(Text
"subseteqq;", Text
"\x2AC5")
    ,(Text
"SubsetEqual;", Text
"\x2286")
    ,(Text
"subsetneq;", Text
"\x228A")
    ,(Text
"subsetneqq;", Text
"\x2ACB")
    ,(Text
"subsim;", Text
"\x2AC7")
    ,(Text
"subsub;", Text
"\x2AD5")
    ,(Text
"subsup;", Text
"\x2AD3")
    ,(Text
"succ;", Text
"\x227B")
    ,(Text
"succapprox;", Text
"\x2AB8")
    ,(Text
"succcurlyeq;", Text
"\x227D")
    ,(Text
"Succeeds;", Text
"\x227B")
    ,(Text
"SucceedsEqual;", Text
"\x2AB0")
    ,(Text
"SucceedsSlantEqual;", Text
"\x227D")
    ,(Text
"SucceedsTilde;", Text
"\x227F")
    ,(Text
"succeq;", Text
"\x2AB0")
    ,(Text
"succnapprox;", Text
"\x2ABA")
    ,(Text
"succneqq;", Text
"\x2AB6")
    ,(Text
"succnsim;", Text
"\x22E9")
    ,(Text
"succsim;", Text
"\x227F")
    ,(Text
"SuchThat;", Text
"\x220B")
    ,(Text
"Sum;", Text
"\x2211")
    ,(Text
"sum;", Text
"\x2211")
    ,(Text
"sung;", Text
"\x266A")
    ,(Text
"sup1", Text
"\x00B9")
    ,(Text
"sup1;", Text
"\x00B9")
    ,(Text
"sup2", Text
"\x00B2")
    ,(Text
"sup2;", Text
"\x00B2")
    ,(Text
"sup3", Text
"\x00B3")
    ,(Text
"sup3;", Text
"\x00B3")
    ,(Text
"sup;", Text
"\x2283")
    ,(Text
"Sup;", Text
"\x22D1")
    ,(Text
"supdot;", Text
"\x2ABE")
    ,(Text
"supdsub;", Text
"\x2AD8")
    ,(Text
"supe;", Text
"\x2287")
    ,(Text
"supE;", Text
"\x2AC6")
    ,(Text
"supedot;", Text
"\x2AC4")
    ,(Text
"Superset;", Text
"\x2283")
    ,(Text
"SupersetEqual;", Text
"\x2287")
    ,(Text
"suphsol;", Text
"\x27C9")
    ,(Text
"suphsub;", Text
"\x2AD7")
    ,(Text
"suplarr;", Text
"\x297B")
    ,(Text
"supmult;", Text
"\x2AC2")
    ,(Text
"supne;", Text
"\x228B")
    ,(Text
"supnE;", Text
"\x2ACC")
    ,(Text
"supplus;", Text
"\x2AC0")
    ,(Text
"supset;", Text
"\x2283")
    ,(Text
"Supset;", Text
"\x22D1")
    ,(Text
"supseteq;", Text
"\x2287")
    ,(Text
"supseteqq;", Text
"\x2AC6")
    ,(Text
"supsetneq;", Text
"\x228B")
    ,(Text
"supsetneqq;", Text
"\x2ACC")
    ,(Text
"supsim;", Text
"\x2AC8")
    ,(Text
"supsub;", Text
"\x2AD4")
    ,(Text
"supsup;", Text
"\x2AD6")
    ,(Text
"swarhk;", Text
"\x2926")
    ,(Text
"swarr;", Text
"\x2199")
    ,(Text
"swArr;", Text
"\x21D9")
    ,(Text
"swarrow;", Text
"\x2199")
    ,(Text
"swnwar;", Text
"\x292A")
    ,(Text
"szlig", Text
"\x00DF")
    ,(Text
"szlig;", Text
"\x00DF")
    ,(Text
"Tab;", Text
"\x0009")
    ,(Text
"target;", Text
"\x2316")
    ,(Text
"Tau;", Text
"\x03A4")
    ,(Text
"tau;", Text
"\x03C4")
    ,(Text
"tbrk;", Text
"\x23B4")
    ,(Text
"Tcaron;", Text
"\x0164")
    ,(Text
"tcaron;", Text
"\x0165")
    ,(Text
"Tcedil;", Text
"\x0162")
    ,(Text
"tcedil;", Text
"\x0163")
    ,(Text
"Tcy;", Text
"\x0422")
    ,(Text
"tcy;", Text
"\x0442")
    ,(Text
"tdot;", Text
"\x20DB")
    ,(Text
"telrec;", Text
"\x2315")
    ,(Text
"Tfr;", Text
"\x1D517")
    ,(Text
"tfr;", Text
"\x1D531")
    ,(Text
"there4;", Text
"\x2234")
    ,(Text
"Therefore;", Text
"\x2234")
    ,(Text
"therefore;", Text
"\x2234")
    ,(Text
"Theta;", Text
"\x0398")
    ,(Text
"theta;", Text
"\x03B8")
    ,(Text
"thetasym;", Text
"\x03D1")
    ,(Text
"thetav;", Text
"\x03D1")
    ,(Text
"thickapprox;", Text
"\x2248")
    ,(Text
"thicksim;", Text
"\x223C")
    ,(Text
"ThickSpace;", Text
"\x205F\x200A")
    ,(Text
"thinsp;", Text
"\x2009")
    ,(Text
"ThinSpace;", Text
"\x2009")
    ,(Text
"thkap;", Text
"\x2248")
    ,(Text
"thksim;", Text
"\x223C")
    ,(Text
"THORN", Text
"\x00DE")
    ,(Text
"thorn", Text
"\x00FE")
    ,(Text
"THORN;", Text
"\x00DE")
    ,(Text
"thorn;", Text
"\x00FE")
    ,(Text
"tilde;", Text
"\x02DC")
    ,(Text
"Tilde;", Text
"\x223C")
    ,(Text
"TildeEqual;", Text
"\x2243")
    ,(Text
"TildeFullEqual;", Text
"\x2245")
    ,(Text
"TildeTilde;", Text
"\x2248")
    ,(Text
"times", Text
"\x00D7")
    ,(Text
"times;", Text
"\x00D7")
    ,(Text
"timesb;", Text
"\x22A0")
    ,(Text
"timesbar;", Text
"\x2A31")
    ,(Text
"timesd;", Text
"\x2A30")
    ,(Text
"tint;", Text
"\x222D")
    ,(Text
"toea;", Text
"\x2928")
    ,(Text
"top;", Text
"\x22A4")
    ,(Text
"topbot;", Text
"\x2336")
    ,(Text
"topcir;", Text
"\x2AF1")
    ,(Text
"Topf;", Text
"\x1D54B")
    ,(Text
"topf;", Text
"\x1D565")
    ,(Text
"topfork;", Text
"\x2ADA")
    ,(Text
"tosa;", Text
"\x2929")
    ,(Text
"tprime;", Text
"\x2034")
    ,(Text
"TRADE;", Text
"\x2122")
    ,(Text
"trade;", Text
"\x2122")
    ,(Text
"triangle;", Text
"\x25B5")
    ,(Text
"triangledown;", Text
"\x25BF")
    ,(Text
"triangleleft;", Text
"\x25C3")
    ,(Text
"trianglelefteq;", Text
"\x22B4")
    ,(Text
"triangleq;", Text
"\x225C")
    ,(Text
"triangleright;", Text
"\x25B9")
    ,(Text
"trianglerighteq;", Text
"\x22B5")
    ,(Text
"tridot;", Text
"\x25EC")
    ,(Text
"trie;", Text
"\x225C")
    ,(Text
"triminus;", Text
"\x2A3A")
    ,(Text
"TripleDot;", Text
"\x20DB")
    ,(Text
"triplus;", Text
"\x2A39")
    ,(Text
"trisb;", Text
"\x29CD")
    ,(Text
"tritime;", Text
"\x2A3B")
    ,(Text
"trpezium;", Text
"\x23E2")
    ,(Text
"Tscr;", Text
"\x1D4AF")
    ,(Text
"tscr;", Text
"\x1D4C9")
    ,(Text
"TScy;", Text
"\x0426")
    ,(Text
"tscy;", Text
"\x0446")
    ,(Text
"TSHcy;", Text
"\x040B")
    ,(Text
"tshcy;", Text
"\x045B")
    ,(Text
"Tstrok;", Text
"\x0166")
    ,(Text
"tstrok;", Text
"\x0167")
    ,(Text
"twixt;", Text
"\x226C")
    ,(Text
"twoheadleftarrow;", Text
"\x219E")
    ,(Text
"twoheadrightarrow;", Text
"\x21A0")
    ,(Text
"Uacute", Text
"\x00DA")
    ,(Text
"uacute", Text
"\x00FA")
    ,(Text
"Uacute;", Text
"\x00DA")
    ,(Text
"uacute;", Text
"\x00FA")
    ,(Text
"uarr;", Text
"\x2191")
    ,(Text
"Uarr;", Text
"\x219F")
    ,(Text
"uArr;", Text
"\x21D1")
    ,(Text
"Uarrocir;", Text
"\x2949")
    ,(Text
"Ubrcy;", Text
"\x040E")
    ,(Text
"ubrcy;", Text
"\x045E")
    ,(Text
"Ubreve;", Text
"\x016C")
    ,(Text
"ubreve;", Text
"\x016D")
    ,(Text
"Ucirc", Text
"\x00DB")
    ,(Text
"ucirc", Text
"\x00FB")
    ,(Text
"Ucirc;", Text
"\x00DB")
    ,(Text
"ucirc;", Text
"\x00FB")
    ,(Text
"Ucy;", Text
"\x0423")
    ,(Text
"ucy;", Text
"\x0443")
    ,(Text
"udarr;", Text
"\x21C5")
    ,(Text
"Udblac;", Text
"\x0170")
    ,(Text
"udblac;", Text
"\x0171")
    ,(Text
"udhar;", Text
"\x296E")
    ,(Text
"ufisht;", Text
"\x297E")
    ,(Text
"Ufr;", Text
"\x1D518")
    ,(Text
"ufr;", Text
"\x1D532")
    ,(Text
"Ugrave", Text
"\x00D9")
    ,(Text
"ugrave", Text
"\x00F9")
    ,(Text
"Ugrave;", Text
"\x00D9")
    ,(Text
"ugrave;", Text
"\x00F9")
    ,(Text
"uHar;", Text
"\x2963")
    ,(Text
"uharl;", Text
"\x21BF")
    ,(Text
"uharr;", Text
"\x21BE")
    ,(Text
"uhblk;", Text
"\x2580")
    ,(Text
"ulcorn;", Text
"\x231C")
    ,(Text
"ulcorner;", Text
"\x231C")
    ,(Text
"ulcrop;", Text
"\x230F")
    ,(Text
"ultri;", Text
"\x25F8")
    ,(Text
"Umacr;", Text
"\x016A")
    ,(Text
"umacr;", Text
"\x016B")
    ,(Text
"uml", Text
"\x00A8")
    ,(Text
"uml;", Text
"\x00A8")
    ,(Text
"UnderBar;", Text
"\x005F")
    ,(Text
"UnderBrace;", Text
"\x23DF")
    ,(Text
"UnderBracket;", Text
"\x23B5")
    ,(Text
"UnderParenthesis;", Text
"\x23DD")
    ,(Text
"Union;", Text
"\x22C3")
    ,(Text
"UnionPlus;", Text
"\x228E")
    ,(Text
"Uogon;", Text
"\x0172")
    ,(Text
"uogon;", Text
"\x0173")
    ,(Text
"Uopf;", Text
"\x1D54C")
    ,(Text
"uopf;", Text
"\x1D566")
    ,(Text
"UpArrow;", Text
"\x2191")
    ,(Text
"uparrow;", Text
"\x2191")
    ,(Text
"Uparrow;", Text
"\x21D1")
    ,(Text
"UpArrowBar;", Text
"\x2912")
    ,(Text
"UpArrowDownArrow;", Text
"\x21C5")
    ,(Text
"UpDownArrow;", Text
"\x2195")
    ,(Text
"updownarrow;", Text
"\x2195")
    ,(Text
"Updownarrow;", Text
"\x21D5")
    ,(Text
"UpEquilibrium;", Text
"\x296E")
    ,(Text
"upharpoonleft;", Text
"\x21BF")
    ,(Text
"upharpoonright;", Text
"\x21BE")
    ,(Text
"uplus;", Text
"\x228E")
    ,(Text
"UpperLeftArrow;", Text
"\x2196")
    ,(Text
"UpperRightArrow;", Text
"\x2197")
    ,(Text
"upsi;", Text
"\x03C5")
    ,(Text
"Upsi;", Text
"\x03D2")
    ,(Text
"upsih;", Text
"\x03D2")
    ,(Text
"Upsilon;", Text
"\x03A5")
    ,(Text
"upsilon;", Text
"\x03C5")
    ,(Text
"UpTee;", Text
"\x22A5")
    ,(Text
"UpTeeArrow;", Text
"\x21A5")
    ,(Text
"upuparrows;", Text
"\x21C8")
    ,(Text
"urcorn;", Text
"\x231D")
    ,(Text
"urcorner;", Text
"\x231D")
    ,(Text
"urcrop;", Text
"\x230E")
    ,(Text
"Uring;", Text
"\x016E")
    ,(Text
"uring;", Text
"\x016F")
    ,(Text
"urtri;", Text
"\x25F9")
    ,(Text
"Uscr;", Text
"\x1D4B0")
    ,(Text
"uscr;", Text
"\x1D4CA")
    ,(Text
"utdot;", Text
"\x22F0")
    ,(Text
"Utilde;", Text
"\x0168")
    ,(Text
"utilde;", Text
"\x0169")
    ,(Text
"utri;", Text
"\x25B5")
    ,(Text
"utrif;", Text
"\x25B4")
    ,(Text
"uuarr;", Text
"\x21C8")
    ,(Text
"Uuml", Text
"\x00DC")
    ,(Text
"uuml", Text
"\x00FC")
    ,(Text
"Uuml;", Text
"\x00DC")
    ,(Text
"uuml;", Text
"\x00FC")
    ,(Text
"uwangle;", Text
"\x29A7")
    ,(Text
"vangrt;", Text
"\x299C")
    ,(Text
"varepsilon;", Text
"\x03F5")
    ,(Text
"varkappa;", Text
"\x03F0")
    ,(Text
"varnothing;", Text
"\x2205")
    ,(Text
"varphi;", Text
"\x03D5")
    ,(Text
"varpi;", Text
"\x03D6")
    ,(Text
"varpropto;", Text
"\x221D")
    ,(Text
"varr;", Text
"\x2195")
    ,(Text
"vArr;", Text
"\x21D5")
    ,(Text
"varrho;", Text
"\x03F1")
    ,(Text
"varsigma;", Text
"\x03C2")
    ,(Text
"varsubsetneq;", Text
"\x228A\xFE00")
    ,(Text
"varsubsetneqq;", Text
"\x2ACB\xFE00")
    ,(Text
"varsupsetneq;", Text
"\x228B\xFE00")
    ,(Text
"varsupsetneqq;", Text
"\x2ACC\xFE00")
    ,(Text
"vartheta;", Text
"\x03D1")
    ,(Text
"vartriangleleft;", Text
"\x22B2")
    ,(Text
"vartriangleright;", Text
"\x22B3")
    ,(Text
"vBar;", Text
"\x2AE8")
    ,(Text
"Vbar;", Text
"\x2AEB")
    ,(Text
"vBarv;", Text
"\x2AE9")
    ,(Text
"Vcy;", Text
"\x0412")
    ,(Text
"vcy;", Text
"\x0432")
    ,(Text
"vdash;", Text
"\x22A2")
    ,(Text
"vDash;", Text
"\x22A8")
    ,(Text
"Vdash;", Text
"\x22A9")
    ,(Text
"VDash;", Text
"\x22AB")
    ,(Text
"Vdashl;", Text
"\x2AE6")
    ,(Text
"vee;", Text
"\x2228")
    ,(Text
"Vee;", Text
"\x22C1")
    ,(Text
"veebar;", Text
"\x22BB")
    ,(Text
"veeeq;", Text
"\x225A")
    ,(Text
"vellip;", Text
"\x22EE")
    ,(Text
"verbar;", Text
"\x007C")
    ,(Text
"Verbar;", Text
"\x2016")
    ,(Text
"vert;", Text
"\x007C")
    ,(Text
"Vert;", Text
"\x2016")
    ,(Text
"VerticalBar;", Text
"\x2223")
    ,(Text
"VerticalLine;", Text
"\x007C")
    ,(Text
"VerticalSeparator;", Text
"\x2758")
    ,(Text
"VerticalTilde;", Text
"\x2240")
    ,(Text
"VeryThinSpace;", Text
"\x200A")
    ,(Text
"Vfr;", Text
"\x1D519")
    ,(Text
"vfr;", Text
"\x1D533")
    ,(Text
"vltri;", Text
"\x22B2")
    ,(Text
"vnsub;", Text
"\x2282\x20D2")
    ,(Text
"vnsup;", Text
"\x2283\x20D2")
    ,(Text
"Vopf;", Text
"\x1D54D")
    ,(Text
"vopf;", Text
"\x1D567")
    ,(Text
"vprop;", Text
"\x221D")
    ,(Text
"vrtri;", Text
"\x22B3")
    ,(Text
"Vscr;", Text
"\x1D4B1")
    ,(Text
"vscr;", Text
"\x1D4CB")
    ,(Text
"vsubne;", Text
"\x228A\xFE00")
    ,(Text
"vsubnE;", Text
"\x2ACB\xFE00")
    ,(Text
"vsupne;", Text
"\x228B\xFE00")
    ,(Text
"vsupnE;", Text
"\x2ACC\xFE00")
    ,(Text
"Vvdash;", Text
"\x22AA")
    ,(Text
"vzigzag;", Text
"\x299A")
    ,(Text
"Wcirc;", Text
"\x0174")
    ,(Text
"wcirc;", Text
"\x0175")
    ,(Text
"wedbar;", Text
"\x2A5F")
    ,(Text
"wedge;", Text
"\x2227")
    ,(Text
"Wedge;", Text
"\x22C0")
    ,(Text
"wedgeq;", Text
"\x2259")
    ,(Text
"weierp;", Text
"\x2118")
    ,(Text
"Wfr;", Text
"\x1D51A")
    ,(Text
"wfr;", Text
"\x1D534")
    ,(Text
"Wopf;", Text
"\x1D54E")
    ,(Text
"wopf;", Text
"\x1D568")
    ,(Text
"wp;", Text
"\x2118")
    ,(Text
"wr;", Text
"\x2240")
    ,(Text
"wreath;", Text
"\x2240")
    ,(Text
"Wscr;", Text
"\x1D4B2")
    ,(Text
"wscr;", Text
"\x1D4CC")
    ,(Text
"xcap;", Text
"\x22C2")
    ,(Text
"xcirc;", Text
"\x25EF")
    ,(Text
"xcup;", Text
"\x22C3")
    ,(Text
"xdtri;", Text
"\x25BD")
    ,(Text
"Xfr;", Text
"\x1D51B")
    ,(Text
"xfr;", Text
"\x1D535")
    ,(Text
"xharr;", Text
"\x27F7")
    ,(Text
"xhArr;", Text
"\x27FA")
    ,(Text
"Xi;", Text
"\x039E")
    ,(Text
"xi;", Text
"\x03BE")
    ,(Text
"xlarr;", Text
"\x27F5")
    ,(Text
"xlArr;", Text
"\x27F8")
    ,(Text
"xmap;", Text
"\x27FC")
    ,(Text
"xnis;", Text
"\x22FB")
    ,(Text
"xodot;", Text
"\x2A00")
    ,(Text
"Xopf;", Text
"\x1D54F")
    ,(Text
"xopf;", Text
"\x1D569")
    ,(Text
"xoplus;", Text
"\x2A01")
    ,(Text
"xotime;", Text
"\x2A02")
    ,(Text
"xrarr;", Text
"\x27F6")
    ,(Text
"xrArr;", Text
"\x27F9")
    ,(Text
"Xscr;", Text
"\x1D4B3")
    ,(Text
"xscr;", Text
"\x1D4CD")
    ,(Text
"xsqcup;", Text
"\x2A06")
    ,(Text
"xuplus;", Text
"\x2A04")
    ,(Text
"xutri;", Text
"\x25B3")
    ,(Text
"xvee;", Text
"\x22C1")
    ,(Text
"xwedge;", Text
"\x22C0")
    ,(Text
"Yacute", Text
"\x00DD")
    ,(Text
"yacute", Text
"\x00FD")
    ,(Text
"Yacute;", Text
"\x00DD")
    ,(Text
"yacute;", Text
"\x00FD")
    ,(Text
"YAcy;", Text
"\x042F")
    ,(Text
"yacy;", Text
"\x044F")
    ,(Text
"Ycirc;", Text
"\x0176")
    ,(Text
"ycirc;", Text
"\x0177")
    ,(Text
"Ycy;", Text
"\x042B")
    ,(Text
"ycy;", Text
"\x044B")
    ,(Text
"yen", Text
"\x00A5")
    ,(Text
"yen;", Text
"\x00A5")
    ,(Text
"Yfr;", Text
"\x1D51C")
    ,(Text
"yfr;", Text
"\x1D536")
    ,(Text
"YIcy;", Text
"\x0407")
    ,(Text
"yicy;", Text
"\x0457")
    ,(Text
"Yopf;", Text
"\x1D550")
    ,(Text
"yopf;", Text
"\x1D56A")
    ,(Text
"Yscr;", Text
"\x1D4B4")
    ,(Text
"yscr;", Text
"\x1D4CE")
    ,(Text
"YUcy;", Text
"\x042E")
    ,(Text
"yucy;", Text
"\x044E")
    ,(Text
"yuml", Text
"\x00FF")
    ,(Text
"yuml;", Text
"\x00FF")
    ,(Text
"Yuml;", Text
"\x0178")
    ,(Text
"Zacute;", Text
"\x0179")
    ,(Text
"zacute;", Text
"\x017A")
    ,(Text
"Zcaron;", Text
"\x017D")
    ,(Text
"zcaron;", Text
"\x017E")
    ,(Text
"Zcy;", Text
"\x0417")
    ,(Text
"zcy;", Text
"\x0437")
    ,(Text
"Zdot;", Text
"\x017B")
    ,(Text
"zdot;", Text
"\x017C")
    ,(Text
"zeetrf;", Text
"\x2128")
    ,(Text
"ZeroWidthSpace;", Text
"\x200B")
    ,(Text
"Zeta;", Text
"\x0396")
    ,(Text
"zeta;", Text
"\x03B6")
    ,(Text
"Zfr;", Text
"\x2128")
    ,(Text
"zfr;", Text
"\x1D537")
    ,(Text
"ZHcy;", Text
"\x0416")
    ,(Text
"zhcy;", Text
"\x0436")
    ,(Text
"zigrarr;", Text
"\x21DD")
    ,(Text
"Zopf;", Text
"\x2124")
    ,(Text
"zopf;", Text
"\x1D56B")
    ,(Text
"Zscr;", Text
"\x1D4B5")
    ,(Text
"zscr;", Text
"\x1D4CF")
    ,(Text
"zwj;", Text
"\x200D")
    ,(Text
"zwnj;", Text
"\x200C")
    ]

charEntity :: Monad m => ParsecT [Tok] s m [Tok]
charEntity :: ParsecT [Tok] s m [Tok]
charEntity = do
  wc :: Tok
wc@(Tok TokType
WordChars SourcePos
_ Text
ts) <- (Tok -> Bool) -> ParsecT [Tok] s m Tok
forall (m :: * -> *) s.
Monad m =>
(Tok -> Bool) -> ParsecT [Tok] s m Tok
satisfyTok (TokType -> Tok -> Bool
hasType TokType
WordChars)
  Tok
semi <- Char -> ParsecT [Tok] s m Tok
forall (m :: * -> *) s. Monad m => Char -> ParsecT [Tok] s m Tok
symbol Char
';'
  Bool -> ParsecT [Tok] s m ()
forall (f :: * -> *). Alternative f => Bool -> f ()
guard (Bool -> ParsecT [Tok] s m ()) -> Bool -> ParsecT [Tok] s m ()
forall a b. (a -> b) -> a -> b
$ Maybe Text -> Bool
forall a. Maybe a -> Bool
isJust (Maybe Text -> Bool) -> Maybe Text -> Bool
forall a b. (a -> b) -> a -> b
$ Text -> Maybe Text
lookupEntity (Text
ts Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
";")
  [Tok] -> ParsecT [Tok] s m [Tok]
forall (m :: * -> *) a. Monad m => a -> m a
return [Tok
wc, Tok
semi]

numEntity :: Monad m => ParsecT [Tok] s m [Tok]
numEntity :: ParsecT [Tok] s m [Tok]
numEntity = do
  Tok
octo <- Char -> ParsecT [Tok] s m Tok
forall (m :: * -> *) s. Monad m => Char -> ParsecT [Tok] s m Tok
symbol Char
'#'
  wc :: Tok
wc@(Tok TokType
WordChars SourcePos
_ Text
t) <- (Tok -> Bool) -> ParsecT [Tok] s m Tok
forall (m :: * -> *) s.
Monad m =>
(Tok -> Bool) -> ParsecT [Tok] s m Tok
satisfyTok (TokType -> Tok -> Bool
hasType TokType
WordChars)
  Bool -> ParsecT [Tok] s m ()
forall (f :: * -> *). Alternative f => Bool -> f ()
guard (Bool -> ParsecT [Tok] s m ()) -> Bool -> ParsecT [Tok] s m ()
forall a b. (a -> b) -> a -> b
$
    case Text -> Maybe (Char, Text)
T.uncons Text
t of
         Just (Char
x, Text
rest)
          | Char
x Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'x' Bool -> Bool -> Bool
|| Char
x Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'X' ->
            (Char -> Bool) -> Text -> Bool
T.all Char -> Bool
isHexDigit Text
rest Bool -> Bool -> Bool
&&
            Bool -> Bool
not (Text -> Bool
T.null Text
rest) Bool -> Bool -> Bool
&&
            Text -> Int
T.length Text
rest Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<= Int
6
          | Bool
otherwise -> (Char -> Bool) -> Text -> Bool
T.all Char -> Bool
isDigit Text
t Bool -> Bool -> Bool
&&
            Text -> Int
T.length Text
t Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<= Int
7
         Maybe (Char, Text)
_ -> Bool
False
  Tok
semi <- Char -> ParsecT [Tok] s m Tok
forall (m :: * -> *) s. Monad m => Char -> ParsecT [Tok] s m Tok
symbol Char
';'
  [Tok] -> ParsecT [Tok] s m [Tok]
forall (m :: * -> *) a. Monad m => a -> m a
return [Tok
octo, Tok
wc, Tok
semi]

unEntity :: [Tok] -> Text
unEntity :: [Tok] -> Text
unEntity [Tok]
ts = [Tok] -> Text
untokenize ([Tok] -> Text) -> [Tok] -> Text
forall a b. (a -> b) -> a -> b
$
  case Parsec [Tok] () [Tok] -> String -> [Tok] -> Either ParseError [Tok]
forall s t a.
Stream s Identity t =>
Parsec s () a -> String -> s -> Either ParseError a
parse (ParsecT [Tok] () Identity Tok -> Parsec [Tok] () [Tok]
forall s u (m :: * -> *) a. ParsecT s u m a -> ParsecT s u m [a]
many (ParsecT [Tok] () Identity Tok
pEntity' ParsecT [Tok] () Identity Tok
-> ParsecT [Tok] () Identity Tok -> ParsecT [Tok] () Identity Tok
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|> ParsecT [Tok] () Identity Tok
forall (m :: * -> *) s. Monad m => ParsecT [Tok] s m Tok
anyTok)) String
"" [Tok]
ts of
        Left ParseError
_    -> [Tok]
ts
        Right [Tok]
ts' -> [Tok]
ts'
  where pEntity' :: ParsecT [Tok] () Identity Tok
        pEntity' :: ParsecT [Tok] () Identity Tok
pEntity' = ParsecT [Tok] () Identity Tok -> ParsecT [Tok] () Identity Tok
forall s u (m :: * -> *) a. ParsecT s u m a -> ParsecT s u m a
try (ParsecT [Tok] () Identity Tok -> ParsecT [Tok] () Identity Tok)
-> ParsecT [Tok] () Identity Tok -> ParsecT [Tok] () Identity Tok
forall a b. (a -> b) -> a -> b
$ do
          SourcePos
pos <- ParsecT [Tok] () Identity SourcePos
forall (m :: * -> *) s u. Monad m => ParsecT s u m SourcePos
getPosition
          Char -> ParsecT [Tok] () Identity Tok
forall (m :: * -> *) s. Monad m => Char -> ParsecT [Tok] s m Tok
symbol Char
'&'
          Text
ent <- [Tok] -> Text
untokenize ([Tok] -> Text)
-> Parsec [Tok] () [Tok] -> ParsecT [Tok] () Identity Text
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Parsec [Tok] () [Tok]
forall (m :: * -> *) s. Monad m => ParsecT [Tok] s m [Tok]
numEntity Parsec [Tok] () [Tok]
-> Parsec [Tok] () [Tok] -> Parsec [Tok] () [Tok]
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|> Parsec [Tok] () [Tok]
forall (m :: * -> *) s. Monad m => ParsecT [Tok] s m [Tok]
charEntity)
          case Text -> Maybe Text
lookupEntity Text
ent of
                Just Text
s  -> Tok -> ParsecT [Tok] () Identity Tok
forall (m :: * -> *) a. Monad m => a -> m a
return (Tok -> ParsecT [Tok] () Identity Tok)
-> Tok -> ParsecT [Tok] () Identity Tok
forall a b. (a -> b) -> a -> b
$ TokType -> SourcePos -> Text -> Tok
Tok TokType
WordChars SourcePos
pos Text
s
                Maybe Text
Nothing -> ParsecT [Tok] () Identity Tok
forall (m :: * -> *) a. MonadPlus m => m a
mzero