#include <u.h>
#include <libc.h>
#include <bio.h>
#include "hdr.h"
#include "conv.h"
typedef struct Hchar Hchar;
struct Hchar
{
char *s;
Rune r;
};
/*
* Names beginning with _ are names we recognize
* (without the underscore) but will not generate,
* because they are nonstandard.
*/
static Hchar byname[] =
{
{"AElig", 198},
{"Aacute", 193},
{"Abreve", 258},
{"Acirc", 194},
{"Acy", 1040},
{"Agrave", 192},
{"Alpha", 913},
{"Amacr", 256},
{"And", 10835},
{"Aogon", 260},
{"ApplyFunction", 8289},
{"Aring", 197},
{"Assign", 8788},
{"Atilde", 195},
{"Auml", 196},
{"Backslash", 8726},
{"Barv", 10983},
{"Barwed", 8966},
{"Bcy", 1041},
{"Because", 8757},
{"Bernoullis", 8492},
{"Beta", 914},
{"Breve", 728},
{"Bscr", 8492},
{"Bumpeq", 8782},
{"CHcy", 1063},
{"Cacute", 262},
{"Cap", 8914},
{"CapitalDifferentialD", 8517},
{"Cayleys", 8493},
{"Ccaron", 268},
{"Ccedil", 199},
{"Ccirc", 264},
{"Cconint", 8752},
{"Cdot", 266},
{"Cedilla", 184},
{"CenterDot", 183},
{"Cfr", 8493},
{"Chi", 935},
{"CircleDot", 8857},
{"CircleMinus", 8854},
{"CirclePlus", 8853},
{"CircleTimes", 8855},
{"ClockwiseContourIntegral", 8754},
{"CloseCurlyDoubleQuote", 8221},
{"CloseCurlyQuote", 8217},
{"Colon", 8759},
{"Colone", 10868},
{"Congruent", 8801},
{"Conint", 8751},
{"ContourIntegral", 8750},
{"Copf", 8450},
{"Coproduct", 8720},
{"CounterClockwiseContourIntegral", 8755},
{"Cross", 10799},
{"Cup", 8915},
{"CupCap", 8781},
{"DD", 8517},
{"DDotrahd", 10513},
{"DJcy", 1026},
{"DScy", 1029},
{"DZcy", 1039},
{"Dagger", 8225},
{"Darr", 8609},
{"Dashv", 10980},
{"Dcaron", 270},
{"Dcy", 1044},
{"Del", 8711},
{"Delta", 916},
{"DiacriticalAcute", 180},
{"DiacriticalDot", 729},
{"DiacriticalDoubleAcute", 733},
{"DiacriticalGrave", 96},
{"DiacriticalTilde", 732},
{"Diamond", 8900},
{"DifferentialD", 8518},
{"Dot", 168},
{"DotDot", 8412},
{"DotEqual", 8784},
{"DoubleContourIntegral", 8751},
{"DoubleDot", 168},
{"DoubleDownArrow", 8659},
{"DoubleLeftArrow", 8656},
{"DoubleLeftRightArrow", 8660},
{"DoubleLeftTee", 10980},
{"DoubleLongLeftArrow", 10232},
{"DoubleLongLeftRightArrow", 10234},
{"DoubleLongRightArrow", 10233},
{"DoubleRightArrow", 8658},
{"DoubleRightTee", 8872},
{"DoubleUpArrow", 8657},
{"DoubleUpDownArrow", 8661},
{"DoubleVerticalBar", 8741},
{"DownArrow", 8595},
{"DownArrowBar", 10515},
{"DownArrowUpArrow", 8693},
{"DownBreve", 785},
{"DownLeftRightVector", 10576},
{"DownLeftTeeVector", 10590},
{"DownLeftVector", 8637},
{"DownLeftVectorBar", 10582},
{"DownRightTeeVector", 10591},
{"DownRightVector", 8641},
{"DownRightVectorBar", 10583},
{"DownTee", 8868},
{"DownTeeArrow", 8615},
{"Downarrow", 8659},
{"Dstrok", 272},
{"ENG", 330},
{"ETH", 208},
{"Eacute", 201},
{"Ecaron", 282},
{"Ecirc", 202},
{"Ecy", 1069},
{"Edot", 278},
{"Egrave", 200},
{"Element", 8712},
{"Emacr", 274},
{"EmptySmallSquare", 9723},
{"EmptyVerySmallSquare", 9643},
{"Eogon", 280},
{"Epsilon", 917},
{"Equal", 10869},
{"EqualTilde", 8770},
{"Equilibrium", 8652},
{"Escr", 8496},
{"Esim", 10867},
{"Eta", 919},
{"Euml", 203},
{"Exists", 8707},
{"ExponentialE", 8519},
{"Fcy", 1060},
{"FilledSmallSquare", 9724},
{"FilledVerySmallSquare", 9642},
{"ForAll", 8704},
{"Fouriertrf", 8497},
{"Fscr", 8497},
{"GJcy", 1027},
{"Gamma", 915},
{"Gammad", 988},
{"Gbreve", 286},
{"Gcedil", 290},
{"Gcirc", 284},
{"Gcy", 1043},
{"Gdot", 288},
{"Gg", 8921},
{"GreaterEqual", 8805},
{"GreaterEqualLess", 8923},
{"GreaterFullEqual", 8807},
{"GreaterGreater", 10914},
{"GreaterLess", 8823},
{"GreaterSlantEqual", 10878},
{"GreaterTilde", 8819},
{"Gt", 8811},
{"HARDcy", 1066},
{"Hacek", 711},
{"Hat", 94},
{"Hcirc", 292},
{"Hfr", 8460},
{"HilbertSpace", 8459},
{"Hopf", 8461},
{"HorizontalLine", 9472},
{"Hscr", 8459},
{"Hstrok", 294},
{"HumpDownHump", 8782},
{"HumpEqual", 8783},
{"IEcy", 1045},
{"IJlig", 306},
{"IOcy", 1025},
{"Iacute", 205},
{"Icirc", 206},
{"Icy", 1048},
{"Idot", 304},
{"Ifr", 8465},
{"Igrave", 204},
{"Im", 8465},
{"Imacr", 298},
{"ImaginaryI", 8520},
{"Implies", 8658},
{"Int", 8748},
{"Integral", 8747},
{"Intersection", 8898},
{"InvisibleComma", 8291},
{"InvisibleTimes", 8290},
{"Iogon", 302},
{"Iota", 921},
{"Iscr", 8464},
{"Itilde", 296},
{"Iukcy", 1030},
{"Iuml", 207},
{"Jcirc", 308},
{"Jcy", 1049},
{"Jsercy", 1032},
{"Jukcy", 1028},
{"KHcy", 1061},
{"KJcy", 1036},
{"Kappa", 922},
{"Kcedil", 310},
{"Kcy", 1050},
{"LJcy", 1033},
{"Lacute", 313},
{"Lambda", 923},
{"Lang", 10218},
{"Laplacetrf", 8466},
{"Larr", 8606},
{"Lcaron", 317},
{"Lcedil", 315},
{"Lcy", 1051},
{"LeftAngleBracket", 10216},
{"LeftArrow", 8592},
{"LeftArrowBar", 8676},
{"LeftArrowRightArrow", 8646},
{"LeftCeiling", 8968},
{"LeftDoubleBracket", 10214},
{"LeftDownTeeVector", 10593},
{"LeftDownVector", 8643},
{"LeftDownVectorBar", 10585},
{"LeftFloor", 8970},
{"LeftRightArrow", 8596},
{"LeftRightVector", 10574},
{"LeftTee", 8867},
{"LeftTeeArrow", 8612},
{"LeftTeeVector", 10586},
{"LeftTriangle", 8882},
{"LeftTriangleBar", 10703},
{"LeftTriangleEqual", 8884},
{"LeftUpDownVector", 10577},
{"LeftUpTeeVector", 10592},
{"LeftUpVector", 8639},
{"LeftUpVectorBar", 10584},
{"LeftVector", 8636},
{"LeftVectorBar", 10578},
{"Leftarrow", 8656},
{"Leftrightarrow", 8660},
{"LessEqualGreater", 8922},
{"LessFullEqual", 8806},
{"LessGreater", 8822},
{"LessLess", 10913},
{"LessSlantEqual", 10877},
{"LessTilde", 8818},
{"Ll", 8920},
{"Lleftarrow", 8666},
{"Lmidot", 319},
{"LongLeftArrow", 10229},
{"LongLeftRightArrow", 10231},
{"LongRightArrow", 10230},
{"Longleftarrow", 10232},
{"Longleftrightarrow", 10234},
{"Longrightarrow", 10233},
{"LowerLeftArrow", 8601},
{"LowerRightArrow", 8600},
{"Lscr", 8466},
{"Lsh", 8624},
{"Lstrok", 321},
{"Lt", 8810},
{"Map", 10501},
{"Mcy", 1052},
{"MediumSpace", 8287},
{"Mellintrf", 8499},
{"MinusPlus", 8723},
{"Mscr", 8499},
{"Mu", 924},
{"NJcy", 1034},
{"Nacute", 323},
{"Ncaron", 327},
{"Ncedil", 325},
{"Ncy", 1053},
{"NegativeMediumSpace", 8203},
{"NegativeThickSpace", 8203},
{"NegativeThinSpace", 8203},
{"NegativeVeryThinSpace", 8203},
{"NestedGreaterGreater", 8811},
{"NestedLessLess", 8810},
{"NewLine", 10},
{"NoBreak", 8288},
{"NonBreakingSpace", 160},
{"Nopf", 8469},
{"Not", 10988},
{"NotCongruent", 8802},
{"NotCupCap", 8813},
{"NotDoubleVerticalBar", 8742},
{"NotElement", 8713},
{"NotEqual", 8800},
{"NotEqualTilde", 8770},
{"NotExists", 8708},
{"NotGreater", 8815},
{"NotGreaterEqual", 8817},
{"NotGreaterFullEqual", 8807},
{"NotGreaterGreater", 8811},
{"NotGreaterLess", 8825},
{"NotGreaterSlantEqual", 10878},
{"NotGreaterTilde", 8821},
{"NotHumpDownHump", 8782},
{"NotHumpEqual", 8783},
{"NotLeftTriangle", 8938},
{"NotLeftTriangleBar", 10703},
{"NotLeftTriangleEqual", 8940},
{"NotLess", 8814},
{"NotLessEqual", 8816},
{"NotLessGreater", 8824},
{"NotLessLess", 8810},
{"NotLessSlantEqual", 10877},
{"NotLessTilde", 8820},
{"NotNestedGreaterGreater", 10914},
{"NotNestedLessLess", 10913},
{"NotPrecedes", 8832},
{"NotPrecedesEqual", 10927},
{"NotPrecedesSlantEqual", 8928},
{"NotReverseElement", 8716},
{"NotRightTriangle", 8939},
{"NotRightTriangleBar", 10704},
{"NotRightTriangleEqual", 8941},
{"NotSquareSubset", 8847},
{"NotSquareSubsetEqual", 8930},
{"NotSquareSuperset", 8848},
{"NotSquareSupersetEqual", 8931},
{"NotSubset", 8834},
{"NotSubsetEqual", 8840},
{"NotSucceeds", 8833},
{"NotSucceedsEqual", 10928},
{"NotSucceedsSlantEqual", 8929},
{"NotSucceedsTilde", 8831},
{"NotSuperset", 8835},
{"NotSupersetEqual", 8841},
{"NotTilde", 8769},
{"NotTildeEqual", 8772},
{"NotTildeFullEqual", 8775},
{"NotTildeTilde", 8777},
{"NotVerticalBar", 8740},
{"Ntilde", 209},
{"Nu", 925},
{"OElig", 338},
{"Oacute", 211},
{"Ocirc", 212},
{"Ocy", 1054},
{"Odblac", 336},
{"Ograve", 210},
{"Omacr", 332},
{"Omega", 937},
{"Omicron", 927},
{"OpenCurlyDoubleQuote", 8220},
{"OpenCurlyQuote", 8216},
{"Or", 10836},
{"Oslash", 216},
{"Otilde", 213},
{"Otimes", 10807},
{"Ouml", 214},
{"OverBar", 8254},
{"OverBrace", 9182},
{"OverBracket", 9140},
{"OverParenthesis", 9180},
{"PartialD", 8706},
{"Pcy", 1055},
{"Phi", 934},
{"Pi", 928},
{"PlusMinus", 177},
{"Poincareplane", 8460},
{"Popf", 8473},
{"Pr", 10939},
{"Precedes", 8826},
{"PrecedesEqual", 10927},
{"PrecedesSlantEqual", 8828},
{"PrecedesTilde", 8830},
{"Prime", 8243},
{"Product", 8719},
{"Proportion", 8759},
{"Proportional", 8733},
{"Psi", 936},
{"Qopf", 8474},
{"RBarr", 10512},
{"Racute", 340},
{"Rang", 10219},
{"Rarr", 8608},
{"Rarrtl", 10518},
{"Rcaron", 344},
{"Rcedil", 342},
{"Rcy", 1056},
{"Re", 8476},
{"ReverseElement", 8715},
{"ReverseEquilibrium", 8651},
{"ReverseUpEquilibrium", 10607},
{"Rfr", 8476},
{"Rho", 929},
{"RightAngleBracket", 10217},
{"RightArrow", 8594},
{"RightArrowBar", 8677},
{"RightArrowLeftArrow", 8644},
{"RightCeiling", 8969},
{"RightDoubleBracket", 10215},
{"RightDownTeeVector", 10589},
{"RightDownVector", 8642},
{"RightDownVectorBar", 10581},
{"RightFloor", 8971},
{"RightTee", 8866},
{"RightTeeArrow", 8614},
{"RightTeeVector", 10587},
{"RightTriangle", 8883},
{"RightTriangleBar", 10704},
{"RightTriangleEqual", 8885},
{"RightUpDownVector", 10575},
{"RightUpTeeVector", 10588},
{"RightUpVector", 8638},
{"RightUpVectorBar", 10580},
{"RightVector", 8640},
{"RightVectorBar", 10579},
{"Rightarrow", 8658},
{"Ropf", 8477},
{"RoundImplies", 10608},
{"Rrightarrow", 8667},
{"Rscr", 8475},
{"Rsh", 8625},
{"RuleDelayed", 10740},
{"SHCHcy", 1065},
{"SHcy", 1064},
{"SOFTcy", 1068},
{"Sacute", 346},
{"Sc", 10940},
{"Scaron", 352},
{"Scedil", 350},
{"Scirc", 348},
{"Scy", 1057},
{"ShortDownArrow", 8595},
{"ShortLeftArrow", 8592},
{"ShortRightArrow", 8594},
{"ShortUpArrow", 8593},
{"Sigma", 931},
{"SmallCircle", 8728},
{"Sqrt", 8730},
{"Square", 9633},
{"SquareIntersection", 8851},
{"SquareSubset", 8847},
{"SquareSubsetEqual", 8849},
{"SquareSuperset", 8848},
{"SquareSupersetEqual", 8850},
{"SquareUnion", 8852},
{"Star", 8902},
{"Sub", 8912},
{"Subset", 8912},
{"SubsetEqual", 8838},
{"Succeeds", 8827},
{"SucceedsEqual", 10928},
{"SucceedsSlantEqual", 8829},
{"SucceedsTilde", 8831},
{"SuchThat", 8715},
{"Sum", 8721},
{"Sup", 8913},
{"Superset", 8835},
{"SupersetEqual", 8839},
{"Supset", 8913},
{"THORN", 222},
{"TSHcy", 1035},
{"TScy", 1062},
{"Tab", 9},
{"Tau", 932},
{"Tcaron", 356},
{"Tcedil", 354},
{"Tcy", 1058},
{"Therefore", 8756},
{"Theta", 920},
{"ThickSpace", 8287},
{"ThinSpace", 8201},
{"Tilde", 8764},
{"TildeEqual", 8771},
{"TildeFullEqual", 8773},
{"TildeTilde", 8776},
{"TripleDot", 8411},
{"Tstrok", 358},
{"Uacute", 218},
{"Uarr", 8607},
{"Uarrocir", 10569},
{"Ubrcy", 1038},
{"Ubreve", 364},
{"Ucirc", 219},
{"Ucy", 1059},
{"Udblac", 368},
{"Ugrave", 217},
{"Umacr", 362},
{"UnderBar", 95},
{"UnderBrace", 9183},
{"UnderBracket", 9141},
{"UnderParenthesis", 9181},
{"Union", 8899},
{"UnionPlus", 8846},
{"Uogon", 370},
{"UpArrow", 8593},
{"UpArrowBar", 10514},
{"UpArrowDownArrow", 8645},
{"UpDownArrow", 8597},
{"UpEquilibrium", 10606},
{"UpTee", 8869},
{"UpTeeArrow", 8613},
{"Uparrow", 8657},
{"Updownarrow", 8661},
{"UpperLeftArrow", 8598},
{"UpperRightArrow", 8599},
{"Upsi", 978},
{"Upsilon", 933},
{"Uring", 366},
{"Utilde", 360},
{"Uuml", 220},
{"VDash", 8875},
{"Vbar", 10987},
{"Vcy", 1042},
{"Vdash", 8873},
{"Vdashl", 10982},
{"Vee", 8897},
{"Verbar", 8214},
{"Vert", 8214},
{"VerticalBar", 8739},
{"VerticalLine", 124},
{"VerticalSeparator", 10072},
{"VerticalTilde", 8768},
{"VeryThinSpace", 8202},
{"Vvdash", 8874},
{"Wcirc", 372},
{"Wedge", 8896},
{"Xi", 926},
{"YAcy", 1071},
{"YIcy", 1031},
{"YUcy", 1070},
{"Yacute", 221},
{"Ycirc", 374},
{"Ycy", 1067},
{"Yuml", 376},
{"ZHcy", 1046},
{"Zacute", 377},
{"Zcaron", 381},
{"Zcy", 1047},
{"Zdot", 379},
{"ZeroWidthSpace", 8203},
{"Zeta", 918},
{"Zfr", 8488},
{"Zopf", 8484},
{"_AMP", 38},
{"_COPY", 169},
{"_GT", 62},
{"_LT", 60},
{"_QUOT", 34},
{"_REG", 174},
{"_TRADE", 8482},
{"_emdash", 8212}, /* non-standard but commonly used */
{"_endash", 8211}, /* non-standard but commonly used */
{"_ldots", 8230},
{"_sp", 8194},
{"_varepsilon", 1013},
{"_varpi", 982},
{"_vsigma", 962},
{"_vtheta", 977},
{"aacute", 225},
{"abreve", 259},
{"ac", 8766},
{"acE", 8766},
{"acd", 8767},
{"acirc", 226},
{"acute", 180},
{"acy", 1072},
{"aelig", 230},
{"af", 8289},
{"agrave", 224},
{"alefsym", 8501},
{"aleph", 8501},
{"alpha", 945},
{"amacr", 257},
{"amalg", 10815},
{"amp", 38},
{"and", 8743},
{"andand", 10837},
{"andd", 10844},
{"andslope", 10840},
{"andv", 10842},
{"ang", 8736},
{"ange", 10660},
{"angle", 8736},
{"angmsd", 8737},
{"angmsdaa", 10664},
{"angmsdab", 10665},
{"angmsdac", 10666},
{"angmsdad", 10667},
{"angmsdae", 10668},
{"angmsdaf", 10669},
{"angmsdag", 10670},
{"angmsdah", 10671},
{"angrt", 8735},
{"angrtvb", 8894},
{"angrtvbd", 10653},
{"angsph", 8738},
{"angst", 197},
{"angzarr", 9084},
{"aogon", 261},
{"ap", 8776},
{"apE", 10864},
{"apacir", 10863},
{"ape", 8778},
{"apid", 8779},
{"apos", 39},
{"approx", 8776},
{"approxeq", 8778},
{"aring", 229},
{"ast", 42},
{"asymp", 8776},
{"asympeq", 8781},
{"atilde", 227},
{"auml", 228},
{"awconint", 8755},
{"awint", 10769},
{"bNot", 10989},
{"backcong", 8780},
{"backepsilon", 1014},
{"backprime", 8245},
{"backsim", 8765},
{"backsimeq", 8909},
{"barvee", 8893},
{"barwed", 8965},
{"barwedge", 8965},
{"bbrk", 9141},
{"bbrktbrk", 9142},
{"bcong", 8780},
{"bcy", 1073},
{"bdquo", 8222},
{"becaus", 8757},
{"because", 8757},
{"bemptyv", 10672},
{"bepsi", 1014},
{"bernou", 8492},
{"beta", 946},
{"beth", 8502},
{"between", 8812},
{"bigcap", 8898},
{"bigcirc", 9711},
{"bigcup", 8899},
{"bigodot", 10752},
{"bigoplus", 10753},
{"bigotimes", 10754},
{"bigsqcup", 10758},
{"bigstar", 9733},
{"bigtriangledown", 9661},
{"bigtriangleup", 9651},
{"biguplus", 10756},
{"bigvee", 8897},
{"bigwedge", 8896},
{"bkarow", 10509},
{"blacklozenge", 10731},
{"blacksquare", 9642},
{"blacktriangle", 9652},
{"blacktriangledown", 9662},
{"blacktriangleleft", 9666},
{"blacktriangleright", 9656},
{"blank", 9251},
{"blk12", 9618},
{"blk14", 9617},
{"blk34", 9619},
{"block", 9608},
{"bne", 61},
{"bnequiv", 8801},
{"bnot", 8976},
{"bot", 8869},
{"bottom", 8869},
{"bowtie", 8904},
{"boxDL", 9559},
{"boxDR", 9556},
{"boxDl", 9558},
{"boxDr", 9555},
{"boxH", 9552},
{"boxHD", 9574},
{"boxHU", 9577},
{"boxHd", 9572},
{"boxHu", 9575},
{"boxUL", 9565},
{"boxUR", 9562},
{"boxUl", 9564},
{"boxUr", 9561},
{"boxV", 9553},
{"boxVH", 9580},
{"boxVL", 9571},
{"boxVR", 9568},
{"boxVh", 9579},
{"boxVl", 9570},
{"boxVr", 9567},
{"boxbox", 10697},
{"boxdL", 9557},
{"boxdR", 9554},
{"boxdl", 9488},
{"boxdr", 9484},
{"boxh", 9472},
{"boxhD", 9573},
{"boxhU", 9576},
{"boxhd", 9516},
{"boxhu", 9524},
{"boxminus", 8863},
{"boxplus", 8862},
{"boxtimes", 8864},
{"boxuL", 9563},
{"boxuR", 9560},
{"boxul", 9496},
{"boxur", 9492},
{"boxv", 9474},
{"boxvH", 9578},
{"boxvL", 9569},
{"boxvR", 9566},
{"boxvh", 9532},
{"boxvl", 9508},
{"boxvr", 9500},
{"bprime", 8245},
{"breve", 728},
{"brvbar", 166},
{"bsemi", 8271},
{"bsim", 8765},
{"bsime", 8909},
{"bsol", 92},
{"bsolb", 10693},
{"bsolhsub", 10184},
{"bull", 8226},
{"bullet", 8226},
{"bump", 8782},
{"bumpE", 10926},
{"bumpe", 8783},
{"bumpeq", 8783},
{"cacute", 263},
{"cap", 8745},
{"capand", 10820},
{"capbrcup", 10825},
{"capcap", 10827},
{"capcup", 10823},
{"capdot", 10816},
{"caps", 8745},
{"caret", 8257},
{"caron", 711},
{"ccaps", 10829},
{"ccaron", 269},
{"ccedil", 231},
{"ccirc", 265},
{"ccups", 10828},
{"ccupssm", 10832},
{"cdot", 267},
{"cdots", 8943},
{"cedil", 184},
{"cemptyv", 10674},
{"cent", 162},
{"centerdot", 183},
{"chcy", 1095},
{"check", 10003},
{"checkmark", 10003},
{"chi", 967},
{"cir", 9675},
{"cirE", 10691},
{"circ", 710},
{"circeq", 8791},
{"circlearrowleft", 8634},
{"circlearrowright", 8635},
{"circledR", 174},
{"circledS", 9416},
{"circledast", 8859},
{"circledcirc", 8858},
{"circleddash", 8861},
{"cire", 8791},
{"cirfnint", 10768},
{"cirmid", 10991},
{"cirscir", 10690},
{"clubs", 9827},
{"clubsuit", 9827},
{"colon", 58},
{"colone", 8788},
{"coloneq", 8788},
{"comma", 44},
{"commat", 64},
{"comp", 8705},
{"compfn", 8728},
{"complement", 8705},
{"complexes", 8450},
{"cong", 8773},
{"congdot", 10861},
{"conint", 8750},
{"coprod", 8720},
{"copy", 169},
{"copysr", 8471},
{"crarr", 8629},
{"cross", 10007},
{"csub", 10959},
{"csube", 10961},
{"csup", 10960},
{"csupe", 10962},
{"ctdot", 8943},
{"cudarrl", 10552},
{"cudarrr", 10549},
{"cuepr", 8926},
{"cuesc", 8927},
{"cularr", 8630},
{"cularrp", 10557},
{"cup", 8746},
{"cupbrcap", 10824},
{"cupcap", 10822},
{"cupcup", 10826},
{"cupdot", 8845},
{"cupor", 10821},
{"cups", 8746},
{"curarr", 8631},
{"curarrm", 10556},
{"curlyeqprec", 8926},
{"curlyeqsucc", 8927},
{"curlyvee", 8910},
{"curlywedge", 8911},
{"curren", 164},
{"curvearrowleft", 8630},
{"curvearrowright", 8631},
{"cuvee", 8910},
{"cuwed", 8911},
{"cwconint", 8754},
{"cwint", 8753},
{"cylcty", 9005},
{"dArr", 8659},
{"dHar", 10597},
{"dagger", 8224},
{"daleth", 8504},
{"darr", 8595},
{"dash", 8208},
{"dashv", 8867},
{"dbkarow", 10511},
{"dblac", 733},
{"dcaron", 271},
{"dcy", 1076},
{"dd", 8518},
{"ddagger", 8225},
{"ddarr", 8650},
{"ddots", 8945},
{"ddotseq", 10871},
{"deg", 176},
{"delta", 948},
{"demptyv", 10673},
{"dfisht", 10623},
{"dharl", 8643},
{"dharr", 8642},
{"diam", 8900},
{"diamond", 8900},
{"diamondsuit", 9830},
{"diams", 9830},
{"die", 168},
{"digamma", 989},
{"disin", 8946},
{"div", 247},
{"divide", 247},
{"divideontimes", 8903},
{"divonx", 8903},
{"djcy", 1106},
{"dlcorn", 8990},
{"dlcrop", 8973},
{"dollar", 36},
{"dot", 729},
{"doteq", 8784},
{"doteqdot", 8785},
{"dotminus", 8760},
{"dotplus", 8724},
{"dotsquare", 8865},
{"doublebarwedge", 8966},
{"downarrow", 8595},
{"downdownarrows", 8650},
{"downharpoonleft", 8643},
{"downharpoonright", 8642},
{"drbkarow", 10512},
{"drcorn", 8991},
{"drcrop", 8972},
{"dscy", 1109},
{"dsol", 10742},
{"dstrok", 273},
{"dtdot", 8945},
{"dtri", 9663},
{"dtrif", 9662},
{"duarr", 8693},
{"duhar", 10607},
{"dwangle", 10662},
{"dzcy", 1119},
{"dzigrarr", 10239},
{"eDDot", 10871},
{"eDot", 8785},
{"eacute", 233},
{"easter", 10862},
{"ecaron", 283},
{"ecir", 8790},
{"ecirc", 234},
{"ecolon", 8789},
{"ecy", 1101},
{"edot", 279},
{"ee", 8519},
{"efDot", 8786},
{"eg", 10906},
{"egrave", 232},
{"egs", 10902},
{"egsdot", 10904},
{"el", 10905},
{"elinters", 9191},
{"ell", 8467},
{"els", 10901},
{"elsdot", 10903},
{"emacr", 275},
{"empty", 8709},
{"emptyset", 8709},
{"emptyv", 8709},
{"emsp", 8195},
{"emsp13", 8196},
{"emsp14", 8197},
{"eng", 331},
{"ensp", 8194},
{"eogon", 281},
{"epar", 8917},
{"eparsl", 10723},
{"eplus", 10865},
{"epsi", 949},
{"epsilon", 949},
{"epsiv", 1013},
{"eqcirc", 8790},
{"eqcolon", 8789},
{"eqsim", 8770},
{"eqslantgtr", 10902},
{"eqslantless", 10901},
{"equals", 61},
{"equest", 8799},
{"equiv", 8801},
{"equivDD", 10872},
{"eqvparsl", 10725},
{"erDot", 8787},
{"erarr", 10609},
{"escr", 8495},
{"esdot", 8784},
{"esim", 8770},
{"eta", 951},
{"eth", 240},
{"euml", 235},
{"euro", 8364},
{"excl", 33},
{"exist", 8707},
{"expectation", 8496},
{"exponentiale", 8519},
{"fallingdotseq", 8786},
{"fcy", 1092},
{"female", 9792},
{"ffilig", 64259},
{"fflig", 64256},
{"ffllig", 64260},
{"filig", 64257},
{"fjlig", 102},
{"flat", 9837},
{"fllig", 64258},
{"fltns", 9649},
{"fnof", 402},
{"forall", 8704},
{"fork", 8916},
{"forkv", 10969},
{"fpartint", 10765},
{"frac12", 189},
{"frac13", 8531},
{"frac14", 188},
{"frac15", 8533},
{"frac16", 8537},
{"frac18", 8539},
{"frac23", 8532},
{"frac25", 8534},
{"frac34", 190},
{"frac35", 8535},
{"frac38", 8540},
{"frac45", 8536},
{"frac56", 8538},
{"frac58", 8541},
{"frac78", 8542},
{"frasl", 8260},
{"frown", 8994},
{"gE", 8807},
{"gEl", 10892},
{"gacute", 501},
{"gamma", 947},
{"gammad", 989},
{"gap", 10886},
{"gbreve", 287},
{"gcirc", 285},
{"gcy", 1075},
{"gdot", 289},
{"ge", 8805},
{"gel", 8923},
{"geq", 8805},
{"geqq", 8807},
{"geqslant", 10878},
{"ges", 10878},
{"gescc", 10921},
{"gesdot", 10880},
{"gesdoto", 10882},
{"gesdotol", 10884},
{"gesl", 8923},
{"gesles", 10900},
{"gg", 8811},
{"ggg", 8921},
{"gimel", 8503},
{"gjcy", 1107},
{"gl", 8823},
{"glE", 10898},
{"gla", 10917},
{"glj", 10916},
{"gnE", 8809},
{"gnap", 10890},
{"gnapprox", 10890},
{"gne", 10888},
{"gneq", 10888},
{"gneqq", 8809},
{"gnsim", 8935},
{"grave", 96},
{"gscr", 8458},
{"gsim", 8819},
{"gsime", 10894},
{"gsiml", 10896},
{"gt", 62},
{"gtcc", 10919},
{"gtcir", 10874},
{"gtdot", 8919},
{"gtlPar", 10645},
{"gtquest", 10876},
{"gtrapprox", 10886},
{"gtrarr", 10616},
{"gtrdot", 8919},
{"gtreqless", 8923},
{"gtreqqless", 10892},
{"gtrless", 8823},
{"gtrsim", 8819},
{"gvertneqq", 8809},
{"gvnE", 8809},
{"hArr", 8660},
{"hairsp", 8202},
{"half", 189},
{"hamilt", 8459},
{"hardcy", 1098},
{"harr", 8596},
{"harrcir", 10568},
{"harrw", 8621},
{"hbar", 8463},
{"hcirc", 293},
{"hearts", 9829},
{"heartsuit", 9829},
{"hellip", 8230},
{"hercon", 8889},
{"hksearow", 10533},
{"hkswarow", 10534},
{"hoarr", 8703},
{"homtht", 8763},
{"hookleftarrow", 8617},
{"hookrightarrow", 8618},
{"horbar", 8213},
{"hslash", 8463},
{"hstrok", 295},
{"hybull", 8259},
{"hyphen", 8208},
{"iacute", 237},
{"ic", 8291},
{"icirc", 238},
{"icy", 1080},
{"iecy", 1077},
{"iexcl", 161},
{"iff", 8660},
{"igrave", 236},
{"ii", 8520},
{"iiiint", 10764},
{"iiint", 8749},
{"iinfin", 10716},
{"iiota", 8489},
{"ijlig", 307},
{"imacr", 299},
{"image", 8465},
{"imagline", 8464},
{"imagpart", 8465},
{"imath", 305},
{"imof", 8887},
{"imped", 437},
{"in", 8712},
{"incare", 8453},
{"infin", 8734},
{"infintie", 10717},
{"inodot", 305},
{"int", 8747},
{"intcal", 8890},
{"integers", 8484},
{"intercal", 8890},
{"intlarhk", 10775},
{"intprod", 10812},
{"iocy", 1105},
{"iogon", 303},
{"iota", 953},
{"iprod", 10812},
{"iquest", 191},
{"isin", 8712},
{"isinE", 8953},
{"isindot", 8949},
{"isins", 8948},
{"isinsv", 8947},
{"isinv", 8712},
{"it", 8290},
{"itilde", 297},
{"iukcy", 1110},
{"iuml", 239},
{"jcirc", 309},
{"jcy", 1081},
{"jmath", 567},
{"jsercy", 1112},
{"jukcy", 1108},
{"kappa", 954},
{"kappav", 1008},
{"kcedil", 311},
{"kcy", 1082},
{"kgreen", 312},
{"khcy", 1093},
{"kjcy", 1116},
{"lAarr", 8666},
{"lArr", 8656},
{"lAtail", 10523},
{"lBarr", 10510},
{"lE", 8806},
{"lEg", 10891},
{"lHar", 10594},
{"lacute", 314},
{"laemptyv", 10676},
{"lagran", 8466},
{"lambda", 955},
{"lang", 10216},
{"lang", 9001},
{"langd", 10641},
{"langle", 10216},
{"lap", 10885},
{"laquo", 171},
{"larr", 8592},
{"larrb", 8676},
{"larrbfs", 10527},
{"larrfs", 10525},
{"larrhk", 8617},
{"larrlp", 8619},
{"larrpl", 10553},
{"larrsim", 10611},
{"larrtl", 8610},
{"lat", 10923},
{"latail", 10521},
{"late", 10925},
{"lates", 10925},
{"lbarr", 10508},
{"lbbrk", 10098},
{"lbrace", 123},
{"lbrack", 91},
{"lbrke", 10635},
{"lbrksld", 10639},
{"lbrkslu", 10637},
{"lcaron", 318},
{"lcedil", 316},
{"lceil", 8968},
{"lcub", 123},
{"lcy", 1083},
{"ldca", 10550},
{"ldquo", 8220},
{"ldquor", 8222},
{"ldrdhar", 10599},
{"ldrushar", 10571},
{"ldsh", 8626},
{"le", 8804},
{"leftarrow", 8592},
{"leftarrowtail", 8610},
{"leftharpoondown", 8637},
{"leftharpoonup", 8636},
{"leftleftarrows", 8647},
{"leftrightarrow", 8596},
{"leftrightarrows", 8646},
{"leftrightharpoons", 8651},
{"leftrightsquigarrow", 8621},
{"leftthreetimes", 8907},
{"leg", 8922},
{"leq", 8804},
{"leqq", 8806},
{"leqslant", 10877},
{"les", 10877},
{"lescc", 10920},
{"lesdot", 10879},
{"lesdoto", 10881},
{"lesdotor", 10883},
{"lesg", 8922},
{"lesges", 10899},
{"lessapprox", 10885},
{"lessdot", 8918},
{"lesseqgtr", 8922},
{"lesseqqgtr", 10891},
{"lessgtr", 8822},
{"lesssim", 8818},
{"lfisht", 10620},
{"lfloor", 8970},
{"lg", 8822},
{"lgE", 10897},
{"lhard", 8637},
{"lharu", 8636},
{"lharul", 10602},
{"lhblk", 9604},
{"ljcy", 1113},
{"ll", 8810},
{"llarr", 8647},
{"llcorner", 8990},
{"llhard", 10603},
{"lltri", 9722},
{"lmidot", 320},
{"lmoust", 9136},
{"lmoustache", 9136},
{"lnE", 8808},
{"lnap", 10889},
{"lnapprox", 10889},
{"lne", 10887},
{"lneq", 10887},
{"lneqq", 8808},
{"lnsim", 8934},
{"loang", 10220},
{"loarr", 8701},
{"lobrk", 10214},
{"longleftarrow", 10229},
{"longleftrightarrow", 10231},
{"longmapsto", 10236},
{"longrightarrow", 10230},
{"looparrowleft", 8619},
{"looparrowright", 8620},
{"lopar", 10629},
{"loplus", 10797},
{"lotimes", 10804},
{"lowast", 8727},
{"lowbar", 95},
{"loz", 9674},
{"lozenge", 9674},
{"lozf", 10731},
{"lpar", 40},
{"lparlt", 10643},
{"lrarr", 8646},
{"lrcorner", 8991},
{"lrhar", 8651},
{"lrhard", 10605},
{"lrm", 8206},
{"lrtri", 8895},
{"lsaquo", 8249},
{"lsh", 8624},
{"lsim", 8818},
{"lsime", 10893},
{"lsimg", 10895},
{"lsqb", 91},
{"lsquo", 8216},
{"lsquor", 8218},
{"lstrok", 322},
{"lt", 60},
{"ltcc", 10918},
{"ltcir", 10873},
{"ltdot", 8918},
{"lthree", 8907},
{"ltimes", 8905},
{"ltlarr", 10614},
{"ltquest", 10875},
{"ltrPar", 10646},
{"ltri", 9667},
{"ltrie", 8884},
{"ltrif", 9666},
{"lurdshar", 10570},
{"luruhar", 10598},
{"lvertneqq", 8808},
{"lvnE", 8808},
{"mDDot", 8762},
{"macr", 175},
{"male", 9794},
{"malt", 10016},
{"maltese", 10016},
{"map", 8614},
{"mapsto", 8614},
{"mapstodown", 8615},
{"mapstoleft", 8612},
{"mapstoup", 8613},
{"marker", 9646},
{"mcomma", 10793},
{"mcy", 1084},
{"mdash", 8212},
{"measuredangle", 8737},
{"mho", 8487},
{"micro", 181},
{"mid", 8739},
{"midast", 42},
{"midcir", 10992},
{"middot", 183},
{"minus", 8722},
{"minusb", 8863},
{"minusd", 8760},
{"minusdu", 10794},
{"mlcp", 10971},
{"mldr", 8230},
{"mnplus", 8723},
{"models", 8871},
{"mp", 8723},
{"mstpos", 8766},
{"mu", 956},
{"multimap", 8888},
{"mumap", 8888},
{"nGg", 8921},
{"nGt", 8811},
{"nGtv", 8811},
{"nLeftarrow", 8653},
{"nLeftrightarrow", 8654},
{"nLl", 8920},
{"nLt", 8810},
{"nLtv", 8810},
{"nRightarrow", 8655},
{"nVDash", 8879},
{"nVdash", 8878},
{"nabla", 8711},
{"nacute", 324},
{"nang", 8736},
{"nap", 8777},
{"napE", 10864},
{"napid", 8779},
{"napos", 329},
{"napprox", 8777},
{"natur", 9838},
{"natural", 9838},
{"naturals", 8469},
{"nbsp", 160},
{"nbump", 8782},
{"nbumpe", 8783},
{"ncap", 10819},
{"ncaron", 328},
{"ncedil", 326},
{"ncong", 8775},
{"ncongdot", 10861},
{"ncup", 10818},
{"ncy", 1085},
{"ndash", 8211},
{"ne", 8800},
{"neArr", 8663},
{"nearhk", 10532},
{"nearr", 8599},
{"nearrow", 8599},
{"nedot", 8784},
{"nequiv", 8802},
{"nesear", 10536},
{"nesim", 8770},
{"nexist", 8708},
{"nexists", 8708},
{"ngE", 8807},
{"nge", 8817},
{"ngeq", 8817},
{"ngeqq", 8807},
{"ngeqslant", 10878},
{"nges", 10878},
{"ngsim", 8821},
{"ngt", 8815},
{"ngtr", 8815},
{"nhArr", 8654},
{"nharr", 8622},
{"nhpar", 10994},
{"ni", 8715},
{"nis", 8956},
{"nisd", 8954},
{"niv", 8715},
{"njcy", 1114},
{"nlArr", 8653},
{"nlE", 8806},
{"nlarr", 8602},
{"nldr", 8229},
{"nle", 8816},
{"nleftarrow", 8602},
{"nleftrightarrow", 8622},
{"nleq", 8816},
{"nleqq", 8806},
{"nleqslant", 10877},
{"nles", 10877},
{"nless", 8814},
{"nlsim", 8820},
{"nlt", 8814},
{"nltri", 8938},
{"nltrie", 8940},
{"nmid", 8740},
{"not", 172},
{"notin", 8713},
{"notinE", 8953},
{"notindot", 8949},
{"notinva", 8713},
{"notinvb", 8951},
{"notinvc", 8950},
{"notni", 8716},
{"notniva", 8716},
{"notnivb", 8958},
{"notnivc", 8957},
{"npar", 8742},
{"nparallel", 8742},
{"nparsl", 11005},
{"npart", 8706},
{"npolint", 10772},
{"npr", 8832},
{"nprcue", 8928},
{"npre", 10927},
{"nprec", 8832},
{"npreceq", 10927},
{"nrArr", 8655},
{"nrarr", 8603},
{"nrarrc", 10547},
{"nrarrw", 8605},
{"nrightarrow", 8603},
{"nrtri", 8939},
{"nrtrie", 8941},
{"nsc", 8833},
{"nsccue", 8929},
{"nsce", 10928},
{"nshortmid", 8740},
{"nshortparallel", 8742},
{"nsim", 8769},
{"nsime", 8772},
{"nsimeq", 8772},
{"nsmid", 8740},
{"nspar", 8742},
{"nsqsube", 8930},
{"nsqsupe", 8931},
{"nsub", 8836},
{"nsubE", 10949},
{"nsube", 8840},
{"nsubset", 8834},
{"nsubseteq", 8840},
{"nsubseteqq", 10949},
{"nsucc", 8833},
{"nsucceq", 10928},
{"nsup", 8837},
{"nsupE", 10950},
{"nsupe", 8841},
{"nsupset", 8835},
{"nsupseteq", 8841},
{"nsupseteqq", 10950},
{"ntgl", 8825},
{"ntilde", 241},
{"ntlg", 8824},
{"ntriangleleft", 8938},
{"ntrianglelefteq", 8940},
{"ntriangleright", 8939},
{"ntrianglerighteq", 8941},
{"nu", 957},
{"num", 35},
{"numero", 8470},
{"numsp", 8199},
{"nvDash", 8877},
{"nvHarr", 10500},
{"nvap", 8781},
{"nvdash", 8876},
{"nvge", 8805},
{"nvgt", 62},
{"nvinfin", 10718},
{"nvlArr", 10498},
{"nvle", 8804},
{"nvlt", 60},
{"nvltrie", 8884},
{"nvrArr", 10499},
{"nvrtrie", 8885},
{"nvsim", 8764},
{"nwArr", 8662},
{"nwarhk", 10531},
{"nwarr", 8598},
{"nwarrow", 8598},
{"nwnear", 10535},
{"oS", 9416},
{"oacute", 243},
{"oast", 8859},
{"ocir", 8858},
{"ocirc", 244},
{"ocy", 1086},
{"odash", 8861},
{"odblac", 337},
{"odiv", 10808},
{"odot", 8857},
{"odsold", 10684},
{"oelig", 339},
{"ofcir", 10687},
{"ogon", 731},
{"ograve", 242},
{"ogt", 10689},
{"ohbar", 10677},
{"ohm", 937},
{"oint", 8750},
{"olarr", 8634},
{"olcir", 10686},
{"olcross", 10683},
{"oline", 8254},
{"olt", 10688},
{"omacr", 333},
{"omega", 969},
{"omicron", 959},
{"omid", 10678},
{"ominus", 8854},
{"opar", 10679},
{"operp", 10681},
{"oplus", 8853},
{"or", 8744},
{"orarr", 8635},
{"ord", 10845},
{"order", 8500},
{"orderof", 8500},
{"ordf", 170},
{"ordm", 186},
{"origof", 8886},
{"oror", 10838},
{"orslope", 10839},
{"orv", 10843},
{"oscr", 8500},
{"oslash", 248},
{"osol", 8856},
{"otilde", 245},
{"otimes", 8855},
{"otimesas", 10806},
{"ouml", 246},
{"ovbar", 9021},
{"par", 8741},
{"para", 182},
{"parallel", 8741},
{"parsim", 10995},
{"parsl", 11005},
{"part", 8706},
{"pcy", 1087},
{"percnt", 37},
{"period", 46},
{"permil", 8240},
{"perp", 8869},
{"pertenk", 8241},
{"phi", 966},
{"phiv", 981},
{"phmmat", 8499},
{"phone", 9742},
{"pi", 960},
{"pitchfork", 8916},
{"piv", 982},
{"planck", 8463},
{"planckh", 8462},
{"plankv", 8463},
{"plus", 43},
{"plusacir", 10787},
{"plusb", 8862},
{"pluscir", 10786},
{"plusdo", 8724},
{"plusdu", 10789},
{"pluse", 10866},
{"plusmn", 177},
{"plussim", 10790},
{"plustwo", 10791},
{"pm", 177},
{"pointint", 10773},
{"pound", 163},
{"pr", 8826},
{"prE", 10931},
{"prap", 10935},
{"prcue", 8828},
{"pre", 10927},
{"prec", 8826},
{"precapprox", 10935},
{"preccurlyeq", 8828},
{"preceq", 10927},
{"precnapprox", 10937},
{"precneqq", 10933},
{"precnsim", 8936},
{"precsim", 8830},
{"prime", 8242},
{"primes", 8473},
{"prnE", 10933},
{"prnap", 10937},
{"prnsim", 8936},
{"prod", 8719},
{"profalar", 9006},
{"profline", 8978},
{"profsurf", 8979},
{"prop", 8733},
{"propto", 8733},
{"prsim", 8830},
{"prurel", 8880},
{"psi", 968},
{"puncsp", 8200},
{"qint", 10764},
{"qprime", 8279},
{"quad", 8193},
{"quaternions", 8461},
{"quatint", 10774},
{"quest", 63},
{"questeq", 8799},
{"quot", 34},
{"rAarr", 8667},
{"rArr", 8658},
{"rAtail", 10524},
{"rBarr", 10511},
{"rHar", 10596},
{"race", 8765},
{"racute", 341},
{"radic", 8730},
{"raemptyv", 10675},
{"rang", 10217},
{"rang", 9002},
{"rangd", 10642},
{"range", 10661},
{"rangle", 10217},
{"raquo", 187},
{"rarr", 8594},
{"rarrap", 10613},
{"rarrb", 8677},
{"rarrbfs", 10528},
{"rarrc", 10547},
{"rarrfs", 10526},
{"rarrhk", 8618},
{"rarrlp", 8620},
{"rarrpl", 10565},
{"rarrsim", 10612},
{"rarrtl", 8611},
{"rarrw", 8605},
{"ratail", 10522},
{"ratio", 8758},
{"rationals", 8474},
{"rbarr", 10509},
{"rbbrk", 10099},
{"rbrace", 125},
{"rbrack", 93},
{"rbrke", 10636},
{"rbrksld", 10638},
{"rbrkslu", 10640},
{"rcaron", 345},
{"rcedil", 343},
{"rceil", 8969},
{"rcub", 125},
{"rcy", 1088},
{"rdca", 10551},
{"rdldhar", 10601},
{"rdquo", 8221},
{"rdquor", 8221},
{"rdsh", 8627},
{"real", 8476},
{"realine", 8475},
{"realpart", 8476},
{"reals", 8477},
{"rect", 9645},
{"reg", 174},
{"rfisht", 10621},
{"rfloor", 8971},
{"rhard", 8641},
{"rharu", 8640},
{"rharul", 10604},
{"rho", 961},
{"rhov", 1009},
{"rightarrow", 8594},
{"rightarrowtail", 8611},
{"rightharpoondown", 8641},
{"rightharpoonup", 8640},
{"rightleftarrows", 8644},
{"rightleftharpoons", 8652},
{"rightrightarrows", 8649},
{"rightsquigarrow", 8605},
{"rightthreetimes", 8908},
{"ring", 730},
{"risingdotseq", 8787},
{"rlarr", 8644},
{"rlhar", 8652},
{"rlm", 8207},
{"rmoust", 9137},
{"rmoustache", 9137},
{"rnmid", 10990},
{"roang", 10221},
{"roarr", 8702},
{"robrk", 10215},
{"ropar", 10630},
{"roplus", 10798},
{"rotimes", 10805},
{"rpar", 41},
{"rpargt", 10644},
{"rppolint", 10770},
{"rrarr", 8649},
{"rsaquo", 8250},
{"rsh", 8625},
{"rsqb", 93},
{"rsquo", 8217},
{"rsquor", 8217},
{"rthree", 8908},
{"rtimes", 8906},
{"rtri", 9657},
{"rtrie", 8885},
{"rtrif", 9656},
{"rtriltri", 10702},
{"ruluhar", 10600},
{"rx", 8478},
{"sacute", 347},
{"sbquo", 8218},
{"sc", 8827},
{"scE", 10932},
{"scap", 10936},
{"scaron", 353},
{"sccue", 8829},
{"sce", 10928},
{"scedil", 351},
{"scirc", 349},
{"scnE", 10934},
{"scnap", 10938},
{"scnsim", 8937},
{"scpolint", 10771},
{"scsim", 8831},
{"scy", 1089},
{"sdot", 8901},
{"sdotb", 8865},
{"sdote", 10854},
{"seArr", 8664},
{"searhk", 10533},
{"searr", 8600},
{"searrow", 8600},
{"sect", 167},
{"semi", 59},
{"seswar", 10537},
{"setminus", 8726},
{"setmn", 8726},
{"sext", 10038},
{"sfrown", 8994},
{"sharp", 9839},
{"shchcy", 1097},
{"shcy", 1096},
{"shortmid", 8739},
{"shortparallel", 8741},
{"shy", 173},
{"sigma", 963},
{"sigmaf", 962},
{"sigmav", 962},
{"sim", 8764},
{"simdot", 10858},
{"sime", 8771},
{"simeq", 8771},
{"simg", 10910},
{"simgE", 10912},
{"siml", 10909},
{"simlE", 10911},
{"simne", 8774},
{"simplus", 10788},
{"simrarr", 10610},
{"slarr", 8592},
{"smallsetminus", 8726},
{"smashp", 10803},
{"smeparsl", 10724},
{"smid", 8739},
{"smile", 8995},
{"smt", 10922},
{"smte", 10924},
{"smtes", 10924},
{"softcy", 1100},
{"sol", 47},
{"solb", 10692},
{"solbar", 9023},
{"spades", 9824},
{"spadesuit", 9824},
{"spar", 8741},
{"sqcap", 8851},
{"sqcaps", 8851},
{"sqcup", 8852},
{"sqcups", 8852},
{"sqsub", 8847},
{"sqsube", 8849},
{"sqsubset", 8847},
{"sqsubseteq", 8849},
{"sqsup", 8848},
{"sqsupe", 8850},
{"sqsupset", 8848},
{"sqsupseteq", 8850},
{"squ", 9633},
{"square", 9633},
{"squarf", 9642},
{"squf", 9642},
{"srarr", 8594},
{"ssetmn", 8726},
{"ssmile", 8995},
{"sstarf", 8902},
{"star", 9734},
{"starf", 9733},
{"straightepsilon", 1013},
{"straightphi", 981},
{"strns", 175},
{"sub", 8834},
{"subE", 10949},
{"subdot", 10941},
{"sube", 8838},
{"subedot", 10947},
{"submult", 10945},
{"subnE", 10955},
{"subne", 8842},
{"subplus", 10943},
{"subrarr", 10617},
{"subset", 8834},
{"subseteq", 8838},
{"subseteqq", 10949},
{"subsetneq", 8842},
{"subsetneqq", 10955},
{"subsim", 10951},
{"subsub", 10965},
{"subsup", 10963},
{"succ", 8827},
{"succapprox", 10936},
{"succcurlyeq", 8829},
{"succeq", 10928},
{"succnapprox", 10938},
{"succneqq", 10934},
{"succnsim", 8937},
{"succsim", 8831},
{"sum", 8721},
{"sung", 9834},
{"sup", 8835},
{"sup1", 185},
{"sup2", 178},
{"sup3", 179},
{"supE", 10950},
{"supdot", 10942},
{"supdsub", 10968},
{"supe", 8839},
{"supedot", 10948},
{"suphsol", 10185},
{"suphsub", 10967},
{"suplarr", 10619},
{"supmult", 10946},
{"supnE", 10956},
{"supne", 8843},
{"supplus", 10944},
{"supset", 8835},
{"supseteq", 8839},
{"supseteqq", 10950},
{"supsetneq", 8843},
{"supsetneqq", 10956},
{"supsim", 10952},
{"supsub", 10964},
{"supsup", 10966},
{"swArr", 8665},
{"swarhk", 10534},
{"swarr", 8601},
{"swarrow", 8601},
{"swnwar", 10538},
{"szlig", 223},
{"target", 8982},
{"tau", 964},
{"tbrk", 9140},
{"tcaron", 357},
{"tcedil", 355},
{"tcy", 1090},
{"tdot", 8411},
{"telrec", 8981},
{"there4", 8756},
{"therefore", 8756},
{"theta", 952},
{"thetasym", 977},
{"thetav", 977},
{"thickapprox", 8776},
{"thicksim", 8764},
{"thinsp", 8201},
{"thkap", 8776},
{"thksim", 8764},
{"thorn", 254},
{"tilde", 732},
{"times", 215},
{"timesb", 8864},
{"timesbar", 10801},
{"timesd", 10800},
{"tint", 8749},
{"toea", 10536},
{"top", 8868},
{"topbot", 9014},
{"topcir", 10993},
{"topfork", 10970},
{"tosa", 10537},
{"tprime", 8244},
{"trade", 8482},
{"triangle", 9653},
{"triangledown", 9663},
{"triangleleft", 9667},
{"trianglelefteq", 8884},
{"triangleq", 8796},
{"triangleright", 9657},
{"trianglerighteq", 8885},
{"tridot", 9708},
{"trie", 8796},
{"triminus", 10810},
{"triplus", 10809},
{"trisb", 10701},
{"tritime", 10811},
{"trpezium", 9186},
{"tscy", 1094},
{"tshcy", 1115},
{"tstrok", 359},
{"twixt", 8812},
{"twoheadleftarrow", 8606},
{"twoheadrightarrow", 8608},
{"uArr", 8657},
{"uHar", 10595},
{"uacute", 250},
{"uarr", 8593},
{"ubrcy", 1118},
{"ubreve", 365},
{"ucirc", 251},
{"ucy", 1091},
{"udarr", 8645},
{"udblac", 369},
{"udhar", 10606},
{"ufisht", 10622},
{"ugrave", 249},
{"uharl", 8639},
{"uharr", 8638},
{"uhblk", 9600},
{"ulcorn", 8988},
{"ulcorner", 8988},
{"ulcrop", 8975},
{"ultri", 9720},
{"umacr", 363},
{"uml", 168},
{"uogon", 371},
{"uparrow", 8593},
{"updownarrow", 8597},
{"upharpoonleft", 8639},
{"upharpoonright", 8638},
{"uplus", 8846},
{"upsi", 965},
{"upsih", 978},
{"upsilon", 965},
{"upuparrows", 8648},
{"urcorn", 8989},
{"urcorner", 8989},
{"urcrop", 8974},
{"uring", 367},
{"urtri", 9721},
{"utdot", 8944},
{"utilde", 361},
{"utri", 9653},
{"utrif", 9652},
{"uuarr", 8648},
{"uuml", 252},
{"uwangle", 10663},
{"vArr", 8661},
{"vBar", 10984},
{"vBarv", 10985},
{"vDash", 8872},
{"vangrt", 10652},
{"varkappa", 1008},
{"varnothing", 8709},
{"varphi", 981},
{"varpropto", 8733},
{"varr", 8597},
{"varrho", 1009},
{"varsigma", 962},
{"varsubsetneq", 8842},
{"varsubsetneqq", 10955},
{"varsupsetneq", 8843},
{"varsupsetneqq", 10956},
{"vartheta", 977},
{"vartriangleleft", 8882},
{"vartriangleright", 8883},
{"vcy", 1074},
{"vdash", 8866},
{"vdots", 8942},
{"vee", 8744},
{"veebar", 8891},
{"veeeq", 8794},
{"vellip", 8942},
{"verbar", 124},
{"vert", 124},
{"vltri", 8882},
{"vnsub", 8834},
{"vnsup", 8835},
{"vprop", 8733},
{"vrtri", 8883},
{"vsubnE", 10955},
{"vsubne", 8842},
{"vsupnE", 10956},
{"vsupne", 8843},
{"vzigzag", 10650},
{"wcirc", 373},
{"wedbar", 10847},
{"wedge", 8743},
{"wedgeq", 8793},
{"weierp", 8472},
{"wp", 8472},
{"wr", 8768},
{"wreath", 8768},
{"xcap", 8898},
{"xcirc", 9711},
{"xcup", 8899},
{"xdtri", 9661},
{"xhArr", 10234},
{"xharr", 10231},
{"xi", 958},
{"xlArr", 10232},
{"xlarr", 10229},
{"xmap", 10236},
{"xnis", 8955},
{"xodot", 10752},
{"xoplus", 10753},
{"xotime", 10754},
{"xrArr", 10233},
{"xrarr", 10230},
{"xsqcup", 10758},
{"xuplus", 10756},
{"xutri", 9651},
{"xvee", 8897},
{"xwedge", 8896},
{"yacute", 253},
{"yacy", 1103},
{"ycirc", 375},
{"ycy", 1099},
{"yen", 165},
{"yicy", 1111},
{"yucy", 1102},
{"yuml", 255},
{"zacute", 378},
{"zcaron", 382},
{"zcy", 1079},
{"zdot", 380},
{"zeetrf", 8488},
{"zeta", 950},
{"zhcy", 1078},
{"zigrarr", 8669},
{"zwj", 8205},
{"zwnj", 8204}
};
static Hchar byrune[nelem(byname)];
static int
hnamecmp(const void *va, const void *vb)
{
Hchar *a, *b;
a = (Hchar*)va;
b = (Hchar*)vb;
return strcmp(a->s, b->s);
}
static int
hrunecmp(const void *va, const void *vb)
{
Hchar *a, *b;
a = (Hchar*)va;
b = (Hchar*)vb;
return a->r - b->r;
}
static int
hlencmp(const void *va, const void *vb)
{
Hchar *a, *b;
a = (Hchar*)va;
b = (Hchar*)vb;
return strlen(a->s) - strlen(b->s);
}
static void
html_init(void)
{
static int init;
int i, j;
if(init)
return;
init = 1;
memmove(byrune, byname, sizeof byrune);
/* Eliminate names we aren't allowed to generate. */
for(i=0; i<nelem(byrune); i++){
if(byrune[i].s[0] == '_'){
byrune[i].r = Runeerror;
byname[i].s++;
}
}
qsort(byname, nelem(byname), sizeof byname[0], hnamecmp);
qsort(byrune, nelem(byrune), sizeof byrune[0], hrunecmp);
/* Eliminate ambigious runes. use shotest name */
for(j=0, i=1; i<nelem(byrune); i++){
if(byrune[i].r == byrune[j].r)
continue;
if(i-j > 1) {
qsort(byrune+j, i-j, sizeof byrune[0], hlencmp);
while(++j<i) byrune[j].r = Runeerror;
}
j=i;
}
if(i-j > 1) {
qsort(byrune+j, i-j, sizeof byrune[0], hlencmp);
while(++j<i) byrune[j].r = Runeerror;
}
qsort(byrune, nelem(byrune), sizeof byrune[0], hrunecmp);
}
static Rune
findbyname(char *s)
{
Hchar *h;
int n, m, x;
h = byname;
n = nelem(byname);
while(n > 0){
m = n/2;
x = strcmp(h[m].s, s);
if(x == 0)
return h[m].r;
if(x < 0){
h += m+1;
n -= m+1;
}else
n = m;
}
return Runeerror;
}
static char*
findbyrune(Rune r)
{
Hchar *h;
int n, m;
if(r == Runeerror)
return nil;
h = byrune;
n = nelem(byrune);
while(n > 0){
m = n/2;
if(h[m].r == r)
return h[m].s;
if(h[m].r < r){
h += m+1;
n -= m+1;
}else
n = m;
}
return nil;
}
void
html_in(int fd, long *, struct convert *out)
{
char buf[100], *p;
Biobuf b;
Rune *r, *er, r2;
int c, s, i;
html_init();
r = runes;
er = runes+N;
r2 = 0;
Binit(&b, fd, OREAD);
while((c = Bgetrune(&b)) != Beof){
if(r >= er){
OUT(out, runes, r-runes);
r = runes;
}
if(c == '&'){
s = 0;
buf[0] = c;
for(i=1; i<nelem(buf)-1;){
c = Bgetc(&b);
if(c == Beof)
break;
if(strchr(";&</> \t\r\n", c)){
if(c != ';')
Bungetc(&b);
else
s = 1;
break;
}
buf[i++] = c;
}
buf[i] = 0;
if(i > 1){
if((c = findbyname(buf+1)) != Runeerror)
goto out;
if(i > 2 && buf[1] == '#'){
if(i > 3 && strchr("xX", buf[2]))
c = strtol(buf+3, &p, 16);
else
c = strtol(buf+2, &p, 10);
if(*p || c < 0)
goto bad;
goto out;
}
}
bad:
if(s)
buf[i++] = ';';
for(p=buf; p<buf+i; ){
p += chartorune(r++, p);
if(r >= er){
OUT(out, runes, r-runes);
r = runes;
}
}
r2 = 0;
continue;
out:
if((c & 0x7f) == c && strchr("<>&\"'", c)){
s = ';';
i = sprint(buf, "&%s", findbyrune(c));
goto bad;
}
}
*r = c;
if(fixsurrogate(r, r2)){
r2 = *r;
continue;
}
r2 = 0;
r++;
}
if(r > runes)
OUT(out, runes, r-runes);
OUT(out, runes, 0);
}
/*
* use biobuf because can use more than UTFmax bytes per rune
*/
void
html_out(Rune *r, int n, long *)
{
char *s;
Biobuf b;
Rune *er;
html_init();
Binit(&b, 1, OWRITE);
er = r+n;
for(; r<er; r++){
if(*r < Runeself)
Bputrune(&b, *r);
else if((s = findbyrune(*r)) != nil)
Bprint(&b, "&%s;", s);
else
Bprint(&b, "&#%d;", *r);
}
Bflush(&b);
}