{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS -Wno-name-shadowing #-}
module Text.HTML.TagStew.Entity(
lookupEntity
) where
import Data.Char (chr, ord)
import Data.Ix
import qualified Data.HashMap.Strict as HM
import Numeric (readHex)
import qualified Data.ByteString.Short as SB
import qualified Data.ByteString.Char8 as B
import Data.Compact
import Data.Text.Encoding (encodeUtf8)
import qualified Data.Text as T
import System.IO.Unsafe
lookupEntity :: B.ByteString -> Maybe B.ByteString
lookupEntity bs
| B.head bs == '#' = lookupNumericEntity (B.tail bs)
| otherwise = lookupNamedEntity bs
lookupNumericEntity :: B.ByteString -> Maybe B.ByteString
lookupNumericEntity = fmap (encodeUtf8 . T.pack) . f . B.unpack
where
f (x:xs) | x `elem` ("xX" :: String) = 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
lookupNamedEntity :: B.ByteString -> Maybe B.ByteString
lookupNamedEntity x = SB.fromShort <$> HM.lookup (SB.toShort x) (getCompact htmlEntities)
htmlEntities :: Compact (HM.HashMap SB.ShortByteString SB.ShortByteString)
htmlEntities = unsafePerformIO $ compact $ HM.fromList $ let a * b = (a, SB.toShort $ encodeUtf8 b) 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"
]