Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Support all HTML5 entities

  • Loading branch information...
commit 38875c59213d7f41f51a54fe1c094d56e533d710 1 parent 57f6d12
@etrepum etrepum authored
Showing with 2,194 additions and 272 deletions.
  1. +45 −0 scripts/entities.erl
  2. +2,130 −255 src/mochiweb_charref.erl
  3. +19 −17 src/mochiweb_html.erl
View
45 scripts/entities.erl
@@ -0,0 +1,45 @@
+#!/usr/bin/env escript
+%% -*- mode: erlang -*-
+-export([main/1]).
+
+%% @doc Script used to generate mochiweb_charref.erl table.
+
+main(_) ->
+ application:start(inets),
+ code:add_patha("ebin"),
+ {ok, {_, _, HTML}} = httpc:request("http://www.w3.org/TR/html5/named-character-references.html"),
+ print(lists:sort(search(mochiweb_html:parse(HTML)))).
+
+print([F | T]) ->
+ io:put_chars([clause(F), ";\n"]),
+ print(T);
+print([]) ->
+ io:put_chars(["entity(_) -> undefined.\n"]),
+ ok.
+
+clause({Title, [Codepoint]}) ->
+ ["entity(\"", Title, "\") -> 16#", Codepoint];
+clause({Title, [First | Rest]}) ->
+ ["entity(\"", Title, "\") -> [16#", First,
+ [[", 16#", Codepoint] || Codepoint <- Rest],
+ "]"].
+
+
+search(Elem) ->
+ search(Elem, []).
+
+search({<<"tr">>, [{<<"id">>, <<"entity-", _/binary>>} | _], Children}, Acc) ->
+ %% HTML5 charrefs can have more than one code point(!)
+ [{<<"td">>, _, [{<<"code">>, _, [TitleSemi]}]},
+ {<<"td">>, [], [RawCPs]} | _] = Children,
+ L = byte_size(TitleSemi) - 1,
+ <<Title:L/binary, $;>> = TitleSemi,
+ {match, Matches} = re:run(RawCPs, "(?:\\s*U\\+)([a-fA-F0-9]+)",
+ [{capture, all, binary}, global]),
+ [{Title, [CP || [_, CP] <- Matches]} | Acc];
+search({Tag, Attrs, [H | T]}, Acc) ->
+ search({Tag, Attrs, T}, search(H, Acc));
+search({_Tag, _Attrs, []}, Acc) ->
+ Acc;
+search(<<_/binary>>, Acc) ->
+ Acc.
View
2,385 src/mochiweb_charref.erl
@@ -1,17 +1,17 @@
%% @author Bob Ippolito <bob@mochimedia.com>
%% @copyright 2007 Mochi Media, Inc.
-%% @doc Converts HTML 4 charrefs and entities to codepoints.
+%% @doc Converts HTML 5 charrefs and entities to codepoints (or lists of code points).
-module(mochiweb_charref).
-export([charref/1]).
%% External API.
-%% @spec charref(S) -> integer() | undefined
%% @doc Convert a decimal charref, hex charref, or html entity to a unicode
%% codepoint, or return undefined on failure.
%% The input should not include an ampersand or semicolon.
%% charref("#38") = 38, charref("#x26") = 38, charref("amp") = 38.
+-spec charref(binary() | string()) -> integer() | [integer()] | undefined.
charref(B) when is_binary(B) ->
charref(binary_to_list(B));
charref([$#, C | L]) when C =:= $x orelse C =:= $X ->
@@ -29,260 +29,2135 @@ charref(L) ->
%% Internal API.
-entity("nbsp") -> 160;
-entity("iexcl") -> 161;
-entity("cent") -> 162;
-entity("pound") -> 163;
-entity("curren") -> 164;
-entity("yen") -> 165;
-entity("brvbar") -> 166;
-entity("sect") -> 167;
-entity("uml") -> 168;
-entity("copy") -> 169;
-entity("ordf") -> 170;
-entity("laquo") -> 171;
-entity("not") -> 172;
-entity("shy") -> 173;
-entity("reg") -> 174;
-entity("macr") -> 175;
-entity("deg") -> 176;
-entity("plusmn") -> 177;
-entity("sup2") -> 178;
-entity("sup3") -> 179;
-entity("acute") -> 180;
-entity("micro") -> 181;
-entity("para") -> 182;
-entity("middot") -> 183;
-entity("cedil") -> 184;
-entity("sup1") -> 185;
-entity("ordm") -> 186;
-entity("raquo") -> 187;
-entity("frac14") -> 188;
-entity("frac12") -> 189;
-entity("frac34") -> 190;
-entity("iquest") -> 191;
-entity("Agrave") -> 192;
-entity("Aacute") -> 193;
-entity("Acirc") -> 194;
-entity("Atilde") -> 195;
-entity("Auml") -> 196;
-entity("Aring") -> 197;
-entity("AElig") -> 198;
-entity("Ccedil") -> 199;
-entity("Egrave") -> 200;
-entity("Eacute") -> 201;
-entity("Ecirc") -> 202;
-entity("Euml") -> 203;
-entity("Igrave") -> 204;
-entity("Iacute") -> 205;
-entity("Icirc") -> 206;
-entity("Iuml") -> 207;
-entity("ETH") -> 208;
-entity("Ntilde") -> 209;
-entity("Ograve") -> 210;
-entity("Oacute") -> 211;
-entity("Ocirc") -> 212;
-entity("Otilde") -> 213;
-entity("Ouml") -> 214;
-entity("times") -> 215;
-entity("Oslash") -> 216;
-entity("Ugrave") -> 217;
-entity("Uacute") -> 218;
-entity("Ucirc") -> 219;
-entity("Uuml") -> 220;
-entity("Yacute") -> 221;
-entity("THORN") -> 222;
-entity("szlig") -> 223;
-entity("agrave") -> 224;
-entity("aacute") -> 225;
-entity("acirc") -> 226;
-entity("atilde") -> 227;
-entity("auml") -> 228;
-entity("aring") -> 229;
-entity("aelig") -> 230;
-entity("ccedil") -> 231;
-entity("egrave") -> 232;
-entity("eacute") -> 233;
-entity("ecirc") -> 234;
-entity("euml") -> 235;
-entity("igrave") -> 236;
-entity("iacute") -> 237;
-entity("icirc") -> 238;
-entity("iuml") -> 239;
-entity("eth") -> 240;
-entity("ntilde") -> 241;
-entity("ograve") -> 242;
-entity("oacute") -> 243;
-entity("ocirc") -> 244;
-entity("otilde") -> 245;
-entity("ouml") -> 246;
-entity("divide") -> 247;
-entity("oslash") -> 248;
-entity("ugrave") -> 249;
-entity("uacute") -> 250;
-entity("ucirc") -> 251;
-entity("uuml") -> 252;
-entity("yacute") -> 253;
-entity("thorn") -> 254;
-entity("yuml") -> 255;
-entity("fnof") -> 402;
-entity("Alpha") -> 913;
-entity("Beta") -> 914;
-entity("Gamma") -> 915;
-entity("Delta") -> 916;
-entity("Epsilon") -> 917;
-entity("Zeta") -> 918;
-entity("Eta") -> 919;
-entity("Theta") -> 920;
-entity("Iota") -> 921;
-entity("Kappa") -> 922;
-entity("Lambda") -> 923;
-entity("Mu") -> 924;
-entity("Nu") -> 925;
-entity("Xi") -> 926;
-entity("Omicron") -> 927;
-entity("Pi") -> 928;
-entity("Rho") -> 929;
-entity("Sigma") -> 931;
-entity("Tau") -> 932;
-entity("Upsilon") -> 933;
-entity("Phi") -> 934;
-entity("Chi") -> 935;
-entity("Psi") -> 936;
-entity("Omega") -> 937;
-entity("alpha") -> 945;
-entity("beta") -> 946;
-entity("gamma") -> 947;
-entity("delta") -> 948;
-entity("epsilon") -> 949;
-entity("zeta") -> 950;
-entity("eta") -> 951;
-entity("theta") -> 952;
-entity("iota") -> 953;
-entity("kappa") -> 954;
-entity("lambda") -> 955;
-entity("mu") -> 956;
-entity("nu") -> 957;
-entity("xi") -> 958;
-entity("omicron") -> 959;
-entity("pi") -> 960;
-entity("rho") -> 961;
-entity("sigmaf") -> 962;
-entity("sigma") -> 963;
-entity("tau") -> 964;
-entity("upsilon") -> 965;
-entity("phi") -> 966;
-entity("chi") -> 967;
-entity("psi") -> 968;
-entity("omega") -> 969;
-entity("thetasym") -> 977;
-entity("upsih") -> 978;
-entity("piv") -> 982;
-entity("bull") -> 8226;
-entity("hellip") -> 8230;
-entity("prime") -> 8242;
-entity("Prime") -> 8243;
-entity("oline") -> 8254;
-entity("frasl") -> 8260;
-entity("weierp") -> 8472;
-entity("image") -> 8465;
-entity("real") -> 8476;
-entity("trade") -> 8482;
-entity("alefsym") -> 8501;
-entity("larr") -> 8592;
-entity("uarr") -> 8593;
-entity("rarr") -> 8594;
-entity("darr") -> 8595;
-entity("harr") -> 8596;
-entity("crarr") -> 8629;
-entity("lArr") -> 8656;
-entity("uArr") -> 8657;
-entity("rArr") -> 8658;
-entity("dArr") -> 8659;
-entity("hArr") -> 8660;
-entity("forall") -> 8704;
-entity("part") -> 8706;
-entity("exist") -> 8707;
-entity("empty") -> 8709;
-entity("nabla") -> 8711;
-entity("isin") -> 8712;
-entity("notin") -> 8713;
-entity("ni") -> 8715;
-entity("prod") -> 8719;
-entity("sum") -> 8721;
-entity("minus") -> 8722;
-entity("lowast") -> 8727;
-entity("radic") -> 8730;
-entity("prop") -> 8733;
-entity("infin") -> 8734;
-entity("ang") -> 8736;
-entity("and") -> 8743;
-entity("or") -> 8744;
-entity("cap") -> 8745;
-entity("cup") -> 8746;
-entity("int") -> 8747;
-entity("there4") -> 8756;
-entity("sim") -> 8764;
-entity("cong") -> 8773;
-entity("asymp") -> 8776;
-entity("ne") -> 8800;
-entity("equiv") -> 8801;
-entity("le") -> 8804;
-entity("ge") -> 8805;
-entity("sub") -> 8834;
-entity("sup") -> 8835;
-entity("nsub") -> 8836;
-entity("sube") -> 8838;
-entity("supe") -> 8839;
-entity("oplus") -> 8853;
-entity("otimes") -> 8855;
-entity("perp") -> 8869;
-entity("sdot") -> 8901;
-entity("lceil") -> 8968;
-entity("rceil") -> 8969;
-entity("lfloor") -> 8970;
-entity("rfloor") -> 8971;
-entity("lang") -> 9001;
-entity("rang") -> 9002;
-entity("loz") -> 9674;
-entity("spades") -> 9824;
-entity("clubs") -> 9827;
-entity("hearts") -> 9829;
-entity("diams") -> 9830;
-entity("quot") -> 34;
-entity("amp") -> 38;
-entity("lt") -> 60;
-entity("gt") -> 62;
-entity("OElig") -> 338;
-entity("oelig") -> 339;
-entity("Scaron") -> 352;
-entity("scaron") -> 353;
-entity("Yuml") -> 376;
-entity("circ") -> 710;
-entity("tilde") -> 732;
-entity("ensp") -> 8194;
-entity("emsp") -> 8195;
-entity("thinsp") -> 8201;
-entity("zwnj") -> 8204;
-entity("zwj") -> 8205;
-entity("lrm") -> 8206;
-entity("rlm") -> 8207;
-entity("ndash") -> 8211;
-entity("mdash") -> 8212;
-entity("lsquo") -> 8216;
-entity("rsquo") -> 8217;
-entity("sbquo") -> 8218;
-entity("ldquo") -> 8220;
-entity("rdquo") -> 8221;
-entity("bdquo") -> 8222;
-entity("dagger") -> 8224;
-entity("Dagger") -> 8225;
-entity("permil") -> 8240;
-entity("lsaquo") -> 8249;
-entity("rsaquo") -> 8250;
-entity("euro") -> 8364;
-entity(_) -> undefined.
+%% [2011-10-14] Generated from:
+%% http://www.w3.org/TR/html5/named-character-references.html
+entity("AElig") -> 16#000C6;
+entity("AMP") -> 16#00026;
+entity("Aacute") -> 16#000C1;
+entity("Abreve") -> 16#00102;
+entity("Acirc") -> 16#000C2;
+entity("Acy") -> 16#00410;
+entity("Afr") -> 16#1D504;
+entity("Agrave") -> 16#000C0;
+entity("Alpha") -> 16#00391;
+entity("Amacr") -> 16#00100;
+entity("And") -> 16#02A53;
+entity("Aogon") -> 16#00104;
+entity("Aopf") -> 16#1D538;
+entity("ApplyFunction") -> 16#02061;
+entity("Aring") -> 16#000C5;
+entity("Ascr") -> 16#1D49C;
+entity("Assign") -> 16#02254;
+entity("Atilde") -> 16#000C3;
+entity("Auml") -> 16#000C4;
+entity("Backslash") -> 16#02216;
+entity("Barv") -> 16#02AE7;
+entity("Barwed") -> 16#02306;
+entity("Bcy") -> 16#00411;
+entity("Because") -> 16#02235;
+entity("Bernoullis") -> 16#0212C;
+entity("Beta") -> 16#00392;
+entity("Bfr") -> 16#1D505;
+entity("Bopf") -> 16#1D539;
+entity("Breve") -> 16#002D8;
+entity("Bscr") -> 16#0212C;
+entity("Bumpeq") -> 16#0224E;
+entity("CHcy") -> 16#00427;
+entity("COPY") -> 16#000A9;
+entity("Cacute") -> 16#00106;
+entity("Cap") -> 16#022D2;
+entity("CapitalDifferentialD") -> 16#02145;
+entity("Cayleys") -> 16#0212D;
+entity("Ccaron") -> 16#0010C;
+entity("Ccedil") -> 16#000C7;
+entity("Ccirc") -> 16#00108;
+entity("Cconint") -> 16#02230;
+entity("Cdot") -> 16#0010A;
+entity("Cedilla") -> 16#000B8;
+entity("CenterDot") -> 16#000B7;
+entity("Cfr") -> 16#0212D;
+entity("Chi") -> 16#003A7;
+entity("CircleDot") -> 16#02299;
+entity("CircleMinus") -> 16#02296;
+entity("CirclePlus") -> 16#02295;
+entity("CircleTimes") -> 16#02297;
+entity("ClockwiseContourIntegral") -> 16#02232;
+entity("CloseCurlyDoubleQuote") -> 16#0201D;
+entity("CloseCurlyQuote") -> 16#02019;
+entity("Colon") -> 16#02237;
+entity("Colone") -> 16#02A74;
+entity("Congruent") -> 16#02261;
+entity("Conint") -> 16#0222F;
+entity("ContourIntegral") -> 16#0222E;
+entity("Copf") -> 16#02102;
+entity("Coproduct") -> 16#02210;
+entity("CounterClockwiseContourIntegral") -> 16#02233;
+entity("Cross") -> 16#02A2F;
+entity("Cscr") -> 16#1D49E;
+entity("Cup") -> 16#022D3;
+entity("CupCap") -> 16#0224D;
+entity("DD") -> 16#02145;
+entity("DDotrahd") -> 16#02911;
+entity("DJcy") -> 16#00402;
+entity("DScy") -> 16#00405;
+entity("DZcy") -> 16#0040F;
+entity("Dagger") -> 16#02021;
+entity("Darr") -> 16#021A1;
+entity("Dashv") -> 16#02AE4;
+entity("Dcaron") -> 16#0010E;
+entity("Dcy") -> 16#00414;
+entity("Del") -> 16#02207;
+entity("Delta") -> 16#00394;
+entity("Dfr") -> 16#1D507;
+entity("DiacriticalAcute") -> 16#000B4;
+entity("DiacriticalDot") -> 16#002D9;
+entity("DiacriticalDoubleAcute") -> 16#002DD;
+entity("DiacriticalGrave") -> 16#00060;
+entity("DiacriticalTilde") -> 16#002DC;
+entity("Diamond") -> 16#022C4;
+entity("DifferentialD") -> 16#02146;
+entity("Dopf") -> 16#1D53B;
+entity("Dot") -> 16#000A8;
+entity("DotDot") -> 16#020DC;
+entity("DotEqual") -> 16#02250;
+entity("DoubleContourIntegral") -> 16#0222F;
+entity("DoubleDot") -> 16#000A8;
+entity("DoubleDownArrow") -> 16#021D3;
+entity("DoubleLeftArrow") -> 16#021D0;
+entity("DoubleLeftRightArrow") -> 16#021D4;
+entity("DoubleLeftTee") -> 16#02AE4;
+entity("DoubleLongLeftArrow") -> 16#027F8;
+entity("DoubleLongLeftRightArrow") -> 16#027FA;
+entity("DoubleLongRightArrow") -> 16#027F9;
+entity("DoubleRightArrow") -> 16#021D2;
+entity("DoubleRightTee") -> 16#022A8;
+entity("DoubleUpArrow") -> 16#021D1;
+entity("DoubleUpDownArrow") -> 16#021D5;
+entity("DoubleVerticalBar") -> 16#02225;
+entity("DownArrow") -> 16#02193;
+entity("DownArrowBar") -> 16#02913;
+entity("DownArrowUpArrow") -> 16#021F5;
+entity("DownBreve") -> 16#00311;
+entity("DownLeftRightVector") -> 16#02950;
+entity("DownLeftTeeVector") -> 16#0295E;
+entity("DownLeftVector") -> 16#021BD;
+entity("DownLeftVectorBar") -> 16#02956;
+entity("DownRightTeeVector") -> 16#0295F;
+entity("DownRightVector") -> 16#021C1;
+entity("DownRightVectorBar") -> 16#02957;
+entity("DownTee") -> 16#022A4;
+entity("DownTeeArrow") -> 16#021A7;
+entity("Downarrow") -> 16#021D3;
+entity("Dscr") -> 16#1D49F;
+entity("Dstrok") -> 16#00110;
+entity("ENG") -> 16#0014A;
+entity("ETH") -> 16#000D0;
+entity("Eacute") -> 16#000C9;
+entity("Ecaron") -> 16#0011A;
+entity("Ecirc") -> 16#000CA;
+entity("Ecy") -> 16#0042D;
+entity("Edot") -> 16#00116;
+entity("Efr") -> 16#1D508;
+entity("Egrave") -> 16#000C8;
+entity("Element") -> 16#02208;
+entity("Emacr") -> 16#00112;
+entity("EmptySmallSquare") -> 16#025FB;
+entity("EmptyVerySmallSquare") -> 16#025AB;
+entity("Eogon") -> 16#00118;
+entity("Eopf") -> 16#1D53C;
+entity("Epsilon") -> 16#00395;
+entity("Equal") -> 16#02A75;
+entity("EqualTilde") -> 16#02242;
+entity("Equilibrium") -> 16#021CC;
+entity("Escr") -> 16#02130;
+entity("Esim") -> 16#02A73;
+entity("Eta") -> 16#00397;
+entity("Euml") -> 16#000CB;
+entity("Exists") -> 16#02203;
+entity("ExponentialE") -> 16#02147;
+entity("Fcy") -> 16#00424;
+entity("Ffr") -> 16#1D509;
+entity("FilledSmallSquare") -> 16#025FC;
+entity("FilledVerySmallSquare") -> 16#025AA;
+entity("Fopf") -> 16#1D53D;
+entity("ForAll") -> 16#02200;
+entity("Fouriertrf") -> 16#02131;
+entity("Fscr") -> 16#02131;
+entity("GJcy") -> 16#00403;
+entity("GT") -> 16#0003E;
+entity("Gamma") -> 16#00393;
+entity("Gammad") -> 16#003DC;
+entity("Gbreve") -> 16#0011E;
+entity("Gcedil") -> 16#00122;
+entity("Gcirc") -> 16#0011C;
+entity("Gcy") -> 16#00413;
+entity("Gdot") -> 16#00120;
+entity("Gfr") -> 16#1D50A;
+entity("Gg") -> 16#022D9;
+entity("Gopf") -> 16#1D53E;
+entity("GreaterEqual") -> 16#02265;
+entity("GreaterEqualLess") -> 16#022DB;
+entity("GreaterFullEqual") -> 16#02267;
+entity("GreaterGreater") -> 16#02AA2;
+entity("GreaterLess") -> 16#02277;
+entity("GreaterSlantEqual") -> 16#02A7E;
+entity("GreaterTilde") -> 16#02273;
+entity("Gscr") -> 16#1D4A2;
+entity("Gt") -> 16#0226B;
+entity("HARDcy") -> 16#0042A;
+entity("Hacek") -> 16#002C7;
+entity("Hat") -> 16#0005E;
+entity("Hcirc") -> 16#00124;
+entity("Hfr") -> 16#0210C;
+entity("HilbertSpace") -> 16#0210B;
+entity("Hopf") -> 16#0210D;
+entity("HorizontalLine") -> 16#02500;
+entity("Hscr") -> 16#0210B;
+entity("Hstrok") -> 16#00126;
+entity("HumpDownHump") -> 16#0224E;
+entity("HumpEqual") -> 16#0224F;
+entity("IEcy") -> 16#00415;
+entity("IJlig") -> 16#00132;
+entity("IOcy") -> 16#00401;
+entity("Iacute") -> 16#000CD;
+entity("Icirc") -> 16#000CE;
+entity("Icy") -> 16#00418;
+entity("Idot") -> 16#00130;
+entity("Ifr") -> 16#02111;
+entity("Igrave") -> 16#000CC;
+entity("Im") -> 16#02111;
+entity("Imacr") -> 16#0012A;
+entity("ImaginaryI") -> 16#02148;
+entity("Implies") -> 16#021D2;
+entity("Int") -> 16#0222C;
+entity("Integral") -> 16#0222B;
+entity("Intersection") -> 16#022C2;
+entity("InvisibleComma") -> 16#02063;
+entity("InvisibleTimes") -> 16#02062;
+entity("Iogon") -> 16#0012E;
+entity("Iopf") -> 16#1D540;
+entity("Iota") -> 16#00399;
+entity("Iscr") -> 16#02110;
+entity("Itilde") -> 16#00128;
+entity("Iukcy") -> 16#00406;
+entity("Iuml") -> 16#000CF;
+entity("Jcirc") -> 16#00134;
+entity("Jcy") -> 16#00419;
+entity("Jfr") -> 16#1D50D;
+entity("Jopf") -> 16#1D541;
+entity("Jscr") -> 16#1D4A5;
+entity("Jsercy") -> 16#00408;
+entity("Jukcy") -> 16#00404;
+entity("KHcy") -> 16#00425;
+entity("KJcy") -> 16#0040C;
+entity("Kappa") -> 16#0039A;
+entity("Kcedil") -> 16#00136;
+entity("Kcy") -> 16#0041A;
+entity("Kfr") -> 16#1D50E;
+entity("Kopf") -> 16#1D542;
+entity("Kscr") -> 16#1D4A6;
+entity("LJcy") -> 16#00409;
+entity("LT") -> 16#0003C;
+entity("Lacute") -> 16#00139;
+entity("Lambda") -> 16#0039B;
+entity("Lang") -> 16#027EA;
+entity("Laplacetrf") -> 16#02112;
+entity("Larr") -> 16#0219E;
+entity("Lcaron") -> 16#0013D;
+entity("Lcedil") -> 16#0013B;
+entity("Lcy") -> 16#0041B;
+entity("LeftAngleBracket") -> 16#027E8;
+entity("LeftArrow") -> 16#02190;
+entity("LeftArrowBar") -> 16#021E4;
+entity("LeftArrowRightArrow") -> 16#021C6;
+entity("LeftCeiling") -> 16#02308;
+entity("LeftDoubleBracket") -> 16#027E6;
+entity("LeftDownTeeVector") -> 16#02961;
+entity("LeftDownVector") -> 16#021C3;
+entity("LeftDownVectorBar") -> 16#02959;
+entity("LeftFloor") -> 16#0230A;
+entity("LeftRightArrow") -> 16#02194;
+entity("LeftRightVector") -> 16#0294E;
+entity("LeftTee") -> 16#022A3;
+entity("LeftTeeArrow") -> 16#021A4;
+entity("LeftTeeVector") -> 16#0295A;
+entity("LeftTriangle") -> 16#022B2;
+entity("LeftTriangleBar") -> 16#029CF;
+entity("LeftTriangleEqual") -> 16#022B4;
+entity("LeftUpDownVector") -> 16#02951;
+entity("LeftUpTeeVector") -> 16#02960;
+entity("LeftUpVector") -> 16#021BF;
+entity("LeftUpVectorBar") -> 16#02958;
+entity("LeftVector") -> 16#021BC;
+entity("LeftVectorBar") -> 16#02952;
+entity("Leftarrow") -> 16#021D0;
+entity("Leftrightarrow") -> 16#021D4;
+entity("LessEqualGreater") -> 16#022DA;
+entity("LessFullEqual") -> 16#02266;
+entity("LessGreater") -> 16#02276;
+entity("LessLess") -> 16#02AA1;
+entity("LessSlantEqual") -> 16#02A7D;
+entity("LessTilde") -> 16#02272;
+entity("Lfr") -> 16#1D50F;
+entity("Ll") -> 16#022D8;
+entity("Lleftarrow") -> 16#021DA;
+entity("Lmidot") -> 16#0013F;
+entity("LongLeftArrow") -> 16#027F5;
+entity("LongLeftRightArrow") -> 16#027F7;
+entity("LongRightArrow") -> 16#027F6;
+entity("Longleftarrow") -> 16#027F8;
+entity("Longleftrightarrow") -> 16#027FA;
+entity("Longrightarrow") -> 16#027F9;
+entity("Lopf") -> 16#1D543;
+entity("LowerLeftArrow") -> 16#02199;
+entity("LowerRightArrow") -> 16#02198;
+entity("Lscr") -> 16#02112;
+entity("Lsh") -> 16#021B0;
+entity("Lstrok") -> 16#00141;
+entity("Lt") -> 16#0226A;
+entity("Map") -> 16#02905;
+entity("Mcy") -> 16#0041C;
+entity("MediumSpace") -> 16#0205F;
+entity("Mellintrf") -> 16#02133;
+entity("Mfr") -> 16#1D510;
+entity("MinusPlus") -> 16#02213;
+entity("Mopf") -> 16#1D544;
+entity("Mscr") -> 16#02133;
+entity("Mu") -> 16#0039C;
+entity("NJcy") -> 16#0040A;
+entity("Nacute") -> 16#00143;
+entity("Ncaron") -> 16#00147;
+entity("Ncedil") -> 16#00145;
+entity("Ncy") -> 16#0041D;
+entity("NegativeMediumSpace") -> 16#0200B;
+entity("NegativeThickSpace") -> 16#0200B;
+entity("NegativeThinSpace") -> 16#0200B;
+entity("NegativeVeryThinSpace") -> 16#0200B;
+entity("NestedGreaterGreater") -> 16#0226B;
+entity("NestedLessLess") -> 16#0226A;
+entity("NewLine") -> 16#0000A;
+entity("Nfr") -> 16#1D511;
+entity("NoBreak") -> 16#02060;
+entity("NonBreakingSpace") -> 16#000A0;
+entity("Nopf") -> 16#02115;
+entity("Not") -> 16#02AEC;
+entity("NotCongruent") -> 16#02262;
+entity("NotCupCap") -> 16#0226D;
+entity("NotDoubleVerticalBar") -> 16#02226;
+entity("NotElement") -> 16#02209;
+entity("NotEqual") -> 16#02260;
+entity("NotEqualTilde") -> [16#02242, 16#00338];
+entity("NotExists") -> 16#02204;
+entity("NotGreater") -> 16#0226F;
+entity("NotGreaterEqual") -> 16#02271;
+entity("NotGreaterFullEqual") -> [16#02267, 16#00338];
+entity("NotGreaterGreater") -> [16#0226B, 16#00338];
+entity("NotGreaterLess") -> 16#02279;
+entity("NotGreaterSlantEqual") -> [16#02A7E, 16#00338];
+entity("NotGreaterTilde") -> 16#02275;
+entity("NotHumpDownHump") -> [16#0224E, 16#00338];
+entity("NotHumpEqual") -> [16#0224F, 16#00338];
+entity("NotLeftTriangle") -> 16#022EA;
+entity("NotLeftTriangleBar") -> [16#029CF, 16#00338];
+entity("NotLeftTriangleEqual") -> 16#022EC;
+entity("NotLess") -> 16#0226E;
+entity("NotLessEqual") -> 16#02270;
+entity("NotLessGreater") -> 16#02278;
+entity("NotLessLess") -> [16#0226A, 16#00338];
+entity("NotLessSlantEqual") -> [16#02A7D, 16#00338];
+entity("NotLessTilde") -> 16#02274;
+entity("NotNestedGreaterGreater") -> [16#02AA2, 16#00338];
+entity("NotNestedLessLess") -> [16#02AA1, 16#00338];
+entity("NotPrecedes") -> 16#02280;
+entity("NotPrecedesEqual") -> [16#02AAF, 16#00338];
+entity("NotPrecedesSlantEqual") -> 16#022E0;
+entity("NotReverseElement") -> 16#0220C;
+entity("NotRightTriangle") -> 16#022EB;
+entity("NotRightTriangleBar") -> [16#029D0, 16#00338];
+entity("NotRightTriangleEqual") -> 16#022ED;
+entity("NotSquareSubset") -> [16#0228F, 16#00338];
+entity("NotSquareSubsetEqual") -> 16#022E2;
+entity("NotSquareSuperset") -> [16#02290, 16#00338];
+entity("NotSquareSupersetEqual") -> 16#022E3;
+entity("NotSubset") -> [16#02282, 16#020D2];
+entity("NotSubsetEqual") -> 16#02288;
+entity("NotSucceeds") -> 16#02281;
+entity("NotSucceedsEqual") -> [16#02AB0, 16#00338];
+entity("NotSucceedsSlantEqual") -> 16#022E1;
+entity("NotSucceedsTilde") -> [16#0227F, 16#00338];
+entity("NotSuperset") -> [16#02283, 16#020D2];
+entity("NotSupersetEqual") -> 16#02289;
+entity("NotTilde") -> 16#02241;
+entity("NotTildeEqual") -> 16#02244;
+entity("NotTildeFullEqual") -> 16#02247;
+entity("NotTildeTilde") -> 16#02249;
+entity("NotVerticalBar") -> 16#02224;
+entity("Nscr") -> 16#1D4A9;
+entity("Ntilde") -> 16#000D1;
+entity("Nu") -> 16#0039D;
+entity("OElig") -> 16#00152;
+entity("Oacute") -> 16#000D3;
+entity("Ocirc") -> 16#000D4;
+entity("Ocy") -> 16#0041E;
+entity("Odblac") -> 16#00150;
+entity("Ofr") -> 16#1D512;
+entity("Ograve") -> 16#000D2;
+entity("Omacr") -> 16#0014C;
+entity("Omega") -> 16#003A9;
+entity("Omicron") -> 16#0039F;
+entity("Oopf") -> 16#1D546;
+entity("OpenCurlyDoubleQuote") -> 16#0201C;
+entity("OpenCurlyQuote") -> 16#02018;
+entity("Or") -> 16#02A54;
+entity("Oscr") -> 16#1D4AA;
+entity("Oslash") -> 16#000D8;
+entity("Otilde") -> 16#000D5;
+entity("Otimes") -> 16#02A37;
+entity("Ouml") -> 16#000D6;
+entity("OverBar") -> 16#0203E;
+entity("OverBrace") -> 16#023DE;
+entity("OverBracket") -> 16#023B4;
+entity("OverParenthesis") -> 16#023DC;
+entity("PartialD") -> 16#02202;
+entity("Pcy") -> 16#0041F;
+entity("Pfr") -> 16#1D513;
+entity("Phi") -> 16#003A6;
+entity("Pi") -> 16#003A0;
+entity("PlusMinus") -> 16#000B1;
+entity("Poincareplane") -> 16#0210C;
+entity("Popf") -> 16#02119;
+entity("Pr") -> 16#02ABB;
+entity("Precedes") -> 16#0227A;
+entity("PrecedesEqual") -> 16#02AAF;
+entity("PrecedesSlantEqual") -> 16#0227C;
+entity("PrecedesTilde") -> 16#0227E;
+entity("Prime") -> 16#02033;
+entity("Product") -> 16#0220F;
+entity("Proportion") -> 16#02237;
+entity("Proportional") -> 16#0221D;
+entity("Pscr") -> 16#1D4AB;
+entity("Psi") -> 16#003A8;
+entity("QUOT") -> 16#00022;
+entity("Qfr") -> 16#1D514;
+entity("Qopf") -> 16#0211A;
+entity("Qscr") -> 16#1D4AC;
+entity("RBarr") -> 16#02910;
+entity("REG") -> 16#000AE;
+entity("Racute") -> 16#00154;
+entity("Rang") -> 16#027EB;
+entity("Rarr") -> 16#021A0;
+entity("Rarrtl") -> 16#02916;
+entity("Rcaron") -> 16#00158;
+entity("Rcedil") -> 16#00156;
+entity("Rcy") -> 16#00420;
+entity("Re") -> 16#0211C;
+entity("ReverseElement") -> 16#0220B;
+entity("ReverseEquilibrium") -> 16#021CB;
+entity("ReverseUpEquilibrium") -> 16#0296F;
+entity("Rfr") -> 16#0211C;
+entity("Rho") -> 16#003A1;
+entity("RightAngleBracket") -> 16#027E9;
+entity("RightArrow") -> 16#02192;
+entity("RightArrowBar") -> 16#021E5;
+entity("RightArrowLeftArrow") -> 16#021C4;
+entity("RightCeiling") -> 16#02309;
+entity("RightDoubleBracket") -> 16#027E7;
+entity("RightDownTeeVector") -> 16#0295D;
+entity("RightDownVector") -> 16#021C2;
+entity("RightDownVectorBar") -> 16#02955;
+entity("RightFloor") -> 16#0230B;
+entity("RightTee") -> 16#022A2;
+entity("RightTeeArrow") -> 16#021A6;
+entity("RightTeeVector") -> 16#0295B;
+entity("RightTriangle") -> 16#022B3;
+entity("RightTriangleBar") -> 16#029D0;
+entity("RightTriangleEqual") -> 16#022B5;
+entity("RightUpDownVector") -> 16#0294F;
+entity("RightUpTeeVector") -> 16#0295C;
+entity("RightUpVector") -> 16#021BE;
+entity("RightUpVectorBar") -> 16#02954;
+entity("RightVector") -> 16#021C0;
+entity("RightVectorBar") -> 16#02953;
+entity("Rightarrow") -> 16#021D2;
+entity("Ropf") -> 16#0211D;
+entity("RoundImplies") -> 16#02970;
+entity("Rrightarrow") -> 16#021DB;
+entity("Rscr") -> 16#0211B;
+entity("Rsh") -> 16#021B1;
+entity("RuleDelayed") -> 16#029F4;
+entity("SHCHcy") -> 16#00429;
+entity("SHcy") -> 16#00428;
+entity("SOFTcy") -> 16#0042C;
+entity("Sacute") -> 16#0015A;
+entity("Sc") -> 16#02ABC;
+entity("Scaron") -> 16#00160;
+entity("Scedil") -> 16#0015E;
+entity("Scirc") -> 16#0015C;
+entity("Scy") -> 16#00421;
+entity("Sfr") -> 16#1D516;
+entity("ShortDownArrow") -> 16#02193;
+entity("ShortLeftArrow") -> 16#02190;
+entity("ShortRightArrow") -> 16#02192;
+entity("ShortUpArrow") -> 16#02191;
+entity("Sigma") -> 16#003A3;
+entity("SmallCircle") -> 16#02218;
+entity("Sopf") -> 16#1D54A;
+entity("Sqrt") -> 16#0221A;
+entity("Square") -> 16#025A1;
+entity("SquareIntersection") -> 16#02293;
+entity("SquareSubset") -> 16#0228F;
+entity("SquareSubsetEqual") -> 16#02291;
+entity("SquareSuperset") -> 16#02290;
+entity("SquareSupersetEqual") -> 16#02292;
+entity("SquareUnion") -> 16#02294;
+entity("Sscr") -> 16#1D4AE;
+entity("Star") -> 16#022C6;
+entity("Sub") -> 16#022D0;
+entity("Subset") -> 16#022D0;
+entity("SubsetEqual") -> 16#02286;
+entity("Succeeds") -> 16#0227B;
+entity("SucceedsEqual") -> 16#02AB0;
+entity("SucceedsSlantEqual") -> 16#0227D;
+entity("SucceedsTilde") -> 16#0227F;
+entity("SuchThat") -> 16#0220B;
+entity("Sum") -> 16#02211;
+entity("Sup") -> 16#022D1;
+entity("Superset") -> 16#02283;
+entity("SupersetEqual") -> 16#02287;
+entity("Supset") -> 16#022D1;
+entity("THORN") -> 16#000DE;
+entity("TRADE") -> 16#02122;
+entity("TSHcy") -> 16#0040B;
+entity("TScy") -> 16#00426;
+entity("Tab") -> 16#00009;
+entity("Tau") -> 16#003A4;
+entity("Tcaron") -> 16#00164;
+entity("Tcedil") -> 16#00162;
+entity("Tcy") -> 16#00422;
+entity("Tfr") -> 16#1D517;
+entity("Therefore") -> 16#02234;
+entity("Theta") -> 16#00398;
+entity("ThickSpace") -> [16#0205F, 16#0200A];
+entity("ThinSpace") -> 16#02009;
+entity("Tilde") -> 16#0223C;
+entity("TildeEqual") -> 16#02243;
+entity("TildeFullEqual") -> 16#02245;
+entity("TildeTilde") -> 16#02248;
+entity("Topf") -> 16#1D54B;
+entity("TripleDot") -> 16#020DB;
+entity("Tscr") -> 16#1D4AF;
+entity("Tstrok") -> 16#00166;
+entity("Uacute") -> 16#000DA;
+entity("Uarr") -> 16#0219F;
+entity("Uarrocir") -> 16#02949;
+entity("Ubrcy") -> 16#0040E;
+entity("Ubreve") -> 16#0016C;
+entity("Ucirc") -> 16#000DB;
+entity("Ucy") -> 16#00423;
+entity("Udblac") -> 16#00170;
+entity("Ufr") -> 16#1D518;
+entity("Ugrave") -> 16#000D9;
+entity("Umacr") -> 16#0016A;
+entity("UnderBar") -> 16#0005F;
+entity("UnderBrace") -> 16#023DF;
+entity("UnderBracket") -> 16#023B5;
+entity("UnderParenthesis") -> 16#023DD;
+entity("Union") -> 16#022C3;
+entity("UnionPlus") -> 16#0228E;
+entity("Uogon") -> 16#00172;
+entity("Uopf") -> 16#1D54C;
+entity("UpArrow") -> 16#02191;
+entity("UpArrowBar") -> 16#02912;
+entity("UpArrowDownArrow") -> 16#021C5;
+entity("UpDownArrow") -> 16#02195;
+entity("UpEquilibrium") -> 16#0296E;
+entity("UpTee") -> 16#022A5;
+entity("UpTeeArrow") -> 16#021A5;
+entity("Uparrow") -> 16#021D1;
+entity("Updownarrow") -> 16#021D5;
+entity("UpperLeftArrow") -> 16#02196;
+entity("UpperRightArrow") -> 16#02197;
+entity("Upsi") -> 16#003D2;
+entity("Upsilon") -> 16#003A5;
+entity("Uring") -> 16#0016E;
+entity("Uscr") -> 16#1D4B0;
+entity("Utilde") -> 16#00168;
+entity("Uuml") -> 16#000DC;
+entity("VDash") -> 16#022AB;
+entity("Vbar") -> 16#02AEB;
+entity("Vcy") -> 16#00412;
+entity("Vdash") -> 16#022A9;
+entity("Vdashl") -> 16#02AE6;
+entity("Vee") -> 16#022C1;
+entity("Verbar") -> 16#02016;
+entity("Vert") -> 16#02016;
+entity("VerticalBar") -> 16#02223;
+entity("VerticalLine") -> 16#0007C;
+entity("VerticalSeparator") -> 16#02758;
+entity("VerticalTilde") -> 16#02240;
+entity("VeryThinSpace") -> 16#0200A;
+entity("Vfr") -> 16#1D519;
+entity("Vopf") -> 16#1D54D;
+entity("Vscr") -> 16#1D4B1;
+entity("Vvdash") -> 16#022AA;
+entity("Wcirc") -> 16#00174;
+entity("Wedge") -> 16#022C0;
+entity("Wfr") -> 16#1D51A;
+entity("Wopf") -> 16#1D54E;
+entity("Wscr") -> 16#1D4B2;
+entity("Xfr") -> 16#1D51B;
+entity("Xi") -> 16#0039E;
+entity("Xopf") -> 16#1D54F;
+entity("Xscr") -> 16#1D4B3;
+entity("YAcy") -> 16#0042F;
+entity("YIcy") -> 16#00407;
+entity("YUcy") -> 16#0042E;
+entity("Yacute") -> 16#000DD;
+entity("Ycirc") -> 16#00176;
+entity("Ycy") -> 16#0042B;
+entity("Yfr") -> 16#1D51C;
+entity("Yopf") -> 16#1D550;
+entity("Yscr") -> 16#1D4B4;
+entity("Yuml") -> 16#00178;
+entity("ZHcy") -> 16#00416;
+entity("Zacute") -> 16#00179;
+entity("Zcaron") -> 16#0017D;
+entity("Zcy") -> 16#00417;
+entity("Zdot") -> 16#0017B;
+entity("ZeroWidthSpace") -> 16#0200B;
+entity("Zeta") -> 16#00396;
+entity("Zfr") -> 16#02128;
+entity("Zopf") -> 16#02124;
+entity("Zscr") -> 16#1D4B5;
+entity("aacute") -> 16#000E1;
+entity("abreve") -> 16#00103;
+entity("ac") -> 16#0223E;
+entity("acE") -> [16#0223E, 16#00333];
+entity("acd") -> 16#0223F;
+entity("acirc") -> 16#000E2;
+entity("acute") -> 16#000B4;
+entity("acy") -> 16#00430;
+entity("aelig") -> 16#000E6;
+entity("af") -> 16#02061;
+entity("afr") -> 16#1D51E;
+entity("agrave") -> 16#000E0;
+entity("alefsym") -> 16#02135;
+entity("aleph") -> 16#02135;
+entity("alpha") -> 16#003B1;
+entity("amacr") -> 16#00101;
+entity("amalg") -> 16#02A3F;
+entity("amp") -> 16#00026;
+entity("and") -> 16#02227;
+entity("andand") -> 16#02A55;
+entity("andd") -> 16#02A5C;
+entity("andslope") -> 16#02A58;
+entity("andv") -> 16#02A5A;
+entity("ang") -> 16#02220;
+entity("ange") -> 16#029A4;
+entity("angle") -> 16#02220;
+entity("angmsd") -> 16#02221;
+entity("angmsdaa") -> 16#029A8;
+entity("angmsdab") -> 16#029A9;
+entity("angmsdac") -> 16#029AA;
+entity("angmsdad") -> 16#029AB;
+entity("angmsdae") -> 16#029AC;
+entity("angmsdaf") -> 16#029AD;
+entity("angmsdag") -> 16#029AE;
+entity("angmsdah") -> 16#029AF;
+entity("angrt") -> 16#0221F;
+entity("angrtvb") -> 16#022BE;
+entity("angrtvbd") -> 16#0299D;
+entity("angsph") -> 16#02222;
+entity("angst") -> 16#000C5;
+entity("angzarr") -> 16#0237C;
+entity("aogon") -> 16#00105;
+entity("aopf") -> 16#1D552;
+entity("ap") -> 16#02248;
+entity("apE") -> 16#02A70;
+entity("apacir") -> 16#02A6F;
+entity("ape") -> 16#0224A;
+entity("apid") -> 16#0224B;
+entity("apos") -> 16#00027;
+entity("approx") -> 16#02248;
+entity("approxeq") -> 16#0224A;
+entity("aring") -> 16#000E5;
+entity("ascr") -> 16#1D4B6;
+entity("ast") -> 16#0002A;
+entity("asymp") -> 16#02248;
+entity("asympeq") -> 16#0224D;
+entity("atilde") -> 16#000E3;
+entity("auml") -> 16#000E4;
+entity("awconint") -> 16#02233;
+entity("awint") -> 16#02A11;
+entity("bNot") -> 16#02AED;
+entity("backcong") -> 16#0224C;
+entity("backepsilon") -> 16#003F6;
+entity("backprime") -> 16#02035;
+entity("backsim") -> 16#0223D;
+entity("backsimeq") -> 16#022CD;
+entity("barvee") -> 16#022BD;
+entity("barwed") -> 16#02305;
+entity("barwedge") -> 16#02305;
+entity("bbrk") -> 16#023B5;
+entity("bbrktbrk") -> 16#023B6;
+entity("bcong") -> 16#0224C;
+entity("bcy") -> 16#00431;
+entity("bdquo") -> 16#0201E;
+entity("becaus") -> 16#02235;
+entity("because") -> 16#02235;
+entity("bemptyv") -> 16#029B0;
+entity("bepsi") -> 16#003F6;
+entity("bernou") -> 16#0212C;
+entity("beta") -> 16#003B2;
+entity("beth") -> 16#02136;
+entity("between") -> 16#0226C;
+entity("bfr") -> 16#1D51F;
+entity("bigcap") -> 16#022C2;
+entity("bigcirc") -> 16#025EF;
+entity("bigcup") -> 16#022C3;
+entity("bigodot") -> 16#02A00;
+entity("bigoplus") -> 16#02A01;
+entity("bigotimes") -> 16#02A02;
+entity("bigsqcup") -> 16#02A06;
+entity("bigstar") -> 16#02605;
+entity("bigtriangledown") -> 16#025BD;
+entity("bigtriangleup") -> 16#025B3;
+entity("biguplus") -> 16#02A04;
+entity("bigvee") -> 16#022C1;
+entity("bigwedge") -> 16#022C0;
+entity("bkarow") -> 16#0290D;
+entity("blacklozenge") -> 16#029EB;
+entity("blacksquare") -> 16#025AA;
+entity("blacktriangle") -> 16#025B4;
+entity("blacktriangledown") -> 16#025BE;
+entity("blacktriangleleft") -> 16#025C2;
+entity("blacktriangleright") -> 16#025B8;
+entity("blank") -> 16#02423;
+entity("blk12") -> 16#02592;
+entity("blk14") -> 16#02591;
+entity("blk34") -> 16#02593;
+entity("block") -> 16#02588;
+entity("bne") -> [16#0003D, 16#020E5];
+entity("bnequiv") -> [16#02261, 16#020E5];
+entity("bnot") -> 16#02310;
+entity("bopf") -> 16#1D553;
+entity("bot") -> 16#022A5;
+entity("bottom") -> 16#022A5;
+entity("bowtie") -> 16#022C8;
+entity("boxDL") -> 16#02557;
+entity("boxDR") -> 16#02554;
+entity("boxDl") -> 16#02556;
+entity("boxDr") -> 16#02553;
+entity("boxH") -> 16#02550;
+entity("boxHD") -> 16#02566;
+entity("boxHU") -> 16#02569;
+entity("boxHd") -> 16#02564;
+entity("boxHu") -> 16#02567;
+entity("boxUL") -> 16#0255D;
+entity("boxUR") -> 16#0255A;
+entity("boxUl") -> 16#0255C;
+entity("boxUr") -> 16#02559;
+entity("boxV") -> 16#02551;
+entity("boxVH") -> 16#0256C;
+entity("boxVL") -> 16#02563;
+entity("boxVR") -> 16#02560;
+entity("boxVh") -> 16#0256B;
+entity("boxVl") -> 16#02562;
+entity("boxVr") -> 16#0255F;
+entity("boxbox") -> 16#029C9;
+entity("boxdL") -> 16#02555;
+entity("boxdR") -> 16#02552;
+entity("boxdl") -> 16#02510;
+entity("boxdr") -> 16#0250C;
+entity("boxh") -> 16#02500;
+entity("boxhD") -> 16#02565;
+entity("boxhU") -> 16#02568;
+entity("boxhd") -> 16#0252C;
+entity("boxhu") -> 16#02534;
+entity("boxminus") -> 16#0229F;
+entity("boxplus") -> 16#0229E;
+entity("boxtimes") -> 16#022A0;
+entity("boxuL") -> 16#0255B;
+entity("boxuR") -> 16#02558;
+entity("boxul") -> 16#02518;
+entity("boxur") -> 16#02514;
+entity("boxv") -> 16#02502;
+entity("boxvH") -> 16#0256A;
+entity("boxvL") -> 16#02561;
+entity("boxvR") -> 16#0255E;
+entity("boxvh") -> 16#0253C;
+entity("boxvl") -> 16#02524;
+entity("boxvr") -> 16#0251C;
+entity("bprime") -> 16#02035;
+entity("breve") -> 16#002D8;
+entity("brvbar") -> 16#000A6;
+entity("bscr") -> 16#1D4B7;
+entity("bsemi") -> 16#0204F;
+entity("bsim") -> 16#0223D;
+entity("bsime") -> 16#022CD;
+entity("bsol") -> 16#0005C;
+entity("bsolb") -> 16#029C5;
+entity("bsolhsub") -> 16#027C8;
+entity("bull") -> 16#02022;
+entity("bullet") -> 16#02022;
+entity("bump") -> 16#0224E;
+entity("bumpE") -> 16#02AAE;
+entity("bumpe") -> 16#0224F;
+entity("bumpeq") -> 16#0224F;
+entity("cacute") -> 16#00107;
+entity("cap") -> 16#02229;
+entity("capand") -> 16#02A44;
+entity("capbrcup") -> 16#02A49;
+entity("capcap") -> 16#02A4B;
+entity("capcup") -> 16#02A47;
+entity("capdot") -> 16#02A40;
+entity("caps") -> [16#02229, 16#0FE00];
+entity("caret") -> 16#02041;
+entity("caron") -> 16#002C7;
+entity("ccaps") -> 16#02A4D;
+entity("ccaron") -> 16#0010D;
+entity("ccedil") -> 16#000E7;
+entity("ccirc") -> 16#00109;
+entity("ccups") -> 16#02A4C;
+entity("ccupssm") -> 16#02A50;
+entity("cdot") -> 16#0010B;
+entity("cedil") -> 16#000B8;
+entity("cemptyv") -> 16#029B2;
+entity("cent") -> 16#000A2;
+entity("centerdot") -> 16#000B7;
+entity("cfr") -> 16#1D520;
+entity("chcy") -> 16#00447;
+entity("check") -> 16#02713;
+entity("checkmark") -> 16#02713;
+entity("chi") -> 16#003C7;
+entity("cir") -> 16#025CB;
+entity("cirE") -> 16#029C3;
+entity("circ") -> 16#002C6;
+entity("circeq") -> 16#02257;
+entity("circlearrowleft") -> 16#021BA;
+entity("circlearrowright") -> 16#021BB;
+entity("circledR") -> 16#000AE;
+entity("circledS") -> 16#024C8;
+entity("circledast") -> 16#0229B;
+entity("circledcirc") -> 16#0229A;
+entity("circleddash") -> 16#0229D;
+entity("cire") -> 16#02257;
+entity("cirfnint") -> 16#02A10;
+entity("cirmid") -> 16#02AEF;
+entity("cirscir") -> 16#029C2;
+entity("clubs") -> 16#02663;
+entity("clubsuit") -> 16#02663;
+entity("colon") -> 16#0003A;
+entity("colone") -> 16#02254;
+entity("coloneq") -> 16#02254;
+entity("comma") -> 16#0002C;
+entity("commat") -> 16#00040;
+entity("comp") -> 16#02201;
+entity("compfn") -> 16#02218;
+entity("complement") -> 16#02201;
+entity("complexes") -> 16#02102;
+entity("cong") -> 16#02245;
+entity("congdot") -> 16#02A6D;
+entity("conint") -> 16#0222E;
+entity("copf") -> 16#1D554;
+entity("coprod") -> 16#02210;
+entity("copy") -> 16#000A9;
+entity("copysr") -> 16#02117;
+entity("crarr") -> 16#021B5;
+entity("cross") -> 16#02717;
+entity("cscr") -> 16#1D4B8;
+entity("csub") -> 16#02ACF;
+entity("csube") -> 16#02AD1;
+entity("csup") -> 16#02AD0;
+entity("csupe") -> 16#02AD2;
+entity("ctdot") -> 16#022EF;
+entity("cudarrl") -> 16#02938;
+entity("cudarrr") -> 16#02935;
+entity("cuepr") -> 16#022DE;
+entity("cuesc") -> 16#022DF;
+entity("cularr") -> 16#021B6;
+entity("cularrp") -> 16#0293D;
+entity("cup") -> 16#0222A;
+entity("cupbrcap") -> 16#02A48;
+entity("cupcap") -> 16#02A46;
+entity("cupcup") -> 16#02A4A;
+entity("cupdot") -> 16#0228D;
+entity("cupor") -> 16#02A45;
+entity("cups") -> [16#0222A, 16#0FE00];
+entity("curarr") -> 16#021B7;
+entity("curarrm") -> 16#0293C;
+entity("curlyeqprec") -> 16#022DE;
+entity("curlyeqsucc") -> 16#022DF;
+entity("curlyvee") -> 16#022CE;
+entity("curlywedge") -> 16#022CF;
+entity("curren") -> 16#000A4;
+entity("curvearrowleft") -> 16#021B6;
+entity("curvearrowright") -> 16#021B7;
+entity("cuvee") -> 16#022CE;
+entity("cuwed") -> 16#022CF;
+entity("cwconint") -> 16#02232;
+entity("cwint") -> 16#02231;
+entity("cylcty") -> 16#0232D;
+entity("dArr") -> 16#021D3;
+entity("dHar") -> 16#02965;
+entity("dagger") -> 16#02020;
+entity("daleth") -> 16#02138;
+entity("darr") -> 16#02193;
+entity("dash") -> 16#02010;
+entity("dashv") -> 16#022A3;
+entity("dbkarow") -> 16#0290F;
+entity("dblac") -> 16#002DD;
+entity("dcaron") -> 16#0010F;
+entity("dcy") -> 16#00434;
+entity("dd") -> 16#02146;
+entity("ddagger") -> 16#02021;
+entity("ddarr") -> 16#021CA;
+entity("ddotseq") -> 16#02A77;
+entity("deg") -> 16#000B0;
+entity("delta") -> 16#003B4;
+entity("demptyv") -> 16#029B1;
+entity("dfisht") -> 16#0297F;
+entity("dfr") -> 16#1D521;
+entity("dharl") -> 16#021C3;
+entity("dharr") -> 16#021C2;
+entity("diam") -> 16#022C4;
+entity("diamond") -> 16#022C4;
+entity("diamondsuit") -> 16#02666;
+entity("diams") -> 16#02666;
+entity("die") -> 16#000A8;
+entity("digamma") -> 16#003DD;
+entity("disin") -> 16#022F2;
+entity("div") -> 16#000F7;
+entity("divide") -> 16#000F7;
+entity("divideontimes") -> 16#022C7;
+entity("divonx") -> 16#022C7;
+entity("djcy") -> 16#00452;
+entity("dlcorn") -> 16#0231E;
+entity("dlcrop") -> 16#0230D;
+entity("dollar") -> 16#00024;
+entity("dopf") -> 16#1D555;
+entity("dot") -> 16#002D9;
+entity("doteq") -> 16#02250;
+entity("doteqdot") -> 16#02251;
+entity("dotminus") -> 16#02238;
+entity("dotplus") -> 16#02214;
+entity("dotsquare") -> 16#022A1;
+entity("doublebarwedge") -> 16#02306;
+entity("downarrow") -> 16#02193;
+entity("downdownarrows") -> 16#021CA;
+entity("downharpoonleft") -> 16#021C3;
+entity("downharpoonright") -> 16#021C2;
+entity("drbkarow") -> 16#02910;
+entity("drcorn") -> 16#0231F;
+entity("drcrop") -> 16#0230C;
+entity("dscr") -> 16#1D4B9;
+entity("dscy") -> 16#00455;
+entity("dsol") -> 16#029F6;
+entity("dstrok") -> 16#00111;
+entity("dtdot") -> 16#022F1;
+entity("dtri") -> 16#025BF;
+entity("dtrif") -> 16#025BE;
+entity("duarr") -> 16#021F5;
+entity("duhar") -> 16#0296F;
+entity("dwangle") -> 16#029A6;
+entity("dzcy") -> 16#0045F;
+entity("dzigrarr") -> 16#027FF;
+entity("eDDot") -> 16#02A77;
+entity("eDot") -> 16#02251;
+entity("eacute") -> 16#000E9;
+entity("easter") -> 16#02A6E;
+entity("ecaron") -> 16#0011B;
+entity("ecir") -> 16#02256;
+entity("ecirc") -> 16#000EA;
+entity("ecolon") -> 16#02255;
+entity("ecy") -> 16#0044D;
+entity("edot") -> 16#00117;
+entity("ee") -> 16#02147;
+entity("efDot") -> 16#02252;
+entity("efr") -> 16#1D522;
+entity("eg") -> 16#02A9A;
+entity("egrave") -> 16#000E8;
+entity("egs") -> 16#02A96;
+entity("egsdot") -> 16#02A98;
+entity("el") -> 16#02A99;
+entity("elinters") -> 16#023E7;
+entity("ell") -> 16#02113;
+entity("els") -> 16#02A95;
+entity("elsdot") -> 16#02A97;
+entity("emacr") -> 16#00113;
+entity("empty") -> 16#02205;
+entity("emptyset") -> 16#02205;
+entity("emptyv") -> 16#02205;
+entity("emsp") -> 16#02003;
+entity("emsp13") -> 16#02004;
+entity("emsp14") -> 16#02005;
+entity("eng") -> 16#0014B;
+entity("ensp") -> 16#02002;
+entity("eogon") -> 16#00119;
+entity("eopf") -> 16#1D556;
+entity("epar") -> 16#022D5;
+entity("eparsl") -> 16#029E3;
+entity("eplus") -> 16#02A71;
+entity("epsi") -> 16#003B5;
+entity("epsilon") -> 16#003B5;
+entity("epsiv") -> 16#003F5;
+entity("eqcirc") -> 16#02256;
+entity("eqcolon") -> 16#02255;
+entity("eqsim") -> 16#02242;
+entity("eqslantgtr") -> 16#02A96;
+entity("eqslantless") -> 16#02A95;
+entity("equals") -> 16#0003D;
+entity("equest") -> 16#0225F;
+entity("equiv") -> 16#02261;
+entity("equivDD") -> 16#02A78;
+entity("eqvparsl") -> 16#029E5;
+entity("erDot") -> 16#02253;
+entity("erarr") -> 16#02971;
+entity("escr") -> 16#0212F;
+entity("esdot") -> 16#02250;
+entity("esim") -> 16#02242;
+entity("eta") -> 16#003B7;
+entity("eth") -> 16#000F0;
+entity("euml") -> 16#000EB;
+entity("euro") -> 16#020AC;
+entity("excl") -> 16#00021;
+entity("exist") -> 16#02203;
+entity("expectation") -> 16#02130;
+entity("exponentiale") -> 16#02147;
+entity("fallingdotseq") -> 16#02252;
+entity("fcy") -> 16#00444;
+entity("female") -> 16#02640;
+entity("ffilig") -> 16#0FB03;
+entity("fflig") -> 16#0FB00;
+entity("ffllig") -> 16#0FB04;
+entity("ffr") -> 16#1D523;
+entity("filig") -> 16#0FB01;
+entity("fjlig") -> [16#00066, 16#0006A];
+entity("flat") -> 16#0266D;
+entity("fllig") -> 16#0FB02;
+entity("fltns") -> 16#025B1;
+entity("fnof") -> 16#00192;
+entity("fopf") -> 16#1D557;
+entity("forall") -> 16#02200;
+entity("fork") -> 16#022D4;
+entity("forkv") -> 16#02AD9;
+entity("fpartint") -> 16#02A0D;
+entity("frac12") -> 16#000BD;
+entity("frac13") -> 16#02153;
+entity("frac14") -> 16#000BC;
+entity("frac15") -> 16#02155;
+entity("frac16") -> 16#02159;
+entity("frac18") -> 16#0215B;
+entity("frac23") -> 16#02154;
+entity("frac25") -> 16#02156;
+entity("frac34") -> 16#000BE;
+entity("frac35") -> 16#02157;
+entity("frac38") -> 16#0215C;
+entity("frac45") -> 16#02158;
+entity("frac56") -> 16#0215A;
+entity("frac58") -> 16#0215D;
+entity("frac78") -> 16#0215E;
+entity("frasl") -> 16#02044;
+entity("frown") -> 16#02322;
+entity("fscr") -> 16#1D4BB;
+entity("gE") -> 16#02267;
+entity("gEl") -> 16#02A8C;
+entity("gacute") -> 16#001F5;
+entity("gamma") -> 16#003B3;
+entity("gammad") -> 16#003DD;
+entity("gap") -> 16#02A86;
+entity("gbreve") -> 16#0011F;
+entity("gcirc") -> 16#0011D;
+entity("gcy") -> 16#00433;
+entity("gdot") -> 16#00121;
+entity("ge") -> 16#02265;
+entity("gel") -> 16#022DB;
+entity("geq") -> 16#02265;
+entity("geqq") -> 16#02267;
+entity("geqslant") -> 16#02A7E;
+entity("ges") -> 16#02A7E;
+entity("gescc") -> 16#02AA9;
+entity("gesdot") -> 16#02A80;
+entity("gesdoto") -> 16#02A82;
+entity("gesdotol") -> 16#02A84;
+entity("gesl") -> [16#022DB, 16#0FE00];
+entity("gesles") -> 16#02A94;
+entity("gfr") -> 16#1D524;
+entity("gg") -> 16#0226B;
+entity("ggg") -> 16#022D9;
+entity("gimel") -> 16#02137;
+entity("gjcy") -> 16#00453;
+entity("gl") -> 16#02277;
+entity("glE") -> 16#02A92;
+entity("gla") -> 16#02AA5;
+entity("glj") -> 16#02AA4;
+entity("gnE") -> 16#02269;
+entity("gnap") -> 16#02A8A;
+entity("gnapprox") -> 16#02A8A;
+entity("gne") -> 16#02A88;
+entity("gneq") -> 16#02A88;
+entity("gneqq") -> 16#02269;
+entity("gnsim") -> 16#022E7;
+entity("gopf") -> 16#1D558;
+entity("grave") -> 16#00060;
+entity("gscr") -> 16#0210A;
+entity("gsim") -> 16#02273;
+entity("gsime") -> 16#02A8E;
+entity("gsiml") -> 16#02A90;
+entity("gt") -> 16#0003E;
+entity("gtcc") -> 16#02AA7;
+entity("gtcir") -> 16#02A7A;
+entity("gtdot") -> 16#022D7;
+entity("gtlPar") -> 16#02995;
+entity("gtquest") -> 16#02A7C;
+entity("gtrapprox") -> 16#02A86;
+entity("gtrarr") -> 16#02978;
+entity("gtrdot") -> 16#022D7;
+entity("gtreqless") -> 16#022DB;
+entity("gtreqqless") -> 16#02A8C;
+entity("gtrless") -> 16#02277;
+entity("gtrsim") -> 16#02273;
+entity("gvertneqq") -> [16#02269, 16#0FE00];
+entity("gvnE") -> [16#02269, 16#0FE00];
+entity("hArr") -> 16#021D4;
+entity("hairsp") -> 16#0200A;
+entity("half") -> 16#000BD;
+entity("hamilt") -> 16#0210B;
+entity("hardcy") -> 16#0044A;
+entity("harr") -> 16#02194;
+entity("harrcir") -> 16#02948;
+entity("harrw") -> 16#021AD;
+entity("hbar") -> 16#0210F;
+entity("hcirc") -> 16#00125;
+entity("hearts") -> 16#02665;
+entity("heartsuit") -> 16#02665;
+entity("hellip") -> 16#02026;
+entity("hercon") -> 16#022B9;
+entity("hfr") -> 16#1D525;
+entity("hksearow") -> 16#02925;
+entity("hkswarow") -> 16#02926;
+entity("hoarr") -> 16#021FF;
+entity("homtht") -> 16#0223B;
+entity("hookleftarrow") -> 16#021A9;
+entity("hookrightarrow") -> 16#021AA;
+entity("hopf") -> 16#1D559;
+entity("horbar") -> 16#02015;
+entity("hscr") -> 16#1D4BD;
+entity("hslash") -> 16#0210F;
+entity("hstrok") -> 16#00127;
+entity("hybull") -> 16#02043;
+entity("hyphen") -> 16#02010;
+entity("iacute") -> 16#000ED;
+entity("ic") -> 16#02063;
+entity("icirc") -> 16#000EE;
+entity("icy") -> 16#00438;
+entity("iecy") -> 16#00435;
+entity("iexcl") -> 16#000A1;
+entity("iff") -> 16#021D4;
+entity("ifr") -> 16#1D526;
+entity("igrave") -> 16#000EC;
+entity("ii") -> 16#02148;
+entity("iiiint") -> 16#02A0C;
+entity("iiint") -> 16#0222D;
+entity("iinfin") -> 16#029DC;
+entity("iiota") -> 16#02129;
+entity("ijlig") -> 16#00133;
+entity("imacr") -> 16#0012B;
+entity("image") -> 16#02111;
+entity("imagline") -> 16#02110;
+entity("imagpart") -> 16#02111;
+entity("imath") -> 16#00131;
+entity("imof") -> 16#022B7;
+entity("imped") -> 16#001B5;
+entity("in") -> 16#02208;
+entity("incare") -> 16#02105;
+entity("infin") -> 16#0221E;
+entity("infintie") -> 16#029DD;
+entity("inodot") -> 16#00131;
+entity("int") -> 16#0222B;
+entity("intcal") -> 16#022BA;
+entity("integers") -> 16#02124;
+entity("intercal") -> 16#022BA;
+entity("intlarhk") -> 16#02A17;
+entity("intprod") -> 16#02A3C;
+entity("iocy") -> 16#00451;
+entity("iogon") -> 16#0012F;
+entity("iopf") -> 16#1D55A;
+entity("iota") -> 16#003B9;
+entity("iprod") -> 16#02A3C;
+entity("iquest") -> 16#000BF;
+entity("iscr") -> 16#1D4BE;
+entity("isin") -> 16#02208;
+entity("isinE") -> 16#022F9;
+entity("isindot") -> 16#022F5;
+entity("isins") -> 16#022F4;
+entity("isinsv") -> 16#022F3;
+entity("isinv") -> 16#02208;
+entity("it") -> 16#02062;
+entity("itilde") -> 16#00129;
+entity("iukcy") -> 16#00456;
+entity("iuml") -> 16#000EF;
+entity("jcirc") -> 16#00135;
+entity("jcy") -> 16#00439;
+entity("jfr") -> 16#1D527;
+entity("jmath") -> 16#00237;
+entity("jopf") -> 16#1D55B;
+entity("jscr") -> 16#1D4BF;
+entity("jsercy") -> 16#00458;
+entity("jukcy") -> 16#00454;
+entity("kappa") -> 16#003BA;
+entity("kappav") -> 16#003F0;
+entity("kcedil") -> 16#00137;
+entity("kcy") -> 16#0043A;
+entity("kfr") -> 16#1D528;
+entity("kgreen") -> 16#00138;
+entity("khcy") -> 16#00445;
+entity("kjcy") -> 16#0045C;
+entity("kopf") -> 16#1D55C;
+entity("kscr") -> 16#1D4C0;
+entity("lAarr") -> 16#021DA;
+entity("lArr") -> 16#021D0;
+entity("lAtail") -> 16#0291B;
+entity("lBarr") -> 16#0290E;
+entity("lE") -> 16#02266;
+entity("lEg") -> 16#02A8B;
+entity("lHar") -> 16#02962;
+entity("lacute") -> 16#0013A;
+entity("laemptyv") -> 16#029B4;
+entity("lagran") -> 16#02112;
+entity("lambda") -> 16#003BB;
+entity("lang") -> 16#027E8;
+entity("langd") -> 16#02991;
+entity("langle") -> 16#027E8;
+entity("lap") -> 16#02A85;
+entity("laquo") -> 16#000AB;
+entity("larr") -> 16#02190;
+entity("larrb") -> 16#021E4;
+entity("larrbfs") -> 16#0291F;
+entity("larrfs") -> 16#0291D;
+entity("larrhk") -> 16#021A9;
+entity("larrlp") -> 16#021AB;
+entity("larrpl") -> 16#02939;
+entity("larrsim") -> 16#02973;
+entity("larrtl") -> 16#021A2;
+entity("lat") -> 16#02AAB;
+entity("latail") -> 16#02919;
+entity("late") -> 16#02AAD;
+entity("lates") -> [16#02AAD, 16#0FE00];
+entity("lbarr") -> 16#0290C;
+entity("lbbrk") -> 16#02772;
+entity("lbrace") -> 16#0007B;
+entity("lbrack") -> 16#0005B;
+entity("lbrke") -> 16#0298B;
+entity("lbrksld") -> 16#0298F;
+entity("lbrkslu") -> 16#0298D;
+entity("lcaron") -> 16#0013E;
+entity("lcedil") -> 16#0013C;
+entity("lceil") -> 16#02308;
+entity("lcub") -> 16#0007B;
+entity("lcy") -> 16#0043B;
+entity("ldca") -> 16#02936;
+entity("ldquo") -> 16#0201C;
+entity("ldquor") -> 16#0201E;
+entity("ldrdhar") -> 16#02967;
+entity("ldrushar") -> 16#0294B;
+entity("ldsh") -> 16#021B2;
+entity("le") -> 16#02264;
+entity("leftarrow") -> 16#02190;
+entity("leftarrowtail") -> 16#021A2;
+entity("leftharpoondown") -> 16#021BD;
+entity("leftharpoonup") -> 16#021BC;
+entity("leftleftarrows") -> 16#021C7;
+entity("leftrightarrow") -> 16#02194;
+entity("leftrightarrows") -> 16#021C6;
+entity("leftrightharpoons") -> 16#021CB;
+entity("leftrightsquigarrow") -> 16#021AD;
+entity("leftthreetimes") -> 16#022CB;
+entity("leg") -> 16#022DA;
+entity("leq") -> 16#02264;
+entity("leqq") -> 16#02266;
+entity("leqslant") -> 16#02A7D;
+entity("les") -> 16#02A7D;
+entity("lescc") -> 16#02AA8;
+entity("lesdot") -> 16#02A7F;
+entity("lesdoto") -> 16#02A81;
+entity("lesdotor") -> 16#02A83;
+entity("lesg") -> [16#022DA, 16#0FE00];
+entity("lesges") -> 16#02A93;
+entity("lessapprox") -> 16#02A85;
+entity("lessdot") -> 16#022D6;
+entity("lesseqgtr") -> 16#022DA;
+entity("lesseqqgtr") -> 16#02A8B;
+entity("lessgtr") -> 16#02276;
+entity("lesssim") -> 16#02272;
+entity("lfisht") -> 16#0297C;
+entity("lfloor") -> 16#0230A;
+entity("lfr") -> 16#1D529;
+entity("lg") -> 16#02276;
+entity("lgE") -> 16#02A91;
+entity("lhard") -> 16#021BD;
+entity("lharu") -> 16#021BC;
+entity("lharul") -> 16#0296A;
+entity("lhblk") -> 16#02584;
+entity("ljcy") -> 16#00459;
+entity("ll") -> 16#0226A;
+entity("llarr") -> 16#021C7;
+entity("llcorner") -> 16#0231E;
+entity("llhard") -> 16#0296B;
+entity("lltri") -> 16#025FA;
+entity("lmidot") -> 16#00140;
+entity("lmoust") -> 16#023B0;
+entity("lmoustache") -> 16#023B0;
+entity("lnE") -> 16#02268;
+entity("lnap") -> 16#02A89;
+entity("lnapprox") -> 16#02A89;
+entity("lne") -> 16#02A87;
+entity("lneq") -> 16#02A87;
+entity("lneqq") -> 16#02268;
+entity("lnsim") -> 16#022E6;
+entity("loang") -> 16#027EC;
+entity("loarr") -> 16#021FD;
+entity("lobrk") -> 16#027E6;
+entity("longleftarrow") -> 16#027F5;
+entity("longleftrightarrow") -> 16#027F7;
+entity("longmapsto") -> 16#027FC;
+entity("longrightarrow") -> 16#027F6;
+entity("looparrowleft") -> 16#021AB;
+entity("looparrowright") -> 16#021AC;
+entity("lopar") -> 16#02985;
+entity("lopf") -> 16#1D55D;
+entity("loplus") -> 16#02A2D;
+entity("lotimes") -> 16#02A34;
+entity("lowast") -> 16#02217;
+entity("lowbar") -> 16#0005F;
+entity("loz") -> 16#025CA;
+entity("lozenge") -> 16#025CA;
+entity("lozf") -> 16#029EB;
+entity("lpar") -> 16#00028;
+entity("lparlt") -> 16#02993;
+entity("lrarr") -> 16#021C6;
+entity("lrcorner") -> 16#0231F;
+entity("lrhar") -> 16#021CB;
+entity("lrhard") -> 16#0296D;
+entity("lrm") -> 16#0200E;
+entity("lrtri") -> 16#022BF;
+entity("lsaquo") -> 16#02039;
+entity("lscr") -> 16#1D4C1;
+entity("lsh") -> 16#021B0;
+entity("lsim") -> 16#02272;
+entity("lsime") -> 16#02A8D;
+entity("lsimg") -> 16#02A8F;
+entity("lsqb") -> 16#0005B;
+entity("lsquo") -> 16#02018;
+entity("lsquor") -> 16#0201A;
+entity("lstrok") -> 16#00142;
+entity("lt") -> 16#0003C;
+entity("ltcc") -> 16#02AA6;
+entity("ltcir") -> 16#02A79;
+entity("ltdot") -> 16#022D6;
+entity("lthree") -> 16#022CB;
+entity("ltimes") -> 16#022C9;
+entity("ltlarr") -> 16#02976;
+entity("ltquest") -> 16#02A7B;
+entity("ltrPar") -> 16#02996;
+entity("ltri") -> 16#025C3;
+entity("ltrie") -> 16#022B4;
+entity("ltrif") -> 16#025C2;
+entity("lurdshar") -> 16#0294A;
+entity("luruhar") -> 16#02966;
+entity("lvertneqq") -> [16#02268, 16#0FE00];
+entity("lvnE") -> [16#02268, 16#0FE00];
+entity("mDDot") -> 16#0223A;
+entity("macr") -> 16#000AF;
+entity("male") -> 16#02642;
+entity("malt") -> 16#02720;
+entity("maltese") -> 16#02720;
+entity("map") -> 16#021A6;
+entity("mapsto") -> 16#021A6;
+entity("mapstodown") -> 16#021A7;
+entity("mapstoleft") -> 16#021A4;
+entity("mapstoup") -> 16#021A5;
+entity("marker") -> 16#025AE;
+entity("mcomma") -> 16#02A29;
+entity("mcy") -> 16#0043C;
+entity("mdash") -> 16#02014;
+entity("measuredangle") -> 16#02221;
+entity("mfr") -> 16#1D52A;
+entity("mho") -> 16#02127;
+entity("micro") -> 16#000B5;
+entity("mid") -> 16#02223;
+entity("midast") -> 16#0002A;
+entity("midcir") -> 16#02AF0;
+entity("middot") -> 16#000B7;
+entity("minus") -> 16#02212;
+entity("minusb") -> 16#0229F;
+entity("minusd") -> 16#02238;
+entity("minusdu") -> 16#02A2A;
+entity("mlcp") -> 16#02ADB;
+entity("mldr") -> 16#02026;
+entity("mnplus") -> 16#02213;
+entity("models") -> 16#022A7;
+entity("mopf") -> 16#1D55E;
+entity("mp") -> 16#02213;
+entity("mscr") -> 16#1D4C2;
+entity("mstpos") -> 16#0223E;
+entity("mu") -> 16#003BC;
+entity("multimap") -> 16#022B8;
+entity("mumap") -> 16#022B8;
+entity("nGg") -> [16#022D9, 16#00338];
+entity("nGt") -> [16#0226B, 16#020D2];
+entity("nGtv") -> [16#0226B, 16#00338];
+entity("nLeftarrow") -> 16#021CD;
+entity("nLeftrightarrow") -> 16#021CE;
+entity("nLl") -> [16#022D8, 16#00338];
+entity("nLt") -> [16#0226A, 16#020D2];
+entity("nLtv") -> [16#0226A, 16#00338];
+entity("nRightarrow") -> 16#021CF;
+entity("nVDash") -> 16#022AF;
+entity("nVdash") -> 16#022AE;
+entity("nabla") -> 16#02207;
+entity("nacute") -> 16#00144;
+entity("nang") -> [16#02220, 16#020D2];
+entity("nap") -> 16#02249;
+entity("napE") -> [16#02A70, 16#00338];
+entity("napid") -> [16#0224B, 16#00338];
+entity("napos") -> 16#00149;
+entity("napprox") -> 16#02249;
+entity("natur") -> 16#0266E;
+entity("natural") -> 16#0266E;
+entity("naturals") -> 16#02115;
+entity("nbsp") -> 16#000A0;
+entity("nbump") -> [16#0224E, 16#00338];
+entity("nbumpe") -> [16#0224F, 16#00338];
+entity("ncap") -> 16#02A43;
+entity("ncaron") -> 16#00148;
+entity("ncedil") -> 16#00146;
+entity("ncong") -> 16#02247;
+entity("ncongdot") -> [16#02A6D, 16#00338];
+entity("ncup") -> 16#02A42;
+entity("ncy") -> 16#0043D;
+entity("ndash") -> 16#02013;
+entity("ne") -> 16#02260;
+entity("neArr") -> 16#021D7;
+entity("nearhk") -> 16#02924;
+entity("nearr") -> 16#02197;
+entity("nearrow") -> 16#02197;
+entity("nedot") -> [16#02250, 16#00338];
+entity("nequiv") -> 16#02262;
+entity("nesear") -> 16#02928;
+entity("nesim") -> [16#02242, 16#00338];
+entity("nexist") -> 16#02204;
+entity("nexists") -> 16#02204;
+entity("nfr") -> 16#1D52B;
+entity("ngE") -> [16#02267, 16#00338];
+entity("nge") -> 16#02271;
+entity("ngeq") -> 16#02271;
+entity("ngeqq") -> [16#02267, 16#00338];
+entity("ngeqslant") -> [16#02A7E, 16#00338];
+entity("nges") -> [16#02A7E, 16#00338];
+entity("ngsim") -> 16#02275;
+entity("ngt") -> 16#0226F;
+entity("ngtr") -> 16#0226F;
+entity("nhArr") -> 16#021CE;
+entity("nharr") -> 16#021AE;
+entity("nhpar") -> 16#02AF2;
+entity("ni") -> 16#0220B;
+entity("nis") -> 16#022FC;
+entity("nisd") -> 16#022FA;
+entity("niv") -> 16#0220B;
+entity("njcy") -> 16#0045A;
+entity("nlArr") -> 16#021CD;
+entity("nlE") -> [16#02266, 16#00338];
+entity("nlarr") -> 16#0219A;
+entity("nldr") -> 16#02025;
+entity("nle") -> 16#02270;
+entity("nleftarrow") -> 16#0219A;
+entity("nleftrightarrow") -> 16#021AE;
+entity("nleq") -> 16#02270;
+entity("nleqq") -> [16#02266, 16#00338];
+entity("nleqslant") -> [16#02A7D, 16#00338];
+entity("nles") -> [16#02A7D, 16#00338];
+entity("nless") -> 16#0226E;
+entity("nlsim") -> 16#02274;
+entity("nlt") -> 16#0226E;
+entity("nltri") -> 16#022EA;
+entity("nltrie") -> 16#022EC;
+entity("nmid") -> 16#02224;
+entity("nopf") -> 16#1D55F;
+entity("not") -> 16#000AC;
+entity("notin") -> 16#02209;
+entity("notinE") -> [16#022F9, 16#00338];
+entity("notindot") -> [16#022F5, 16#00338];
+entity("notinva") -> 16#02209;
+entity("notinvb") -> 16#022F7;
+entity("notinvc") -> 16#022F6;
+entity("notni") -> 16#0220C;
+entity("notniva") -> 16#0220C;
+entity("notnivb") -> 16#022FE;
+entity("notnivc") -> 16#022FD;
+entity("npar") -> 16#02226;
+entity("nparallel") -> 16#02226;
+entity("nparsl") -> [16#02AFD, 16#020E5];
+entity("npart") -> [16#02202, 16#00338];
+entity("npolint") -> 16#02A14;
+entity("npr") -> 16#02280;
+entity("nprcue") -> 16#022E0;
+entity("npre") -> [16#02AAF, 16#00338];
+entity("nprec") -> 16#02280;
+entity("npreceq") -> [16#02AAF, 16#00338];
+entity("nrArr") -> 16#021CF;
+entity("nrarr") -> 16#0219B;
+entity("nrarrc") -> [16#02933, 16#00338];
+entity("nrarrw") -> [16#0219D, 16#00338];
+entity("nrightarrow") -> 16#0219B;
+entity("nrtri") -> 16#022EB;
+entity("nrtrie") -> 16#022ED;
+entity("nsc") -> 16#02281;
+entity("nsccue") -> 16#022E1;
+entity("nsce") -> [16#02AB0, 16#00338];
+entity("nscr") -> 16#1D4C3;
+entity("nshortmid") -> 16#02224;
+entity("nshortparallel") -> 16#02226;
+entity("nsim") -> 16#02241;
+entity("nsime") -> 16#02244;
+entity("nsimeq") -> 16#02244;
+entity("nsmid") -> 16#02224;
+entity("nspar") -> 16#02226;
+entity("nsqsube") -> 16#022E2;
+entity("nsqsupe") -> 16#022E3;
+entity("nsub") -> 16#02284;
+entity("nsubE") -> [16#02AC5, 16#00338];
+entity("nsube") -> 16#02288;
+entity("nsubset") -> [16#02282, 16#020D2];
+entity("nsubseteq") -> 16#02288;
+entity("nsubseteqq") -> [16#02AC5, 16#00338];
+entity("nsucc") -> 16#02281;
+entity("nsucceq") -> [16#02AB0, 16#00338];
+entity("nsup") -> 16#02285;
+entity("nsupE") -> [16#02AC6, 16#00338];
+entity("nsupe") -> 16#02289;
+entity("nsupset") -> [16#02283, 16#020D2];
+entity("nsupseteq") -> 16#02289;
+entity("nsupseteqq") -> [16#02AC6, 16#00338];
+entity("ntgl") -> 16#02279;
+entity("ntilde") -> 16#000F1;
+entity("ntlg") -> 16#02278;
+entity("ntriangleleft") -> 16#022EA;
+entity("ntrianglelefteq") -> 16#022EC;
+entity("ntriangleright") -> 16#022EB;
+entity("ntrianglerighteq") -> 16#022ED;
+entity("nu") -> 16#003BD;
+entity("num") -> 16#00023;
+entity("numero") -> 16#02116;
+entity("numsp") -> 16#02007;
+entity("nvDash") -> 16#022AD;
+entity("nvHarr") -> 16#02904;
+entity("nvap") -> [16#0224D, 16#020D2];
+entity("nvdash") -> 16#022AC;
+entity("nvge") -> [16#02265, 16#020D2];
+entity("nvgt") -> [16#0003E, 16#020D2];
+entity("nvinfin") -> 16#029DE;
+entity("nvlArr") -> 16#02902;
+entity("nvle") -> [16#02264, 16#020D2];
+entity("nvlt") -> [16#0003C, 16#020D2];
+entity("nvltrie") -> [16#022B4, 16#020D2];
+entity("nvrArr") -> 16#02903;
+entity("nvrtrie") -> [16#022B5, 16#020D2];
+entity("nvsim") -> [16#0223C, 16#020D2];
+entity("nwArr") -> 16#021D6;
+entity("nwarhk") -> 16#02923;
+entity("nwarr") -> 16#02196;
+entity("nwarrow") -> 16#02196;
+entity("nwnear") -> 16#02927;
+entity("oS") -> 16#024C8;
+entity("oacute") -> 16#000F3;
+entity("oast") -> 16#0229B;
+entity("ocir") -> 16#0229A;
+entity("ocirc") -> 16#000F4;
+entity("ocy") -> 16#0043E;
+entity("odash") -> 16#0229D;
+entity("odblac") -> 16#00151;
+entity("odiv") -> 16#02A38;
+entity("odot") -> 16#02299;
+entity("odsold") -> 16#029BC;
+entity("oelig") -> 16#00153;
+entity("ofcir") -> 16#029BF;
+entity("ofr") -> 16#1D52C;
+entity("ogon") -> 16#002DB;
+entity("ograve") -> 16#000F2;
+entity("ogt") -> 16#029C1;
+entity("ohbar") -> 16#029B5;
+entity("ohm") -> 16#003A9;
+entity("oint") -> 16#0222E;
+entity("olarr") -> 16#021BA;
+entity("olcir") -> 16#029BE;
+entity("olcross") -> 16#029BB;
+entity("oline") -> 16#0203E;
+entity("olt") -> 16#029C0;
+entity("omacr") -> 16#0014D;
+entity("omega") -> 16#003C9;
+entity("omicron") -> 16#003BF;
+entity("omid") -> 16#029B6;
+entity("ominus") -> 16#02296;
+entity("oopf") -> 16#1D560;
+entity("opar") -> 16#029B7;
+entity("operp") -> 16#029B9;
+entity("oplus") -> 16#02295;
+entity("or") -> 16#02228;
+entity("orarr") -> 16#021BB;
+entity("ord") -> 16#02A5D;
+entity("order") -> 16#02134;
+entity("orderof") -> 16#02134;
+entity("ordf") -> 16#000AA;
+entity("ordm") -> 16#000BA;
+entity("origof") -> 16#022B6;
+entity("oror") -> 16#02A56;
+entity("orslope") -> 16#02A57;
+entity("orv") -> 16#02A5B;
+entity("oscr") -> 16#02134;
+entity("oslash") -> 16#000F8;
+entity("osol") -> 16#02298;
+entity("otilde") -> 16#000F5;
+entity("otimes") -> 16#02297;
+entity("otimesas") -> 16#02A36;
+entity("ouml") -> 16#000F6;
+entity("ovbar") -> 16#0233D;
+entity("par") -> 16#02225;
+entity("para") -> 16#000B6;
+entity("parallel") -> 16#02225;
+entity("parsim") -> 16#02AF3;
+entity("parsl") -> 16#02AFD;
+entity("part") -> 16#02202;
+entity("pcy") -> 16#0043F;
+entity("percnt") -> 16#00025;
+entity("period") -> 16#0002E;
+entity("permil") -> 16#02030;
+entity("perp") -> 16#022A5;
+entity("pertenk") -> 16#02031;
+entity("pfr") -> 16#1D52D;
+entity("phi") -> 16#003C6;
+entity("phiv") -> 16#003D5;
+entity("phmmat") -> 16#02133;
+entity("phone") -> 16#0260E;
+entity("pi") -> 16#003C0;
+entity("pitchfork") -> 16#022D4;
+entity("piv") -> 16#003D6;
+entity("planck") -> 16#0210F;
+entity("planckh") -> 16#0210E;
+entity("plankv") -> 16#0210F;
+entity("plus") -> 16#0002B;
+entity("plusacir") -> 16#02A23;
+entity("plusb") -> 16#0229E;
+entity("pluscir") -> 16#02A22;
+entity("plusdo") -> 16#02214;
+entity("plusdu") -> 16#02A25;
+entity("pluse") -> 16#02A72;
+entity("plusmn") -> 16#000B1;
+entity("plussim") -> 16#02A26;
+entity("plustwo") -> 16#02A27;
+entity("pm") -> 16#000B1;
+entity("pointint") -> 16#02A15;
+entity("popf") -> 16#1D561;
+entity("pound") -> 16#000A3;
+entity("pr") -> 16#0227A;
+entity("prE") -> 16#02AB3;
+entity("prap") -> 16#02AB7;
+entity("prcue") -> 16#0227C;
+entity("pre") -> 16#02AAF;
+entity("prec") -> 16#0227A;
+entity("precapprox") -> 16#02AB7;
+entity("preccurlyeq") -> 16#0227C;
+entity("preceq") -> 16#02AAF;
+entity("precnapprox") -> 16#02AB9;
+entity("precneqq") -> 16#02AB5;
+entity("precnsim") -> 16#022E8;
+entity("precsim") -> 16#0227E;
+entity("prime") -> 16#02032;
+entity("primes") -> 16#02119;
+entity("prnE") -> 16#02AB5;
+entity("prnap") -> 16#02AB9;
+entity("prnsim") -> 16#022E8;
+entity("prod") -> 16#0220F;
+entity("profalar") -> 16#0232E;
+entity("profline") -> 16#02312;
+entity("profsurf") -> 16#02313;
+entity("prop") -> 16#0221D;
+entity("propto") -> 16#0221D;
+entity("prsim") -> 16#0227E;
+entity("prurel") -> 16#022B0;
+entity("pscr") -> 16#1D4C5;
+entity("psi") -> 16#003C8;
+entity("puncsp") -> 16#02008;
+entity("qfr") -> 16#1D52E;
+entity("qint") -> 16#02A0C;
+entity("qopf") -> 16#1D562;
+entity("qprime") -> 16#02057;
+entity("qscr") -> 16#1D4C6;
+entity("quaternions") -> 16#0210D;
+entity("quatint") -> 16#02A16;
+entity("quest") -> 16#0003F;
+entity("questeq") -> 16#0225F;
+entity("quot") -> 16#00022;
+entity("rAarr") -> 16#021DB;
+entity("rArr") -> 16#021D2;
+entity("rAtail") -> 16#0291C;
+entity("rBarr") -> 16#0290F;
+entity("rHar") -> 16#02964;
+entity("race") -> [16#0223D, 16#00331];
+entity("racute") -> 16#00155;
+entity("radic") -> 16#0221A;
+entity("raemptyv") -> 16#029B3;
+entity("rang") -> 16#027E9;
+entity("rangd") -> 16#02992;
+entity("range") -> 16#029A5;
+entity("rangle") -> 16#027E9;
+entity("raquo") -> 16#000BB;
+entity("rarr") -> 16#02192;
+entity("rarrap") -> 16#02975;
+entity("rarrb") -> 16#021E5;
+entity("rarrbfs") -> 16#02920;
+entity("rarrc") -> 16#02933;
+entity("rarrfs") -> 16#0291E;
+entity("rarrhk") -> 16#021AA;
+entity("rarrlp") -> 16#021AC;
+entity("rarrpl") -> 16#02945;
+entity("rarrsim") -> 16#02974;
+entity("rarrtl") -> 16#021A3;
+entity("rarrw") -> 16#0219D;
+entity("ratail") -> 16#0291A;
+entity("ratio") -> 16#02236;
+entity("rationals") -> 16#0211A;
+entity("rbarr") -> 16#0290D;
+entity("rbbrk") -> 16#02773;
+entity("rbrace") -> 16#0007D;
+entity("rbrack") -> 16#0005D;
+entity("rbrke") -> 16#0298C;
+entity("rbrksld") -> 16#0298E;
+entity("rbrkslu") -> 16#02990;
+entity("rcaron") -> 16#00159;
+entity("rcedil") -> 16#00157;
+entity("rceil") -> 16#02309;
+entity("rcub") -> 16#0007D;
+entity("rcy") -> 16#00440;
+entity("rdca") -> 16#02937;
+entity(