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