Skip to content

Instantly share code, notes, and snippets.

@x0rb0t
Created November 3, 2020 20:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save x0rb0t/a6c190dbefdfedad71143ff7f8153588 to your computer and use it in GitHub Desktop.
Save x0rb0t/a6c190dbefdfedad71143ff7f8153588 to your computer and use it in GitHub Desktop.
Mapping from XML/HTML character entity reference to character
// Mapping from XML/HTML character entity reference to character
// From http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references
private let characterEntities : [ Substring : Character ] = [
// HTML character entity references:
"	" : "\u{9}",
"
" : "\u{A}",
"!" : "\u{21}",
""" : "\u{22}",
""" : "\u{22}",
"#" : "\u{23}",
"$" : "\u{24}",
"%" : "\u{25}",
"&" : "\u{26}",
"&" : "\u{26}",
"'" : "\u{27}",
"(" : "\u{28}",
")" : "\u{29}",
"*" : "\u{2A}",
"*" : "\u{2A}",
"+" : "\u{2B}",
"," : "\u{2C}",
"." : "\u{2E}",
"/" : "\u{2F}",
":" : "\u{3A}",
";" : "\u{3B}",
"<" : "\u{3C}",
"<" : "\u{3C}",
"=" : "\u{3D}",
">" : "\u{3E}",
">" : "\u{3E}",
"?" : "\u{3F}",
"@" : "\u{40}",
"[" : "\u{5B}",
"[" : "\u{5B}",
"\" : "\u{5C}",
"]" : "\u{5D}",
"]" : "\u{5D}",
"^" : "\u{5E}",
"_" : "\u{5F}",
"`" : "\u{60}",
"`" : "\u{60}",
"{" : "\u{7B}",
"{" : "\u{7B}",
"|" : "\u{7C}",
"|" : "\u{7C}",
"|" : "\u{7C}",
"}" : "\u{7D}",
"}" : "\u{7D}",
" " : "\u{A0}",
" " : "\u{A0}",
"¡" : "\u{A1}",
"¢" : "\u{A2}",
"£" : "\u{A3}",
"¤" : "\u{A4}",
"¥" : "\u{A5}",
"¦" : "\u{A6}",
"§" : "\u{A7}",
"¨" : "\u{A8}",
"¨" : "\u{A8}",
"¨" : "\u{A8}",
"¨" : "\u{A8}",
"©" : "\u{A9}",
"©" : "\u{A9}",
"ª" : "\u{AA}",
"«" : "\u{AB}",
"¬" : "\u{AC}",
"­" : "\u{AD}",
"®" : "\u{AE}",
"®" : "\u{AE}",
"®" : "\u{AE}",
"¯" : "\u{AF}",
"‾" : "\u{AF}",
"¯" : "\u{AF}",
"°" : "\u{B0}",
"±" : "\u{B1}",
"±" : "\u{B1}",
"±" : "\u{B1}",
"²" : "\u{B2}",
"³" : "\u{B3}",
"´" : "\u{B4}",
"´" : "\u{B4}",
"µ" : "\u{B5}",
"¶" : "\u{B6}",
"·" : "\u{B7}",
"·" : "\u{B7}",
"·" : "\u{B7}",
"¸" : "\u{B8}",
"¸" : "\u{B8}",
"¹" : "\u{B9}",
"º" : "\u{BA}",
"»" : "\u{BB}",
"¼" : "\u{BC}",
"½" : "\u{BD}",
"½" : "\u{BD}",
"¾" : "\u{BE}",
"¿" : "\u{BF}",
"À" : "\u{C0}",
"Á" : "\u{C1}",
"Â" : "\u{C2}",
"Ã" : "\u{C3}",
"Ä" : "\u{C4}",
"Å" : "\u{C5}",
"Æ" : "\u{C6}",
"Ç" : "\u{C7}",
"È" : "\u{C8}",
"É" : "\u{C9}",
"Ê" : "\u{CA}",
"Ë" : "\u{CB}",
"Ì" : "\u{CC}",
"Í" : "\u{CD}",
"Î" : "\u{CE}",
"Ï" : "\u{CF}",
"Ð" : "\u{D0}",
"Ñ" : "\u{D1}",
"Ò" : "\u{D2}",
"Ó" : "\u{D3}",
"Ô" : "\u{D4}",
"Õ" : "\u{D5}",
"Ö" : "\u{D6}",
"×" : "\u{D7}",
"Ø" : "\u{D8}",
"Ù" : "\u{D9}",
"Ú" : "\u{DA}",
"Û" : "\u{DB}",
"Ü" : "\u{DC}",
"Ý" : "\u{DD}",
"Þ" : "\u{DE}",
"ß" : "\u{DF}",
"à" : "\u{E0}",
"á" : "\u{E1}",
"â" : "\u{E2}",
"ã" : "\u{E3}",
"ä" : "\u{E4}",
"å" : "\u{E5}",
"æ" : "\u{E6}",
"ç" : "\u{E7}",
"è" : "\u{E8}",
"é" : "\u{E9}",
"ê" : "\u{EA}",
"ë" : "\u{EB}",
"ì" : "\u{EC}",
"í" : "\u{ED}",
"î" : "\u{EE}",
"ï" : "\u{EF}",
"ð" : "\u{F0}",
"ñ" : "\u{F1}",
"ò" : "\u{F2}",
"ó" : "\u{F3}",
"ô" : "\u{F4}",
"õ" : "\u{F5}",
"ö" : "\u{F6}",
"÷" : "\u{F7}",
"÷" : "\u{F7}",
"ø" : "\u{F8}",
"ù" : "\u{F9}",
"ú" : "\u{FA}",
"û" : "\u{FB}",
"ü" : "\u{FC}",
"ý" : "\u{FD}",
"þ" : "\u{FE}",
"ÿ" : "\u{FF}",
"Ā" : "\u{100}",
"ā" : "\u{101}",
"Ă" : "\u{102}",
"ă" : "\u{103}",
"Ą" : "\u{104}",
"ą" : "\u{105}",
"Ć" : "\u{106}",
"ć" : "\u{107}",
"Ĉ" : "\u{108}",
"ĉ" : "\u{109}",
"Ċ" : "\u{10A}",
"ċ" : "\u{10B}",
"Č" : "\u{10C}",
"č" : "\u{10D}",
"Ď" : "\u{10E}",
"ď" : "\u{10F}",
"Đ" : "\u{110}",
"đ" : "\u{111}",
"Ē" : "\u{112}",
"ē" : "\u{113}",
"Ė" : "\u{116}",
"ė" : "\u{117}",
"Ę" : "\u{118}",
"ę" : "\u{119}",
"Ě" : "\u{11A}",
"ě" : "\u{11B}",
"Ĝ" : "\u{11C}",
"ĝ" : "\u{11D}",
"Ğ" : "\u{11E}",
"ğ" : "\u{11F}",
"Ġ" : "\u{120}",
"ġ" : "\u{121}",
"Ģ" : "\u{122}",
"Ĥ" : "\u{124}",
"ĥ" : "\u{125}",
"Ħ" : "\u{126}",
"ħ" : "\u{127}",
"Ĩ" : "\u{128}",
"ĩ" : "\u{129}",
"Ī" : "\u{12A}",
"ī" : "\u{12B}",
"Į" : "\u{12E}",
"į" : "\u{12F}",
"İ" : "\u{130}",
"ı" : "\u{131}",
"ı" : "\u{131}",
"IJ" : "\u{132}",
"ij" : "\u{133}",
"Ĵ" : "\u{134}",
"ĵ" : "\u{135}",
"Ķ" : "\u{136}",
"ķ" : "\u{137}",
"ĸ" : "\u{138}",
"Ĺ" : "\u{139}",
"ĺ" : "\u{13A}",
"Ļ" : "\u{13B}",
"ļ" : "\u{13C}",
"Ľ" : "\u{13D}",
"ľ" : "\u{13E}",
"Ŀ" : "\u{13F}",
"ŀ" : "\u{140}",
"Ł" : "\u{141}",
"ł" : "\u{142}",
"Ń" : "\u{143}",
"ń" : "\u{144}",
"Ņ" : "\u{145}",
"ņ" : "\u{146}",
"Ň" : "\u{147}",
"ň" : "\u{148}",
"ʼn" : "\u{149}",
"Ŋ" : "\u{14A}",
"ŋ" : "\u{14B}",
"Ō" : "\u{14C}",
"ō" : "\u{14D}",
"Ő" : "\u{150}",
"ő" : "\u{151}",
"Œ" : "\u{152}",
"œ" : "\u{153}",
"Ŕ" : "\u{154}",
"ŕ" : "\u{155}",
"Ŗ" : "\u{156}",
"ŗ" : "\u{157}",
"Ř" : "\u{158}",
"ř" : "\u{159}",
"Ś" : "\u{15A}",
"ś" : "\u{15B}",
"Ŝ" : "\u{15C}",
"ŝ" : "\u{15D}",
"Ş" : "\u{15E}",
"ş" : "\u{15F}",
"Š" : "\u{160}",
"š" : "\u{161}",
"Ţ" : "\u{162}",
"ţ" : "\u{163}",
"Ť" : "\u{164}",
"ť" : "\u{165}",
"Ŧ" : "\u{166}",
"ŧ" : "\u{167}",
"Ũ" : "\u{168}",
"ũ" : "\u{169}",
"Ū" : "\u{16A}",
"ū" : "\u{16B}",
"Ŭ" : "\u{16C}",
"ŭ" : "\u{16D}",
"Ů" : "\u{16E}",
"ů" : "\u{16F}",
"Ű" : "\u{170}",
"ű" : "\u{171}",
"Ų" : "\u{172}",
"ų" : "\u{173}",
"Ŵ" : "\u{174}",
"ŵ" : "\u{175}",
"Ŷ" : "\u{176}",
"ŷ" : "\u{177}",
"Ÿ" : "\u{178}",
"Ź" : "\u{179}",
"ź" : "\u{17A}",
"Ż" : "\u{17B}",
"ż" : "\u{17C}",
"Ž" : "\u{17D}",
"ž" : "\u{17E}",
"ƒ" : "\u{192}",
"Ƶ" : "\u{1B5}",
"ǵ" : "\u{1F5}",
"ȷ" : "\u{237}",
"ˆ" : "\u{2C6}",
"ˇ" : "\u{2C7}",
"ˇ" : "\u{2C7}",
"˘" : "\u{2D8}",
"˘" : "\u{2D8}",
"˙" : "\u{2D9}",
"˙" : "\u{2D9}",
"˚" : "\u{2DA}",
"˛" : "\u{2DB}",
"˜" : "\u{2DC}",
"˜" : "\u{2DC}",
"˝" : "\u{2DD}",
"˝" : "\u{2DD}",
"̑" : "\u{311}",
"_" : "\u{332}",
"Α" : "\u{391}",
"Β" : "\u{392}",
"Γ" : "\u{393}",
"Δ" : "\u{394}",
"Ε" : "\u{395}",
"Ζ" : "\u{396}",
"Η" : "\u{397}",
"Θ" : "\u{398}",
"Ι" : "\u{399}",
"Κ" : "\u{39A}",
"Λ" : "\u{39B}",
"Μ" : "\u{39C}",
"Ν" : "\u{39D}",
"Ξ" : "\u{39E}",
"Ο" : "\u{39F}",
"Π" : "\u{3A0}",
"Ρ" : "\u{3A1}",
"Σ" : "\u{3A3}",
"Τ" : "\u{3A4}",
"Υ" : "\u{3A5}",
"Φ" : "\u{3A6}",
"Χ" : "\u{3A7}",
"Ψ" : "\u{3A8}",
"Ω" : "\u{3A9}",
"α" : "\u{3B1}",
"β" : "\u{3B2}",
"γ" : "\u{3B3}",
"δ" : "\u{3B4}",
"ϵ" : "\u{3B5}",
"ϵ" : "\u{3B5}",
"ε" : "\u{3B5}",
"ζ" : "\u{3B6}",
"η" : "\u{3B7}",
"θ" : "\u{3B8}",
"ι" : "\u{3B9}",
"κ" : "\u{3BA}",
"λ" : "\u{3BB}",
"μ" : "\u{3BC}",
"ν" : "\u{3BD}",
"ξ" : "\u{3BE}",
"ο" : "\u{3BF}",
"π" : "\u{3C0}",
"ρ" : "\u{3C1}",
"ς" : "\u{3C2}",
"ς" : "\u{3C2}",
"ς" : "\u{3C2}",
"σ" : "\u{3C3}",
"τ" : "\u{3C4}",
"υ" : "\u{3C5}",
"υ" : "\u{3C5}",
"φ" : "\u{3C6}",
"ϕ" : "\u{3C6}",
"ϕ" : "\u{3C6}",
"χ" : "\u{3C7}",
"ψ" : "\u{3C8}",
"ω" : "\u{3C9}",
"ϑ" : "\u{3D1}",
"ϑ" : "\u{3D1}",
"ϑ" : "\u{3D1}",
"ϒ" : "\u{3D2}",
"ϒ" : "\u{3D2}",
"ϕ" : "\u{3D5}",
"ϖ" : "\u{3D6}",
"ϖ" : "\u{3D6}",
"Ϝ" : "\u{3DC}",
"ϝ" : "\u{3DD}",
"ϝ" : "\u{3DD}",
"ϰ" : "\u{3F0}",
"ϰ" : "\u{3F0}",
"ϱ" : "\u{3F1}",
"ϱ" : "\u{3F1}",
"ε" : "\u{3F5}",
"ϵ" : "\u{3F5}",
"϶" : "\u{3F6}",
"϶" : "\u{3F6}",
"Ё" : "\u{401}",
"Ђ" : "\u{402}",
"Ѓ" : "\u{403}",
"Є" : "\u{404}",
"Ѕ" : "\u{405}",
"І" : "\u{406}",
"Ї" : "\u{407}",
"Ј" : "\u{408}",
"Љ" : "\u{409}",
"Њ" : "\u{40A}",
"Ћ" : "\u{40B}",
"Ќ" : "\u{40C}",
"Ў" : "\u{40E}",
"Џ" : "\u{40F}",
"А" : "\u{410}",
"Б" : "\u{411}",
"В" : "\u{412}",
"Г" : "\u{413}",
"Д" : "\u{414}",
"Е" : "\u{415}",
"Ж" : "\u{416}",
"З" : "\u{417}",
"И" : "\u{418}",
"Й" : "\u{419}",
"К" : "\u{41A}",
"Л" : "\u{41B}",
"М" : "\u{41C}",
"Н" : "\u{41D}",
"О" : "\u{41E}",
"П" : "\u{41F}",
"Р" : "\u{420}",
"С" : "\u{421}",
"Т" : "\u{422}",
"У" : "\u{423}",
"Ф" : "\u{424}",
"Х" : "\u{425}",
"Ц" : "\u{426}",
"Ч" : "\u{427}",
"Ш" : "\u{428}",
"Щ" : "\u{429}",
"Ъ" : "\u{42A}",
"Ы" : "\u{42B}",
"Ь" : "\u{42C}",
"Э" : "\u{42D}",
"Ю" : "\u{42E}",
"Я" : "\u{42F}",
"а" : "\u{430}",
"б" : "\u{431}",
"в" : "\u{432}",
"г" : "\u{433}",
"д" : "\u{434}",
"е" : "\u{435}",
"ж" : "\u{436}",
"з" : "\u{437}",
"и" : "\u{438}",
"й" : "\u{439}",
"к" : "\u{43A}",
"л" : "\u{43B}",
"м" : "\u{43C}",
"н" : "\u{43D}",
"о" : "\u{43E}",
"п" : "\u{43F}",
"р" : "\u{440}",
"с" : "\u{441}",
"т" : "\u{442}",
"у" : "\u{443}",
"ф" : "\u{444}",
"х" : "\u{445}",
"ц" : "\u{446}",
"ч" : "\u{447}",
"ш" : "\u{448}",
"щ" : "\u{449}",
"ъ" : "\u{44A}",
"ы" : "\u{44B}",
"ь" : "\u{44C}",
"э" : "\u{44D}",
"ю" : "\u{44E}",
"я" : "\u{44F}",
"ё" : "\u{451}",
"ђ" : "\u{452}",
"ѓ" : "\u{453}",
"є" : "\u{454}",
"ѕ" : "\u{455}",
"і" : "\u{456}",
"ї" : "\u{457}",
"ј" : "\u{458}",
"љ" : "\u{459}",
"њ" : "\u{45A}",
"ћ" : "\u{45B}",
"ќ" : "\u{45C}",
"ў" : "\u{45E}",
"џ" : "\u{45F}",
" " : "\u{2002}",
" " : "\u{2003}",
" " : "\u{2004}",
" " : "\u{2005}",
" " : "\u{2007}",
" " : "\u{2008}",
" " : "\u{2009}",
" " : "\u{2009}",
" " : "\u{200A}",
" " : "\u{200A}",
"​" : "\u{200B}",
"​" : "\u{200B}",
"​" : "\u{200B}",
"​" : "\u{200B}",
"​" : "\u{200B}",
"‌" : "\u{200C}",
"‍" : "\u{200D}",
"‎" : "\u{200E}",
"‏" : "\u{200F}",
"‐" : "\u{2010}",
"‐" : "\u{2010}",
"–" : "\u{2013}",
"—" : "\u{2014}",
"―" : "\u{2015}",
"‖" : "\u{2016}",
"‖" : "\u{2016}",
"‘" : "\u{2018}",
"‘" : "\u{2018}",
"’" : "\u{2019}",
"’" : "\u{2019}",
"’" : "\u{2019}",
"‚" : "\u{201A}",
"‚" : "\u{201A}",
"“" : "\u{201C}",
"“" : "\u{201C}",
"”" : "\u{201D}",
"”" : "\u{201D}",
"”" : "\u{201D}",
"„" : "\u{201E}",
"„" : "\u{201E}",
"†" : "\u{2020}",
"‡" : "\u{2021}",
"‡" : "\u{2021}",
"•" : "\u{2022}",
"•" : "\u{2022}",
"‥" : "\u{2025}",
"…" : "\u{2026}",
"…" : "\u{2026}",
"‰" : "\u{2030}",
"‱" : "\u{2031}",
"′" : "\u{2032}",
"″" : "\u{2033}",
"‴" : "\u{2034}",
"‵" : "\u{2035}",
"‵" : "\u{2035}",
"‹" : "\u{2039}",
"›" : "\u{203A}",
"‾" : "\u{203E}",
"⁁" : "\u{2041}",
"⁃" : "\u{2043}",
"⁄" : "\u{2044}",
"⁏" : "\u{204F}",
"⁗" : "\u{2057}",
" " : "\u{205F}",
"⁠" : "\u{2060}",
"⁡" : "\u{2061}",
"⁡" : "\u{2061}",
"⁢" : "\u{2062}",
"⁢" : "\u{2062}",
"⁣" : "\u{2063}",
"⁣" : "\u{2063}",
"€" : "\u{20AC}",
"⃛" : "\u{20DB}",
"⃛" : "\u{20DB}",
"⃜" : "\u{20DC}",
"ℂ" : "\u{2102}",
"ℂ" : "\u{2102}",
"℅" : "\u{2105}",
"ℊ" : "\u{210A}",
"ℋ" : "\u{210B}",
"ℋ" : "\u{210B}",
"ℋ" : "\u{210B}",
"ℌ" : "\u{210C}",
"ℌ" : "\u{210C}",
"ℍ" : "\u{210D}",
"ℍ" : "\u{210D}",
"ℎ" : "\u{210E}",
"ℏ" : "\u{210F}",
"ℏ" : "\u{210F}",
"ℏ" : "\u{210F}",
"ℏ" : "\u{210F}",
"ℐ" : "\u{2110}",
"ℐ" : "\u{2110}",
"ℑ" : "\u{2111}",
"ℑ" : "\u{2111}",
"ℑ" : "\u{2111}",
"ℑ" : "\u{2111}",
"ℒ" : "\u{2112}",
"ℒ" : "\u{2112}",
"ℒ" : "\u{2112}",
"ℓ" : "\u{2113}",
"ℕ" : "\u{2115}",
"ℕ" : "\u{2115}",
"№" : "\u{2116}",
"℗" : "\u{2117}",
"℘" : "\u{2118}",
"℘" : "\u{2118}",
"ℙ" : "\u{2119}",
"ℙ" : "\u{2119}",
"ℚ" : "\u{211A}",
"ℚ" : "\u{211A}",
"ℛ" : "\u{211B}",
"ℛ" : "\u{211B}",
"ℜ" : "\u{211C}",
"ℜ" : "\u{211C}",
"ℜ" : "\u{211C}",
"ℜ" : "\u{211C}",
"ℝ" : "\u{211D}",
"ℝ" : "\u{211D}",
"℞" : "\u{211E}",
"™" : "\u{2122}",
"™" : "\u{2122}",
"ℤ" : "\u{2124}",
"ℤ" : "\u{2124}",
"Ω" : "\u{2126}",
"℧" : "\u{2127}",
"ℨ" : "\u{2128}",
"ℨ" : "\u{2128}",
"℩" : "\u{2129}",
"Å" : "\u{212B}",
"ℬ" : "\u{212C}",
"ℬ" : "\u{212C}",
"ℬ" : "\u{212C}",
"ℭ" : "\u{212D}",
"ℭ" : "\u{212D}",
"ℯ" : "\u{212F}",
"ℰ" : "\u{2130}",
"ℰ" : "\u{2130}",
"ℱ" : "\u{2131}",
"ℱ" : "\u{2131}",
"ℳ" : "\u{2133}",
"ℳ" : "\u{2133}",
"ℳ" : "\u{2133}",
"ℴ" : "\u{2134}",
"ℴ" : "\u{2134}",
"ℴ" : "\u{2134}",
"ℵ" : "\u{2135}",
"ℵ" : "\u{2135}",
"ℶ" : "\u{2136}",
"ℷ" : "\u{2137}",
"ℸ" : "\u{2138}",
"ⅅ" : "\u{2145}",
"ⅅ" : "\u{2145}",
"ⅆ" : "\u{2146}",
"ⅆ" : "\u{2146}",
"ⅇ" : "\u{2147}",
"ⅇ" : "\u{2147}",
"ⅇ" : "\u{2147}",
"ⅈ" : "\u{2148}",
"ⅈ" : "\u{2148}",
"⅓" : "\u{2153}",
"⅔" : "\u{2154}",
"⅕" : "\u{2155}",
"⅖" : "\u{2156}",
"⅗" : "\u{2157}",
"⅘" : "\u{2158}",
"⅙" : "\u{2159}",
"⅚" : "\u{215A}",
"⅛" : "\u{215B}",
"⅜" : "\u{215C}",
"⅝" : "\u{215D}",
"⅞" : "\u{215E}",
"←" : "\u{2190}",
"←" : "\u{2190}",
"←" : "\u{2190}",
"←" : "\u{2190}",
"←" : "\u{2190}",
"↑" : "\u{2191}",
"↑" : "\u{2191}",
"↑" : "\u{2191}",
"↑" : "\u{2191}",
"→" : "\u{2192}",
"→" : "\u{2192}",
"→" : "\u{2192}",
"→" : "\u{2192}",
"→" : "\u{2192}",
"↓" : "\u{2193}",
"↓" : "\u{2193}",
"↓" : "\u{2193}",
"↓" : "\u{2193}",
"↔" : "\u{2194}",
"↔" : "\u{2194}",
"↔" : "\u{2194}",
"↕" : "\u{2195}",
"↕" : "\u{2195}",
"↕" : "\u{2195}",
"↖" : "\u{2196}",
"↖" : "\u{2196}",
"↖" : "\u{2196}",
"↗" : "\u{2197}",
"↗" : "\u{2197}",
"↗" : "\u{2197}",
"↘" : "\u{2198}",
"↘" : "\u{2198}",
"↘" : "\u{2198}",
"↙" : "\u{2199}",
"↙" : "\u{2199}",
"↙" : "\u{2199}",
"↚" : "\u{219A}",
"↚" : "\u{219A}",
"↛" : "\u{219B}",
"↛" : "\u{219B}",
"↝" : "\u{219D}",
"↝" : "\u{219D}",
"↞" : "\u{219E}",
"↞" : "\u{219E}",
"↟" : "\u{219F}",
"↠" : "\u{21A0}",
"↠" : "\u{21A0}",
"↡" : "\u{21A1}",
"↢" : "\u{21A2}",
"↢" : "\u{21A2}",
"↣" : "\u{21A3}",
"↣" : "\u{21A3}",
"↤" : "\u{21A4}",
"↤" : "\u{21A4}",
"↥" : "\u{21A5}",
"↥" : "\u{21A5}",
"↦" : "\u{21A6}",
"↦" : "\u{21A6}",
"↦" : "\u{21A6}",
"↧" : "\u{21A7}",
"↧" : "\u{21A7}",
"↩" : "\u{21A9}",
"↩" : "\u{21A9}",
"↪" : "\u{21AA}",
"↪" : "\u{21AA}",
"↫" : "\u{21AB}",
"↫" : "\u{21AB}",
"↬" : "\u{21AC}",
"↬" : "\u{21AC}",
"↭" : "\u{21AD}",
"↭" : "\u{21AD}",
"↮" : "\u{21AE}",
"↮" : "\u{21AE}",
"↰" : "\u{21B0}",
"↰" : "\u{21B0}",
"↱" : "\u{21B1}",
"↱" : "\u{21B1}",
"↲" : "\u{21B2}",
"↳" : "\u{21B3}",
"↵" : "\u{21B5}",
"↶" : "\u{21B6}",
"↶" : "\u{21B6}",
"↷" : "\u{21B7}",
"↷" : "\u{21B7}",
"↺" : "\u{21BA}",
"↺" : "\u{21BA}",
"↻" : "\u{21BB}",
"↻" : "\u{21BB}",
"↼" : "\u{21BC}",
"↼" : "\u{21BC}",
"↼" : "\u{21BC}",
"↽" : "\u{21BD}",
"↽" : "\u{21BD}",
"↽" : "\u{21BD}",
"↾" : "\u{21BE}",
"↾" : "\u{21BE}",
"↾" : "\u{21BE}",
"↿" : "\u{21BF}",
"↿" : "\u{21BF}",
"↿" : "\u{21BF}",
"⇀" : "\u{21C0}",
"⇀" : "\u{21C0}",
"⇀" : "\u{21C0}",
"⇁" : "\u{21C1}",
"⇁" : "\u{21C1}",
"⇁" : "\u{21C1}",
"⇂" : "\u{21C2}",
"⇂" : "\u{21C2}",
"⇂" : "\u{21C2}",
"⇃" : "\u{21C3}",
"⇃" : "\u{21C3}",
"⇃" : "\u{21C3}",
"⇄" : "\u{21C4}",
"⇄" : "\u{21C4}",
"⇄" : "\u{21C4}",
"⇅" : "\u{21C5}",
"⇅" : "\u{21C5}",
"⇆" : "\u{21C6}",
"⇆" : "\u{21C6}",
"⇆" : "\u{21C6}",
"⇇" : "\u{21C7}",
"⇇" : "\u{21C7}",
"⇈" : "\u{21C8}",
"⇈" : "\u{21C8}",
"⇉" : "\u{21C9}",
"⇉" : "\u{21C9}",
"⇊" : "\u{21CA}",
"⇊" : "\u{21CA}",
"⇋" : "\u{21CB}",
"⇋" : "\u{21CB}",
"⇋" : "\u{21CB}",
"⇌" : "\u{21CC}",
"⇌" : "\u{21CC}",
"⇌" : "\u{21CC}",
"⇍" : "\u{21CD}",
"⇍" : "\u{21CD}",
"⇎" : "\u{21CE}",
"⇎" : "\u{21CE}",
"⇏" : "\u{21CF}",
"⇏" : "\u{21CF}",
"⇐" : "\u{21D0}",
"⇐" : "\u{21D0}",
"⇐" : "\u{21D0}",
"⇑" : "\u{21D1}",
"⇑" : "\u{21D1}",
"⇑" : "\u{21D1}",
"⇒" : "\u{21D2}",
"⇒" : "\u{21D2}",
"⇒" : "\u{21D2}",
"⇒" : "\u{21D2}",
"⇓" : "\u{21D3}",
"⇓" : "\u{21D3}",
"⇓" : "\u{21D3}",
"⇔" : "\u{21D4}",
"⇔" : "\u{21D4}",
"⇔" : "\u{21D4}",
"⇔" : "\u{21D4}",
"⇕" : "\u{21D5}",
"⇕" : "\u{21D5}",
"⇕" : "\u{21D5}",
"⇖" : "\u{21D6}",
"⇗" : "\u{21D7}",
"⇘" : "\u{21D8}",
"⇙" : "\u{21D9}",
"⇚" : "\u{21DA}",
"⇚" : "\u{21DA}",
"⇛" : "\u{21DB}",
"⇛" : "\u{21DB}",
"⇝" : "\u{21DD}",
"⇤" : "\u{21E4}",
"⇤" : "\u{21E4}",
"⇥" : "\u{21E5}",
"⇥" : "\u{21E5}",
"⇵" : "\u{21F5}",
"⇵" : "\u{21F5}",
"⇽" : "\u{21FD}",
"⇾" : "\u{21FE}",
"⇿" : "\u{21FF}",
"∀" : "\u{2200}",
"∀" : "\u{2200}",
"∁" : "\u{2201}",
"∁" : "\u{2201}",
"∂" : "\u{2202}",
"∂" : "\u{2202}",
"∃" : "\u{2203}",
"∃" : "\u{2203}",
"∄" : "\u{2204}",
"∄" : "\u{2204}",
"∄" : "\u{2204}",
"∅" : "\u{2205}",
"∅" : "\u{2205}",
"∅" : "\u{2205}",
"∅" : "\u{2205}",
"∇" : "\u{2207}",
"∇" : "\u{2207}",
"∈" : "\u{2208}",
"∈" : "\u{2208}",
"∈" : "\u{2208}",
"∈" : "\u{2208}",
"∉" : "\u{2209}",
"∉" : "\u{2209}",
"∉" : "\u{2209}",
"∋" : "\u{220B}",
"∋" : "\u{220B}",
"∋" : "\u{220B}",
"∋" : "\u{220B}",
"∌" : "\u{220C}",
"∌" : "\u{220C}",
"∌" : "\u{220C}",
"∏" : "\u{220F}",
"∏" : "\u{220F}",
"∐" : "\u{2210}",
"∐" : "\u{2210}",
"∑" : "\u{2211}",
"∑" : "\u{2211}",
"−" : "\u{2212}",
"∓" : "\u{2213}",
"∓" : "\u{2213}",
"∓" : "\u{2213}",
"∔" : "\u{2214}",
"∔" : "\u{2214}",
"∖" : "\u{2216}",
"∖" : "\u{2216}",
"∖" : "\u{2216}",
"∖" : "\u{2216}",
"∖" : "\u{2216}",
"∗" : "\u{2217}",
"∘" : "\u{2218}",
"∘" : "\u{2218}",
"√" : "\u{221A}",
"√" : "\u{221A}",
"∝" : "\u{221D}",
"∝" : "\u{221D}",
"∝" : "\u{221D}",
"∝" : "\u{221D}",
"∝" : "\u{221D}",
"∞" : "\u{221E}",
"∟" : "\u{221F}",
"∠" : "\u{2220}",
"∠" : "\u{2220}",
"∡" : "\u{2221}",
"∡" : "\u{2221}",
"∢" : "\u{2222}",
"∣" : "\u{2223}",
"∣" : "\u{2223}",
"∣" : "\u{2223}",
"∣" : "\u{2223}",
"∤" : "\u{2224}",
"∤" : "\u{2224}",
"∤" : "\u{2224}",
"∤" : "\u{2224}",
"∥" : "\u{2225}",
"∥" : "\u{2225}",
"∥" : "\u{2225}",
"∥" : "\u{2225}",
"∥" : "\u{2225}",
"∦" : "\u{2226}",
"∦" : "\u{2226}",
"∦" : "\u{2226}",
"∦" : "\u{2226}",
"∦" : "\u{2226}",
"∧" : "\u{2227}",
"∧" : "\u{2227}",
"∨" : "\u{2228}",
"∨" : "\u{2228}",
"∩" : "\u{2229}",
"∪" : "\u{222A}",
"∫" : "\u{222B}",
"∫" : "\u{222B}",
"∬" : "\u{222C}",
"∭" : "\u{222D}",
"∭" : "\u{222D}",
"∮" : "\u{222E}",
"∮" : "\u{222E}",
"∮" : "\u{222E}",
"∯" : "\u{222F}",
"∯" : "\u{222F}",
"∰" : "\u{2230}",
"∱" : "\u{2231}",
"∲" : "\u{2232}",
"∲" : "\u{2232}",
"∳" : "\u{2233}",
"&CounterClockwiseContourIntegral;" : "\u{2233}",
"∴" : "\u{2234}",
"∴" : "\u{2234}",
"∴" : "\u{2234}",
"∵" : "\u{2235}",
"∵" : "\u{2235}",
"∵" : "\u{2235}",
"∶" : "\u{2236}",
"∷" : "\u{2237}",
"∷" : "\u{2237}",
"∸" : "\u{2238}",
"∸" : "\u{2238}",
"∺" : "\u{223A}",
"∻" : "\u{223B}",
"∼" : "\u{223C}",
"∼" : "\u{223C}",
"∼" : "\u{223C}",
"∼" : "\u{223C}",
"∽" : "\u{223D}",
"∽" : "\u{223D}",
"∾" : "\u{223E}",
"∾" : "\u{223E}",
"∿" : "\u{223F}",
"≀" : "\u{2240}",
"≀" : "\u{2240}",
"≀" : "\u{2240}",
"≁" : "\u{2241}",
"≁" : "\u{2241}",
"≂" : "\u{2242}",
"≂" : "\u{2242}",
"≂" : "\u{2242}",
"≃" : "\u{2243}",
"≃" : "\u{2243}",
"≃" : "\u{2243}",
"≄" : "\u{2244}",
"≄" : "\u{2244}",
"≄" : "\u{2244}",
"≅" : "\u{2245}",
"≅" : "\u{2245}",
"≆" : "\u{2246}",
"≇" : "\u{2247}",
"≇" : "\u{2247}",
"≈" : "\u{2248}",
"≈" : "\u{2248}",
"≈" : "\u{2248}",
"≈" : "\u{2248}",
"≈" : "\u{2248}",
"≈" : "\u{2248}",
"≉" : "\u{2249}",
"≉" : "\u{2249}",
"≉" : "\u{2249}",
"≊" : "\u{224A}",
"≊" : "\u{224A}",
"≋" : "\u{224B}",
"≌" : "\u{224C}",
"≌" : "\u{224C}",
"≍" : "\u{224D}",
"≍" : "\u{224D}",
"≎" : "\u{224E}",
"≎" : "\u{224E}",
"≎" : "\u{224E}",
"≏" : "\u{224F}",
"≏" : "\u{224F}",
"≏" : "\u{224F}",
"≐" : "\u{2250}",
"≐" : "\u{2250}",
"≐" : "\u{2250}",
"≑" : "\u{2251}",
"≑" : "\u{2251}",
"≒" : "\u{2252}",
"≒" : "\u{2252}",
"≓" : "\u{2253}",
"≓" : "\u{2253}",
"≔" : "\u{2254}",
"≔" : "\u{2254}",
"≔" : "\u{2254}",
"≕" : "\u{2255}",
"≕" : "\u{2255}",
"≖" : "\u{2256}",
"≖" : "\u{2256}",
"≗" : "\u{2257}",
"≗" : "\u{2257}",
"≙" : "\u{2259}",
"≚" : "\u{225A}",
"≜" : "\u{225C}",
"≜" : "\u{225C}",
"≟" : "\u{225F}",
"≟" : "\u{225F}",
"≠" : "\u{2260}",
"≠" : "\u{2260}",
"≡" : "\u{2261}",
"≡" : "\u{2261}",
"≢" : "\u{2262}",
"≢" : "\u{2262}",
"≤" : "\u{2264}",
"≤" : "\u{2264}",
"≥" : "\u{2265}",
"≥" : "\u{2265}",
"≥" : "\u{2265}",
"≦" : "\u{2266}",
"≦" : "\u{2266}",
"≦" : "\u{2266}",
"≧" : "\u{2267}",
"≧" : "\u{2267}",
"≧" : "\u{2267}",
"≨" : "\u{2268}",
"≨" : "\u{2268}",
"≩" : "\u{2269}",
"≩" : "\u{2269}",
"≪" : "\u{226A}",
"≪" : "\u{226A}",
"≪" : "\u{226A}",
"≫" : "\u{226B}",
"≫" : "\u{226B}",
"≫" : "\u{226B}",
"≬" : "\u{226C}",
"≬" : "\u{226C}",
"≭" : "\u{226D}",
"≮" : "\u{226E}",
"≮" : "\u{226E}",
"≮" : "\u{226E}",
"≯" : "\u{226F}",
"≯" : "\u{226F}",
"≯" : "\u{226F}",
"≰" : "\u{2270}",
"≰" : "\u{2270}",
"≰" : "\u{2270}",
"≱" : "\u{2271}",
"≱" : "\u{2271}",
"≱" : "\u{2271}",
"≲" : "\u{2272}",
"≲" : "\u{2272}",
"≲" : "\u{2272}",
"≳" : "\u{2273}",
"≳" : "\u{2273}",
"≳" : "\u{2273}",
"≴" : "\u{2274}",
"≴" : "\u{2274}",
"≵" : "\u{2275}",
"≵" : "\u{2275}",
"≶" : "\u{2276}",
"≶" : "\u{2276}",
"≶" : "\u{2276}",
"≷" : "\u{2277}",
"≷" : "\u{2277}",
"≷" : "\u{2277}",
"≸" : "\u{2278}",
"≸" : "\u{2278}",
"≹" : "\u{2279}",
"≹" : "\u{2279}",
"≺" : "\u{227A}",
"≺" : "\u{227A}",
"≺" : "\u{227A}",
"≻" : "\u{227B}",
"≻" : "\u{227B}",
"≻" : "\u{227B}",
"≼" : "\u{227C}",
"≼" : "\u{227C}",
"≼" : "\u{227C}",
"≽" : "\u{227D}",
"≽" : "\u{227D}",
"≽" : "\u{227D}",
"≾" : "\u{227E}",
"≾" : "\u{227E}",
"≾" : "\u{227E}",
"≿" : "\u{227F}",
"≿" : "\u{227F}",
"≿" : "\u{227F}",
"⊀" : "\u{2280}",
"⊀" : "\u{2280}",
"⊀" : "\u{2280}",
"⊁" : "\u{2281}",
"⊁" : "\u{2281}",
"⊁" : "\u{2281}",
"⊂" : "\u{2282}",
"⊂" : "\u{2282}",
"⊃" : "\u{2283}",
"⊃" : "\u{2283}",
"⊃" : "\u{2283}",
"⊄" : "\u{2284}",
"⊅" : "\u{2285}",
"⊆" : "\u{2286}",
"⊆" : "\u{2286}",
"⊆" : "\u{2286}",
"⊇" : "\u{2287}",
"⊇" : "\u{2287}",
"⊇" : "\u{2287}",
"⊈" : "\u{2288}",
"⊈" : "\u{2288}",
"⊈" : "\u{2288}",
"⊉" : "\u{2289}",
"⊉" : "\u{2289}",
"⊉" : "\u{2289}",
"⊊" : "\u{228A}",
"⊊" : "\u{228A}",
"⊋" : "\u{228B}",
"⊋" : "\u{228B}",
"⊍" : "\u{228D}",
"⊎" : "\u{228E}",
"⊎" : "\u{228E}",
"⊏" : "\u{228F}",
"⊏" : "\u{228F}",
"⊏" : "\u{228F}",
"⊐" : "\u{2290}",
"⊐" : "\u{2290}",
"⊐" : "\u{2290}",
"⊑" : "\u{2291}",
"⊑" : "\u{2291}",
"⊑" : "\u{2291}",
"⊒" : "\u{2292}",
"⊒" : "\u{2292}",
"⊒" : "\u{2292}",
"⊓" : "\u{2293}",
"⊓" : "\u{2293}",
"⊔" : "\u{2294}",
"⊔" : "\u{2294}",
"⊕" : "\u{2295}",
"⊕" : "\u{2295}",
"⊖" : "\u{2296}",
"⊖" : "\u{2296}",
"⊗" : "\u{2297}",
"⊗" : "\u{2297}",
"⊘" : "\u{2298}",
"⊙" : "\u{2299}",
"⊙" : "\u{2299}",
"⊚" : "\u{229A}",
"⊚" : "\u{229A}",
"⊛" : "\u{229B}",
"⊛" : "\u{229B}",
"⊝" : "\u{229D}",
"⊝" : "\u{229D}",
"⊞" : "\u{229E}",
"⊞" : "\u{229E}",
"⊟" : "\u{229F}",
"⊟" : "\u{229F}",
"⊠" : "\u{22A0}",
"⊠" : "\u{22A0}",
"⊡" : "\u{22A1}",
"⊡" : "\u{22A1}",
"⊢" : "\u{22A2}",
"⊢" : "\u{22A2}",
"⊣" : "\u{22A3}",
"⊣" : "\u{22A3}",
"⊤" : "\u{22A4}",
"⊤" : "\u{22A4}",
"⊥" : "\u{22A5}",
"⊥" : "\u{22A5}",
"⊥" : "\u{22A5}",
"⊥" : "\u{22A5}",
"⊧" : "\u{22A7}",
"⊨" : "\u{22A8}",
"⊨" : "\u{22A8}",
"⊩" : "\u{22A9}",
"⊪" : "\u{22AA}",
"⊫" : "\u{22AB}",
"⊬" : "\u{22AC}",
"⊭" : "\u{22AD}",
"⊮" : "\u{22AE}",
"⊯" : "\u{22AF}",
"⊰" : "\u{22B0}",
"⊲" : "\u{22B2}",
"⊲" : "\u{22B2}",
"⊲" : "\u{22B2}",
"⊳" : "\u{22B3}",
"⊳" : "\u{22B3}",
"⊳" : "\u{22B3}",
"⊴" : "\u{22B4}",
"⊴" : "\u{22B4}",
"⊴" : "\u{22B4}",
"⊵" : "\u{22B5}",
"⊵" : "\u{22B5}",
"⊵" : "\u{22B5}",
"⊶" : "\u{22B6}",
"⊷" : "\u{22B7}",
"⊸" : "\u{22B8}",
"⊸" : "\u{22B8}",
"⊹" : "\u{22B9}",
"⊺" : "\u{22BA}",
"⊺" : "\u{22BA}",
"⊻" : "\u{22BB}",
"⊽" : "\u{22BD}",
"⊾" : "\u{22BE}",
"⊿" : "\u{22BF}",
"⋀" : "\u{22C0}",
"⋀" : "\u{22C0}",
"⋀" : "\u{22C0}",
"⋁" : "\u{22C1}",
"⋁" : "\u{22C1}",
"⋁" : "\u{22C1}",
"⋂" : "\u{22C2}",
"⋂" : "\u{22C2}",
"⋂" : "\u{22C2}",
"⋃" : "\u{22C3}",
"⋃" : "\u{22C3}",
"⋃" : "\u{22C3}",
"⋄" : "\u{22C4}",
"⋄" : "\u{22C4}",
"⋄" : "\u{22C4}",
"⋅" : "\u{22C5}",
"⋆" : "\u{22C6}",
"⋆" : "\u{22C6}",
"⋇" : "\u{22C7}",
"⋇" : "\u{22C7}",
"⋈" : "\u{22C8}",
"⋉" : "\u{22C9}",
"⋊" : "\u{22CA}",
"⋋" : "\u{22CB}",
"⋋" : "\u{22CB}",
"⋌" : "\u{22CC}",
"⋌" : "\u{22CC}",
"⋍" : "\u{22CD}",
"⋍" : "\u{22CD}",
"⋎" : "\u{22CE}",
"⋎" : "\u{22CE}",
"⋏" : "\u{22CF}",
"⋏" : "\u{22CF}",
"⋐" : "\u{22D0}",
"⋐" : "\u{22D0}",
"⋑" : "\u{22D1}",
"⋑" : "\u{22D1}",
"⋒" : "\u{22D2}",
"⋓" : "\u{22D3}",
"⋔" : "\u{22D4}",
"⋔" : "\u{22D4}",
"⋕" : "\u{22D5}",
"⋖" : "\u{22D6}",
"⋖" : "\u{22D6}",
"⋗" : "\u{22D7}",
"⋗" : "\u{22D7}",
"⋘" : "\u{22D8}",
"⋙" : "\u{22D9}",
"⋙" : "\u{22D9}",
"⋚" : "\u{22DA}",
"⋚" : "\u{22DA}",
"⋚" : "\u{22DA}",
"⋛" : "\u{22DB}",
"⋛" : "\u{22DB}",
"⋛" : "\u{22DB}",
"⋞" : "\u{22DE}",
"⋞" : "\u{22DE}",
"⋟" : "\u{22DF}",
"⋟" : "\u{22DF}",
"⋠" : "\u{22E0}",
"⋠" : "\u{22E0}",
"⋡" : "\u{22E1}",
"⋡" : "\u{22E1}",
"⋢" : "\u{22E2}",
"⋢" : "\u{22E2}",
"⋣" : "\u{22E3}",
"⋣" : "\u{22E3}",
"⋦" : "\u{22E6}",
"⋧" : "\u{22E7}",
"⋨" : "\u{22E8}",
"⋨" : "\u{22E8}",
"⋩" : "\u{22E9}",
"⋩" : "\u{22E9}",
"⋪" : "\u{22EA}",
"⋪" : "\u{22EA}",
"⋪" : "\u{22EA}",
"⋫" : "\u{22EB}",
"⋫" : "\u{22EB}",
"⋫" : "\u{22EB}",
"⋬" : "\u{22EC}",
"⋬" : "\u{22EC}",
"⋬" : "\u{22EC}",
"⋭" : "\u{22ED}",
"⋭" : "\u{22ED}",
"⋭" : "\u{22ED}",
"⋮" : "\u{22EE}",
"⋯" : "\u{22EF}",
"⋰" : "\u{22F0}",
"⋱" : "\u{22F1}",
"⋲" : "\u{22F2}",
"⋳" : "\u{22F3}",
"⋴" : "\u{22F4}",
"⋵" : "\u{22F5}",
"⋶" : "\u{22F6}",
"⋷" : "\u{22F7}",
"⋹" : "\u{22F9}",
"⋺" : "\u{22FA}",
"⋻" : "\u{22FB}",
"⋼" : "\u{22FC}",
"⋽" : "\u{22FD}",
"⋾" : "\u{22FE}",
"⌅" : "\u{2305}",
"⌅" : "\u{2305}",
"⌆" : "\u{2306}",
"⌆" : "\u{2306}",
"⌈" : "\u{2308}",
"⌈" : "\u{2308}",
"⌉" : "\u{2309}",
"⌉" : "\u{2309}",
"⌊" : "\u{230A}",
"⌊" : "\u{230A}",
"⌋" : "\u{230B}",
"⌋" : "\u{230B}",
"⌌" : "\u{230C}",
"⌍" : "\u{230D}",
"⌎" : "\u{230E}",
"⌏" : "\u{230F}",
"⌐" : "\u{2310}",
"⌒" : "\u{2312}",
"⌓" : "\u{2313}",
"⌕" : "\u{2315}",
"⌖" : "\u{2316}",
"⌜" : "\u{231C}",
"⌜" : "\u{231C}",
"⌝" : "\u{231D}",
"⌝" : "\u{231D}",
"⌞" : "\u{231E}",
"⌞" : "\u{231E}",
"⌟" : "\u{231F}",
"⌟" : "\u{231F}",
"⌢" : "\u{2322}",
"⌢" : "\u{2322}",
"⌣" : "\u{2323}",
"⌣" : "\u{2323}",
"⌭" : "\u{232D}",
"⌮" : "\u{232E}",
"⌶" : "\u{2336}",
"⌽" : "\u{233D}",
"⌿" : "\u{233F}",
"⍼" : "\u{237C}",
"⎰" : "\u{23B0}",
"⎰" : "\u{23B0}",
"⎱" : "\u{23B1}",
"⎱" : "\u{23B1}",
"⎴" : "\u{23B4}",
"⎴" : "\u{23B4}",
"⎵" : "\u{23B5}",
"⎵" : "\u{23B5}",
"⎶" : "\u{23B6}",
"⏜" : "\u{23DC}",
"⏝" : "\u{23DD}",
"⏞" : "\u{23DE}",
"⏟" : "\u{23DF}",
"⏢" : "\u{23E2}",
"⏧" : "\u{23E7}",
"␣" : "\u{2423}",
"Ⓢ" : "\u{24C8}",
"Ⓢ" : "\u{24C8}",
"─" : "\u{2500}",
"─" : "\u{2500}",
"│" : "\u{2502}",
"┌" : "\u{250C}",
"┐" : "\u{2510}",
"└" : "\u{2514}",
"┘" : "\u{2518}",
"├" : "\u{251C}",
"┤" : "\u{2524}",
"┬" : "\u{252C}",
"┴" : "\u{2534}",
"┼" : "\u{253C}",
"═" : "\u{2550}",
"║" : "\u{2551}",
"╒" : "\u{2552}",
"╓" : "\u{2553}",
"╔" : "\u{2554}",
"╕" : "\u{2555}",
"╖" : "\u{2556}",
"╗" : "\u{2557}",
"╘" : "\u{2558}",
"╙" : "\u{2559}",
"╚" : "\u{255A}",
"╛" : "\u{255B}",
"╜" : "\u{255C}",
"╝" : "\u{255D}",
"╞" : "\u{255E}",
"╟" : "\u{255F}",
"╠" : "\u{2560}",
"╡" : "\u{2561}",
"╢" : "\u{2562}",
"╣" : "\u{2563}",
"╤" : "\u{2564}",
"╥" : "\u{2565}",
"╦" : "\u{2566}",
"╧" : "\u{2567}",
"╨" : "\u{2568}",
"╩" : "\u{2569}",
"╪" : "\u{256A}",
"╫" : "\u{256B}",
"╬" : "\u{256C}",
"▀" : "\u{2580}",
"▄" : "\u{2584}",
"█" : "\u{2588}",
"░" : "\u{2591}",
"▒" : "\u{2592}",
"▓" : "\u{2593}",
"□" : "\u{25A1}",
"□" : "\u{25A1}",
"□" : "\u{25A1}",
"▪" : "\u{25AA}",
"▪" : "\u{25AA}",
"▪" : "\u{25AA}",
"▪" : "\u{25AA}",
"▫" : "\u{25AB}",
"▭" : "\u{25AD}",
"▮" : "\u{25AE}",
"▱" : "\u{25B1}",
"△" : "\u{25B3}",
"△" : "\u{25B3}",
"▴" : "\u{25B4}",
"▴" : "\u{25B4}",
"▵" : "\u{25B5}",
"▵" : "\u{25B5}",
"▸" : "\u{25B8}",
"▸" : "\u{25B8}",
"▹" : "\u{25B9}",
"▹" : "\u{25B9}",
"▽" : "\u{25BD}",
"▽" : "\u{25BD}",
"▾" : "\u{25BE}",
"▾" : "\u{25BE}",
"▿" : "\u{25BF}",
"▿" : "\u{25BF}",
"◂" : "\u{25C2}",
"◂" : "\u{25C2}",
"◃" : "\u{25C3}",
"◃" : "\u{25C3}",
"◊" : "\u{25CA}",
"◊" : "\u{25CA}",
"○" : "\u{25CB}",
"◬" : "\u{25EC}",
"◯" : "\u{25EF}",
"◯" : "\u{25EF}",
"◸" : "\u{25F8}",
"◹" : "\u{25F9}",
"◺" : "\u{25FA}",
"◻" : "\u{25FB}",
"◼" : "\u{25FC}",
"★" : "\u{2605}",
"★" : "\u{2605}",
"☆" : "\u{2606}",
"☎" : "\u{260E}",
"♀" : "\u{2640}",
"♂" : "\u{2642}",
"♠" : "\u{2660}",
"♠" : "\u{2660}",
"♣" : "\u{2663}",
"♣" : "\u{2663}",
"♥" : "\u{2665}",
"♥" : "\u{2665}",
"♦" : "\u{2666}",
"♦" : "\u{2666}",
"♪" : "\u{266A}",
"♭" : "\u{266D}",
"♮" : "\u{266E}",
"♮" : "\u{266E}",
"♯" : "\u{266F}",
"✓" : "\u{2713}",
"✓" : "\u{2713}",
"✗" : "\u{2717}",
"✠" : "\u{2720}",
"✠" : "\u{2720}",
"✶" : "\u{2736}",
"❘" : "\u{2758}",
"❲" : "\u{2772}",
"❳" : "\u{2773}",
"⟦" : "\u{27E6}",
"⟦" : "\u{27E6}",
"⟧" : "\u{27E7}",
"⟧" : "\u{27E7}",
"⟨" : "\u{27E8}",
"⟨" : "\u{27E8}",
"⟨" : "\u{27E8}",
"⟩" : "\u{27E9}",
"⟩" : "\u{27E9}",
"⟩" : "\u{27E9}",
"⟪" : "\u{27EA}",
"⟫" : "\u{27EB}",
"⟬" : "\u{27EC}",
"⟭" : "\u{27ED}",
"⟵" : "\u{27F5}",
"⟵" : "\u{27F5}",
"⟵" : "\u{27F5}",
"⟶" : "\u{27F6}",
"⟶" : "\u{27F6}",
"⟶" : "\u{27F6}",
"⟷" : "\u{27F7}",
"⟷" : "\u{27F7}",
"⟷" : "\u{27F7}",
"⟸" : "\u{27F8}",
"⟸" : "\u{27F8}",
"⟸" : "\u{27F8}",
"⟹" : "\u{27F9}",
"⟹" : "\u{27F9}",
"⟹" : "\u{27F9}",
"⟺" : "\u{27FA}",
"⟺" : "\u{27FA}",
"⟺" : "\u{27FA}",
"⟼" : "\u{27FC}",
"⟼" : "\u{27FC}",
"⟿" : "\u{27FF}",
"⤂" : "\u{2902}",
"⤃" : "\u{2903}",
"⤄" : "\u{2904}",
"⤅" : "\u{2905}",
"⤌" : "\u{290C}",
"⤍" : "\u{290D}",
"⤍" : "\u{290D}",
"⤎" : "\u{290E}",
"⤏" : "\u{290F}",
"⤏" : "\u{290F}",
"⤐" : "\u{2910}",
"⤐" : "\u{2910}",
"⤑" : "\u{2911}",
"⤒" : "\u{2912}",
"⤓" : "\u{2913}",
"⤖" : "\u{2916}",
"⤙" : "\u{2919}",
"⤚" : "\u{291A}",
"⤛" : "\u{291B}",
"⤜" : "\u{291C}",
"⤝" : "\u{291D}",
"⤞" : "\u{291E}",
"⤟" : "\u{291F}",
"⤠" : "\u{2920}",
"⤣" : "\u{2923}",
"⤤" : "\u{2924}",
"⤥" : "\u{2925}",
"⤥" : "\u{2925}",
"⤦" : "\u{2926}",
"⤦" : "\u{2926}",
"⤧" : "\u{2927}",
"⤨" : "\u{2928}",
"⤨" : "\u{2928}",
"⤩" : "\u{2929}",
"⤩" : "\u{2929}",
"⤪" : "\u{292A}",
"⤳" : "\u{2933}",
"⤵" : "\u{2935}",
"⤶" : "\u{2936}",
"⤷" : "\u{2937}",
"⤸" : "\u{2938}",
"⤹" : "\u{2939}",
"⤼" : "\u{293C}",
"⤽" : "\u{293D}",
"⥅" : "\u{2945}",
"⥈" : "\u{2948}",
"⥉" : "\u{2949}",
"⥊" : "\u{294A}",
"⥋" : "\u{294B}",
"⥎" : "\u{294E}",
"⥏" : "\u{294F}",
"⥐" : "\u{2950}",
"⥑" : "\u{2951}",
"⥒" : "\u{2952}",
"⥓" : "\u{2953}",
"⥔" : "\u{2954}",
"⥕" : "\u{2955}",
"⥖" : "\u{2956}",
"⥗" : "\u{2957}",
"⥘" : "\u{2958}",
"⥙" : "\u{2959}",
"⥚" : "\u{295A}",
"⥛" : "\u{295B}",
"⥜" : "\u{295C}",
"⥝" : "\u{295D}",
"⥞" : "\u{295E}",
"⥟" : "\u{295F}",
"⥠" : "\u{2960}",
"⥡" : "\u{2961}",
"⥢" : "\u{2962}",
"⥣" : "\u{2963}",
"⥤" : "\u{2964}",
"⥥" : "\u{2965}",
"⥦" : "\u{2966}",
"⥧" : "\u{2967}",
"⥨" : "\u{2968}",
"⥩" : "\u{2969}",
"⥪" : "\u{296A}",
"⥫" : "\u{296B}",
"⥬" : "\u{296C}",
"⥭" : "\u{296D}",
"⥮" : "\u{296E}",
"⥮" : "\u{296E}",
"⥯" : "\u{296F}",
"⥯" : "\u{296F}",
"⥰" : "\u{2970}",
"⥱" : "\u{2971}",
"⥲" : "\u{2972}",
"⥳" : "\u{2973}",
"⥴" : "\u{2974}",
"⥵" : "\u{2975}",
"⥶" : "\u{2976}",
"⥸" : "\u{2978}",
"⥹" : "\u{2979}",
"⥻" : "\u{297B}",
"⥼" : "\u{297C}",
"⥽" : "\u{297D}",
"⥾" : "\u{297E}",
"⥿" : "\u{297F}",
"⦅" : "\u{2985}",
"⦆" : "\u{2986}",
"⦋" : "\u{298B}",
"⦌" : "\u{298C}",
"⦍" : "\u{298D}",
"⦎" : "\u{298E}",
"⦏" : "\u{298F}",
"⦐" : "\u{2990}",
"⦑" : "\u{2991}",
"⦒" : "\u{2992}",
"⦓" : "\u{2993}",
"⦔" : "\u{2994}",
"⦕" : "\u{2995}",
"⦖" : "\u{2996}",
"⦚" : "\u{299A}",
"⦜" : "\u{299C}",
"⦝" : "\u{299D}",
"⦤" : "\u{29A4}",
"⦥" : "\u{29A5}",
"⦦" : "\u{29A6}",
"⦧" : "\u{29A7}",
"⦨" : "\u{29A8}",
"⦩" : "\u{29A9}",
"⦪" : "\u{29AA}",
"⦫" : "\u{29AB}",
"⦬" : "\u{29AC}",
"⦭" : "\u{29AD}",
"⦮" : "\u{29AE}",
"⦯" : "\u{29AF}",
"⦰" : "\u{29B0}",
"⦱" : "\u{29B1}",
"⦲" : "\u{29B2}",
"⦳" : "\u{29B3}",
"⦴" : "\u{29B4}",
"⦵" : "\u{29B5}",
"⦶" : "\u{29B6}",
"⦷" : "\u{29B7}",
"⦹" : "\u{29B9}",
"⦻" : "\u{29BB}",
"⦼" : "\u{29BC}",
"⦾" : "\u{29BE}",
"⦿" : "\u{29BF}",
"⧀" : "\u{29C0}",
"⧁" : "\u{29C1}",
"⧂" : "\u{29C2}",
"⧃" : "\u{29C3}",
"⧄" : "\u{29C4}",
"⧅" : "\u{29C5}",
"⧉" : "\u{29C9}",
"⧍" : "\u{29CD}",
"⧎" : "\u{29CE}",
"⧏" : "\u{29CF}",
"⧐" : "\u{29D0}",
"∽̱" : "\u{29DA}",
"⧜" : "\u{29DC}",
"⧝" : "\u{29DD}",
"⧞" : "\u{29DE}",
"⧣" : "\u{29E3}",
"⧤" : "\u{29E4}",
"⧥" : "\u{29E5}",
"⧫" : "\u{29EB}",
"⧫" : "\u{29EB}",
"⧴" : "\u{29F4}",
"⧶" : "\u{29F6}",
"⨀" : "\u{2A00}",
"⨀" : "\u{2A00}",
"⨁" : "\u{2A01}",
"⨁" : "\u{2A01}",
"⨂" : "\u{2A02}",
"⨂" : "\u{2A02}",
"⨄" : "\u{2A04}",
"⨄" : "\u{2A04}",
"⨆" : "\u{2A06}",
"⨆" : "\u{2A06}",
"⨌" : "\u{2A0C}",
"⨌" : "\u{2A0C}",
"⨍" : "\u{2A0D}",
"⨐" : "\u{2A10}",
"⨑" : "\u{2A11}",
"⨒" : "\u{2A12}",
"⨓" : "\u{2A13}",
"⨔" : "\u{2A14}",
"⨕" : "\u{2A15}",
"⨖" : "\u{2A16}",
"⨗" : "\u{2A17}",
"⨢" : "\u{2A22}",
"⨣" : "\u{2A23}",
"⨤" : "\u{2A24}",
"⨥" : "\u{2A25}",
"⨦" : "\u{2A26}",
"⨧" : "\u{2A27}",
"⨩" : "\u{2A29}",
"⨪" : "\u{2A2A}",
"⨭" : "\u{2A2D}",
"⨮" : "\u{2A2E}",
"⨯" : "\u{2A2F}",
"⨰" : "\u{2A30}",
"⨱" : "\u{2A31}",
"⨳" : "\u{2A33}",
"⨴" : "\u{2A34}",
"⨵" : "\u{2A35}",
"⨶" : "\u{2A36}",
"⨷" : "\u{2A37}",
"⨸" : "\u{2A38}",
"⨹" : "\u{2A39}",
"⨺" : "\u{2A3A}",
"⨻" : "\u{2A3B}",
"⨼" : "\u{2A3C}",
"⨼" : "\u{2A3C}",
"⨿" : "\u{2A3F}",
"⩀" : "\u{2A40}",
"⩂" : "\u{2A42}",
"⩃" : "\u{2A43}",
"⩄" : "\u{2A44}",
"⩅" : "\u{2A45}",
"⩆" : "\u{2A46}",
"⩇" : "\u{2A47}",
"⩈" : "\u{2A48}",
"⩉" : "\u{2A49}",
"⩊" : "\u{2A4A}",
"⩋" : "\u{2A4B}",
"⩌" : "\u{2A4C}",
"⩍" : "\u{2A4D}",
"⩐" : "\u{2A50}",
"⩓" : "\u{2A53}",
"⩔" : "\u{2A54}",
"⩕" : "\u{2A55}",
"⩖" : "\u{2A56}",
"⩗" : "\u{2A57}",
"⩘" : "\u{2A58}",
"⩚" : "\u{2A5A}",
"⩛" : "\u{2A5B}",
"⩜" : "\u{2A5C}",
"⩝" : "\u{2A5D}",
"⩟" : "\u{2A5F}",
"⩦" : "\u{2A66}",
"⩪" : "\u{2A6A}",
"⩭" : "\u{2A6D}",
"⩮" : "\u{2A6E}",
"⩯" : "\u{2A6F}",
"⩰" : "\u{2A70}",
"⩱" : "\u{2A71}",
"⩲" : "\u{2A72}",
"⩳" : "\u{2A73}",
"⩴" : "\u{2A74}",
"⩵" : "\u{2A75}",
"⩷" : "\u{2A77}",
"⩷" : "\u{2A77}",
"⩸" : "\u{2A78}",
"⩹" : "\u{2A79}",
"⩺" : "\u{2A7A}",
"⩻" : "\u{2A7B}",
"⩼" : "\u{2A7C}",
"⩽" : "\u{2A7D}",
"⩽" : "\u{2A7D}",
"⩽" : "\u{2A7D}",
"⩾" : "\u{2A7E}",
"⩾" : "\u{2A7E}",
"⩾" : "\u{2A7E}",
"⩿" : "\u{2A7F}",
"⪀" : "\u{2A80}",
"⪁" : "\u{2A81}",
"⪂" : "\u{2A82}",
"⪃" : "\u{2A83}",
"⪄" : "\u{2A84}",
"⪅" : "\u{2A85}",
"⪅" : "\u{2A85}",
"⪆" : "\u{2A86}",
"⪆" : "\u{2A86}",
"⪇" : "\u{2A87}",
"⪇" : "\u{2A87}",
"⪈" : "\u{2A88}",
"⪈" : "\u{2A88}",
"⪉" : "\u{2A89}",
"⪉" : "\u{2A89}",
"⪊" : "\u{2A8A}",
"⪊" : "\u{2A8A}",
"⪋" : "\u{2A8B}",
"⪋" : "\u{2A8B}",
"⪌" : "\u{2A8C}",
"⪌" : "\u{2A8C}",
"⪍" : "\u{2A8D}",
"⪎" : "\u{2A8E}",
"⪏" : "\u{2A8F}",
"⪐" : "\u{2A90}",
"⪑" : "\u{2A91}",
"⪒" : "\u{2A92}",
"⪓" : "\u{2A93}",
"⪔" : "\u{2A94}",
"⪕" : "\u{2A95}",
"⪕" : "\u{2A95}",
"⪖" : "\u{2A96}",
"⪖" : "\u{2A96}",
"⪗" : "\u{2A97}",
"⪘" : "\u{2A98}",
"⪙" : "\u{2A99}",
"⪚" : "\u{2A9A}",
"⪝" : "\u{2A9D}",
"⪞" : "\u{2A9E}",
"⪟" : "\u{2A9F}",
"⪠" : "\u{2AA0}",
"⪡" : "\u{2AA1}",
"⪢" : "\u{2AA2}",
"⪤" : "\u{2AA4}",
"⪥" : "\u{2AA5}",
"⪦" : "\u{2AA6}",
"⪧" : "\u{2AA7}",
"⪨" : "\u{2AA8}",
"⪩" : "\u{2AA9}",
"⪪" : "\u{2AAA}",
"⪫" : "\u{2AAB}",
"⪬" : "\u{2AAC}",
"⪭" : "\u{2AAD}",
"⪮" : "\u{2AAE}",
"⪯" : "\u{2AAF}",
"⪯" : "\u{2AAF}",
"⪯" : "\u{2AAF}",
"⪰" : "\u{2AB0}",
"⪰" : "\u{2AB0}",
"⪰" : "\u{2AB0}",
"⪳" : "\u{2AB3}",
"⪴" : "\u{2AB4}",
"⪵" : "\u{2AB5}",
"⪵" : "\u{2AB5}",
"⪶" : "\u{2AB6}",
"⪶" : "\u{2AB6}",
"⪷" : "\u{2AB7}",
"⪷" : "\u{2AB7}",
"⪸" : "\u{2AB8}",
"⪸" : "\u{2AB8}",
"⪹" : "\u{2AB9}",
"⪹" : "\u{2AB9}",
"⪺" : "\u{2ABA}",
"⪺" : "\u{2ABA}",
"⪻" : "\u{2ABB}",
"⪼" : "\u{2ABC}",
"⪽" : "\u{2ABD}",
"⪾" : "\u{2ABE}",
"⪿" : "\u{2ABF}",
"⫀" : "\u{2AC0}",
"⫁" : "\u{2AC1}",
"⫂" : "\u{2AC2}",
"⫃" : "\u{2AC3}",
"⫄" : "\u{2AC4}",
"⫅" : "\u{2AC5}",
"⫅" : "\u{2AC5}",
"⫆" : "\u{2AC6}",
"⫆" : "\u{2AC6}",
"⫇" : "\u{2AC7}",
"⫈" : "\u{2AC8}",
"⫋" : "\u{2ACB}",
"⫋" : "\u{2ACB}",
"⫌" : "\u{2ACC}",
"⫌" : "\u{2ACC}",
"⫏" : "\u{2ACF}",
"⫐" : "\u{2AD0}",
"⫑" : "\u{2AD1}",
"⫒" : "\u{2AD2}",
"⫓" : "\u{2AD3}",
"⫔" : "\u{2AD4}",
"⫕" : "\u{2AD5}",
"⫖" : "\u{2AD6}",
"⫗" : "\u{2AD7}",
"⫘" : "\u{2AD8}",
"⫙" : "\u{2AD9}",
"⫚" : "\u{2ADA}",
"⫛" : "\u{2ADB}",
"⫤" : "\u{2AE4}",
"⫤" : "\u{2AE4}",
"⫦" : "\u{2AE6}",
"⫧" : "\u{2AE7}",
"⫨" : "\u{2AE8}",
"⫩" : "\u{2AE9}",
"⫫" : "\u{2AEB}",
"⫬" : "\u{2AEC}",
"⫭" : "\u{2AED}",
"⫮" : "\u{2AEE}",
"⫯" : "\u{2AEF}",
"⫰" : "\u{2AF0}",
"⫱" : "\u{2AF1}",
"⫲" : "\u{2AF2}",
"⫳" : "\u{2AF3}",
"⫽" : "\u{2AFD}",
"ff" : "\u{FB00}",
"fi" : "\u{FB01}",
"fl" : "\u{FB02}",
"ffi" : "\u{FB03}",
"ffl" : "\u{FB04}",
"𝒜" : "\u{1D49C}",
"𝒞" : "\u{1D49E}",
"𝒟" : "\u{1D49F}",
"𝒢" : "\u{1D4A2}",
"𝒥" : "\u{1D4A5}",
"𝒦" : "\u{1D4A6}",
"𝒩" : "\u{1D4A9}",
"𝒪" : "\u{1D4AA}",
"𝒫" : "\u{1D4AB}",
"𝒬" : "\u{1D4AC}",
"𝒮" : "\u{1D4AE}",
"𝒯" : "\u{1D4AF}",
"𝒰" : "\u{1D4B0}",
"𝒱" : "\u{1D4B1}",
"𝒲" : "\u{1D4B2}",
"𝒳" : "\u{1D4B3}",
"𝒴" : "\u{1D4B4}",
"𝒵" : "\u{1D4B5}",
"𝒶" : "\u{1D4B6}",
"𝒷" : "\u{1D4B7}",
"𝒸" : "\u{1D4B8}",
"𝒹" : "\u{1D4B9}",
"𝒻" : "\u{1D4BB}",
"𝒽" : "\u{1D4BD}",
"𝒾" : "\u{1D4BE}",
"𝒿" : "\u{1D4BF}",
"𝓀" : "\u{1D4C0}",
"𝓁" : "\u{1D4C1}",
"𝓂" : "\u{1D4C2}",
"𝓃" : "\u{1D4C3}",
"𝓅" : "\u{1D4C5}",
"𝓆" : "\u{1D4C6}",
"𝓇" : "\u{1D4C7}",
"𝓈" : "\u{1D4C8}",
"𝓉" : "\u{1D4C9}",
"𝓊" : "\u{1D4CA}",
"𝓋" : "\u{1D4CB}",
"𝓌" : "\u{1D4CC}",
"𝓍" : "\u{1D4CD}",
"𝓎" : "\u{1D4CE}",
"𝓏" : "\u{1D4CF}",
"𝔄" : "\u{1D504}",
"𝔅" : "\u{1D505}",
"𝔇" : "\u{1D507}",
"𝔈" : "\u{1D508}",
"𝔉" : "\u{1D509}",
"𝔊" : "\u{1D50A}",
"𝔍" : "\u{1D50D}",
"𝔎" : "\u{1D50E}",
"𝔏" : "\u{1D50F}",
"𝔐" : "\u{1D510}",
"𝔑" : "\u{1D511}",
"𝔒" : "\u{1D512}",
"𝔓" : "\u{1D513}",
"𝔔" : "\u{1D514}",
"𝔖" : "\u{1D516}",
"𝔗" : "\u{1D517}",
"𝔘" : "\u{1D518}",
"𝔙" : "\u{1D519}",
"𝔚" : "\u{1D51A}",
"𝔛" : "\u{1D51B}",
"𝔜" : "\u{1D51C}",
"𝔞" : "\u{1D51E}",
"𝔟" : "\u{1D51F}",
"𝔠" : "\u{1D520}",
"𝔡" : "\u{1D521}",
"𝔢" : "\u{1D522}",
"𝔣" : "\u{1D523}",
"𝔤" : "\u{1D524}",
"𝔥" : "\u{1D525}",
"𝔦" : "\u{1D526}",
"𝔧" : "\u{1D527}",
"𝔨" : "\u{1D528}",
"𝔩" : "\u{1D529}",
"𝔪" : "\u{1D52A}",
"𝔫" : "\u{1D52B}",
"𝔬" : "\u{1D52C}",
"𝔭" : "\u{1D52D}",
"𝔮" : "\u{1D52E}",
"𝔯" : "\u{1D52F}",
"𝔰" : "\u{1D530}",
"𝔱" : "\u{1D531}",
"𝔲" : "\u{1D532}",
"𝔳" : "\u{1D533}",
"𝔴" : "\u{1D534}",
"𝔵" : "\u{1D535}",
"𝔶" : "\u{1D536}",
"𝔷" : "\u{1D537}",
"𝔸" : "\u{1D538}",
"𝔹" : "\u{1D539}",
"𝔻" : "\u{1D53B}",
"𝔼" : "\u{1D53C}",
"𝔽" : "\u{1D53D}",
"𝔾" : "\u{1D53E}",
"𝕀" : "\u{1D540}",
"𝕁" : "\u{1D541}",
"𝕂" : "\u{1D542}",
"𝕃" : "\u{1D543}",
"𝕄" : "\u{1D544}",
"𝕆" : "\u{1D546}",
"𝕊" : "\u{1D54A}",
"𝕋" : "\u{1D54B}",
"𝕌" : "\u{1D54C}",
"𝕍" : "\u{1D54D}",
"𝕎" : "\u{1D54E}",
"𝕏" : "\u{1D54F}",
"𝕐" : "\u{1D550}",
"𝕒" : "\u{1D552}",
"𝕓" : "\u{1D553}",
"𝕔" : "\u{1D554}",
"𝕕" : "\u{1D555}",
"𝕖" : "\u{1D556}",
"𝕗" : "\u{1D557}",
"𝕘" : "\u{1D558}",
"𝕙" : "\u{1D559}",
"𝕚" : "\u{1D55A}",
"𝕛" : "\u{1D55B}",
"𝕜" : "\u{1D55C}",
"𝕝" : "\u{1D55D}",
"𝕞" : "\u{1D55E}",
"𝕟" : "\u{1D55F}",
"𝕠" : "\u{1D560}",
"𝕡" : "\u{1D561}",
"𝕢" : "\u{1D562}",
"𝕣" : "\u{1D563}",
"𝕤" : "\u{1D564}",
"𝕥" : "\u{1D565}",
"𝕦" : "\u{1D566}",
"𝕧" : "\u{1D567}",
"𝕨" : "\u{1D568}",
"𝕩" : "\u{1D569}",
"𝕪" : "\u{1D56A}",
"𝕫" : "\u{1D56B}"
]
extension String {
/// Returns a new string made by replacing in the `String`
/// all HTML character entity references with the corresponding
/// character.
var htmlDecoded : String {
// ===== Utility functions =====
// Convert the number in the string to the corresponding
// Unicode character, e.g.
// decodeNumeric("64", 10) --> "@"
// decodeNumeric("20ac", 16) --> "€"
func decodeNumeric(_ string : Substring, base : Int) -> Character? {
guard let code = UInt32(string, radix: base),
let uniScalar = UnicodeScalar(code) else { return nil }
return Character(uniScalar)
}
// Decode the HTML character entity to the corresponding
// Unicode character, return `nil` for invalid input.
// decode("@") --> "@"
// decode("€") --> "€"
// decode("&lt;") --> "<"
// decode("&foo;") --> nil
func decode(_ entity : Substring) -> Character? {
if entity.hasPrefix("&#x") || entity.hasPrefix("&#X") {
return decodeNumeric(entity.dropFirst(3).dropLast(), base: 16)
} else if entity.hasPrefix("&#") {
return decodeNumeric(entity.dropFirst(2).dropLast(), base: 10)
} else {
return characterEntities[entity]
}
}
// ===== Method starts here =====
var result = ""
var position = startIndex
// Find the next '&' and copy the characters preceding it to `result`:
while let ampRange = self[position...].range(of: "&") {
result.append(contentsOf: self[position ..< ampRange.lowerBound])
position = ampRange.lowerBound
// Find the next ';' and copy everything from '&' to ';' into `entity`
guard let semiRange = self[position...].range(of: ";") else {
// No matching ';'.
break
}
let entity = self[position ..< semiRange.upperBound]
position = semiRange.upperBound
if let decoded = decode(entity) {
// Replace by decoded character:
result.append(decoded)
} else {
// Invalid entity, copy verbatim:
result.append(contentsOf: entity)
}
}
// Copy remaining characters to `result`:
result.append(contentsOf: self[position...])
return result
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment