source: trip-planner-front/node_modules/critters/dist/critters.esm.js@ 59329aa

Last change on this file since 59329aa was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 220.8 KB
Line 
1import path from 'path';
2import prettyBytes from 'pretty-bytes';
3import parse5 from 'parse5';
4import css from 'css';
5import chalk from 'chalk';
6
7var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
8
9function createCommonjsModule(fn, basedir, module) {
10 return module = {
11 path: basedir,
12 exports: {},
13 require: function (path, base) {
14 return commonjsRequire();
15 }
16 }, fn(module, module.exports), module.exports;
17}
18
19function getCjsExportFromNamespace (n) {
20 return n && n['default'] || n;
21}
22
23function commonjsRequire () {
24 throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
25}
26
27//Types of elements found in the DOM
28var domelementtype = {
29 Text: "text", //Text
30 Directive: "directive", //<? ... ?>
31 Comment: "comment", //<!-- ... -->
32 Script: "script", //<script> tags
33 Style: "style", //<style> tags
34 Tag: "tag", //Any tag
35 CDATA: "cdata", //<![CDATA[ ... ]]>
36 Doctype: "doctype",
37
38 isTag: function(elem){
39 return elem.type === "tag" || elem.type === "script" || elem.type === "style";
40 }
41};
42
43var lib = createCommonjsModule(function (module, exports) {
44Object.defineProperty(exports, "__esModule", { value: true });
45/**
46 * Tests whether an element is a tag or not.
47 *
48 * @param elem Element to test
49 */
50function isTag(elem) {
51 return (elem.type === "tag" /* Tag */ ||
52 elem.type === "script" /* Script */ ||
53 elem.type === "style" /* Style */);
54}
55exports.isTag = isTag;
56// Exports for backwards compatibility
57exports.Text = "text" /* Text */; //Text
58exports.Directive = "directive" /* Directive */; //<? ... ?>
59exports.Comment = "comment" /* Comment */; //<!-- ... -->
60exports.Script = "script" /* Script */; //<script> tags
61exports.Style = "style" /* Style */; //<style> tags
62exports.Tag = "tag" /* Tag */; //Any tag
63exports.CDATA = "cdata" /* CDATA */; //<![CDATA[ ... ]]>
64exports.Doctype = "doctype" /* Doctype */;
65});
66
67var Aacute = "Á";
68var aacute = "á";
69var Abreve = "Ă";
70var abreve = "ă";
71var ac = "∾";
72var acd = "∿";
73var acE = "∾̳";
74var Acirc = "Â";
75var acirc = "â";
76var acute = "´";
77var Acy = "А";
78var acy = "а";
79var AElig = "Æ";
80var aelig = "æ";
81var af = "⁡";
82var Afr = "𝔄";
83var afr = "𝔞";
84var Agrave = "À";
85var agrave = "à";
86var alefsym = "ℵ";
87var aleph = "ℵ";
88var Alpha = "Α";
89var alpha = "α";
90var Amacr = "Ā";
91var amacr = "ā";
92var amalg = "⨿";
93var amp = "&";
94var AMP = "&";
95var andand = "⩕";
96var And = "⩓";
97var and = "∧";
98var andd = "⩜";
99var andslope = "⩘";
100var andv = "⩚";
101var ang = "∠";
102var ange = "⦤";
103var angle = "∠";
104var angmsdaa = "⦨";
105var angmsdab = "⦩";
106var angmsdac = "⦪";
107var angmsdad = "⦫";
108var angmsdae = "⦬";
109var angmsdaf = "⦭";
110var angmsdag = "⦮";
111var angmsdah = "⦯";
112var angmsd = "∡";
113var angrt = "∟";
114var angrtvb = "⊾";
115var angrtvbd = "⦝";
116var angsph = "∢";
117var angst = "Å";
118var angzarr = "⍼";
119var Aogon = "Ą";
120var aogon = "ą";
121var Aopf = "𝔸";
122var aopf = "𝕒";
123var apacir = "⩯";
124var ap = "≈";
125var apE = "⩰";
126var ape = "≊";
127var apid = "≋";
128var apos = "'";
129var ApplyFunction = "⁡";
130var approx = "≈";
131var approxeq = "≊";
132var Aring = "Å";
133var aring = "å";
134var Ascr = "𝒜";
135var ascr = "𝒶";
136var Assign = "≔";
137var ast = "*";
138var asymp = "≈";
139var asympeq = "≍";
140var Atilde = "Ã";
141var atilde = "ã";
142var Auml = "Ä";
143var auml = "ä";
144var awconint = "∳";
145var awint = "⨑";
146var backcong = "≌";
147var backepsilon = "϶";
148var backprime = "‵";
149var backsim = "∽";
150var backsimeq = "⋍";
151var Backslash = "∖";
152var Barv = "⫧";
153var barvee = "⊽";
154var barwed = "⌅";
155var Barwed = "⌆";
156var barwedge = "⌅";
157var bbrk = "⎵";
158var bbrktbrk = "⎶";
159var bcong = "≌";
160var Bcy = "Б";
161var bcy = "б";
162var bdquo = "„";
163var becaus = "∵";
164var because = "∵";
165var Because = "∵";
166var bemptyv = "⦰";
167var bepsi = "϶";
168var bernou = "ℬ";
169var Bernoullis = "ℬ";
170var Beta = "Β";
171var beta = "β";
172var beth = "ℶ";
173var between = "≬";
174var Bfr = "𝔅";
175var bfr = "𝔟";
176var bigcap = "⋂";
177var bigcirc = "◯";
178var bigcup = "⋃";
179var bigodot = "⨀";
180var bigoplus = "⨁";
181var bigotimes = "⨂";
182var bigsqcup = "⨆";
183var bigstar = "★";
184var bigtriangledown = "▽";
185var bigtriangleup = "△";
186var biguplus = "⨄";
187var bigvee = "⋁";
188var bigwedge = "⋀";
189var bkarow = "⤍";
190var blacklozenge = "⧫";
191var blacksquare = "▪";
192var blacktriangle = "▴";
193var blacktriangledown = "▾";
194var blacktriangleleft = "◂";
195var blacktriangleright = "▸";
196var blank = "␣";
197var blk12 = "▒";
198var blk14 = "░";
199var blk34 = "▓";
200var block = "█";
201var bne = "=⃥";
202var bnequiv = "≡⃥";
203var bNot = "⫭";
204var bnot = "⌐";
205var Bopf = "𝔹";
206var bopf = "𝕓";
207var bot = "⊥";
208var bottom = "⊥";
209var bowtie = "⋈";
210var boxbox = "⧉";
211var boxdl = "┐";
212var boxdL = "╕";
213var boxDl = "╖";
214var boxDL = "╗";
215var boxdr = "┌";
216var boxdR = "╒";
217var boxDr = "╓";
218var boxDR = "╔";
219var boxh = "─";
220var boxH = "═";
221var boxhd = "┬";
222var boxHd = "╤";
223var boxhD = "╥";
224var boxHD = "╦";
225var boxhu = "┴";
226var boxHu = "╧";
227var boxhU = "╨";
228var boxHU = "╩";
229var boxminus = "⊟";
230var boxplus = "⊞";
231var boxtimes = "⊠";
232var boxul = "┘";
233var boxuL = "╛";
234var boxUl = "╜";
235var boxUL = "╝";
236var boxur = "└";
237var boxuR = "╘";
238var boxUr = "╙";
239var boxUR = "╚";
240var boxv = "│";
241var boxV = "║";
242var boxvh = "┼";
243var boxvH = "╪";
244var boxVh = "╫";
245var boxVH = "╬";
246var boxvl = "┤";
247var boxvL = "╡";
248var boxVl = "╢";
249var boxVL = "╣";
250var boxvr = "├";
251var boxvR = "╞";
252var boxVr = "╟";
253var boxVR = "╠";
254var bprime = "‵";
255var breve = "˘";
256var Breve = "˘";
257var brvbar = "¦";
258var bscr = "𝒷";
259var Bscr = "ℬ";
260var bsemi = "⁏";
261var bsim = "∽";
262var bsime = "⋍";
263var bsolb = "⧅";
264var bsol = "\\";
265var bsolhsub = "⟈";
266var bull = "•";
267var bullet = "•";
268var bump = "≎";
269var bumpE = "⪮";
270var bumpe = "≏";
271var Bumpeq = "≎";
272var bumpeq = "≏";
273var Cacute = "Ć";
274var cacute = "ć";
275var capand = "⩄";
276var capbrcup = "⩉";
277var capcap = "⩋";
278var cap = "∩";
279var Cap = "⋒";
280var capcup = "⩇";
281var capdot = "⩀";
282var CapitalDifferentialD = "ⅅ";
283var caps = "∩︀";
284var caret = "⁁";
285var caron = "ˇ";
286var Cayleys = "ℭ";
287var ccaps = "⩍";
288var Ccaron = "Č";
289var ccaron = "č";
290var Ccedil = "Ç";
291var ccedil = "ç";
292var Ccirc = "Ĉ";
293var ccirc = "ĉ";
294var Cconint = "∰";
295var ccups = "⩌";
296var ccupssm = "⩐";
297var Cdot = "Ċ";
298var cdot = "ċ";
299var cedil = "¸";
300var Cedilla = "¸";
301var cemptyv = "⦲";
302var cent = "¢";
303var centerdot = "·";
304var CenterDot = "·";
305var cfr = "𝔠";
306var Cfr = "ℭ";
307var CHcy = "Ч";
308var chcy = "ч";
309var check = "✓";
310var checkmark = "✓";
311var Chi = "Χ";
312var chi = "χ";
313var circ = "ˆ";
314var circeq = "≗";
315var circlearrowleft = "↺";
316var circlearrowright = "↻";
317var circledast = "⊛";
318var circledcirc = "⊚";
319var circleddash = "⊝";
320var CircleDot = "⊙";
321var circledR = "®";
322var circledS = "Ⓢ";
323var CircleMinus = "⊖";
324var CirclePlus = "⊕";
325var CircleTimes = "⊗";
326var cir = "○";
327var cirE = "⧃";
328var cire = "≗";
329var cirfnint = "⨐";
330var cirmid = "⫯";
331var cirscir = "⧂";
332var ClockwiseContourIntegral = "∲";
333var CloseCurlyDoubleQuote = "”";
334var CloseCurlyQuote = "’";
335var clubs = "♣";
336var clubsuit = "♣";
337var colon = ":";
338var Colon = "∷";
339var Colone = "⩴";
340var colone = "≔";
341var coloneq = "≔";
342var comma = ",";
343var commat = "@";
344var comp = "∁";
345var compfn = "∘";
346var complement = "∁";
347var complexes = "ℂ";
348var cong = "≅";
349var congdot = "⩭";
350var Congruent = "≡";
351var conint = "∮";
352var Conint = "∯";
353var ContourIntegral = "∮";
354var copf = "𝕔";
355var Copf = "ℂ";
356var coprod = "∐";
357var Coproduct = "∐";
358var copy = "©";
359var COPY = "©";
360var copysr = "℗";
361var CounterClockwiseContourIntegral = "∳";
362var crarr = "↵";
363var cross = "✗";
364var Cross = "⨯";
365var Cscr = "𝒞";
366var cscr = "𝒸";
367var csub = "⫏";
368var csube = "⫑";
369var csup = "⫐";
370var csupe = "⫒";
371var ctdot = "⋯";
372var cudarrl = "⤸";
373var cudarrr = "⤵";
374var cuepr = "⋞";
375var cuesc = "⋟";
376var cularr = "↶";
377var cularrp = "⤽";
378var cupbrcap = "⩈";
379var cupcap = "⩆";
380var CupCap = "≍";
381var cup = "∪";
382var Cup = "⋓";
383var cupcup = "⩊";
384var cupdot = "⊍";
385var cupor = "⩅";
386var cups = "∪︀";
387var curarr = "↷";
388var curarrm = "⤼";
389var curlyeqprec = "⋞";
390var curlyeqsucc = "⋟";
391var curlyvee = "⋎";
392var curlywedge = "⋏";
393var curren = "¤";
394var curvearrowleft = "↶";
395var curvearrowright = "↷";
396var cuvee = "⋎";
397var cuwed = "⋏";
398var cwconint = "∲";
399var cwint = "∱";
400var cylcty = "⌭";
401var dagger = "†";
402var Dagger = "‡";
403var daleth = "ℸ";
404var darr = "↓";
405var Darr = "↡";
406var dArr = "⇓";
407var dash = "‐";
408var Dashv = "⫤";
409var dashv = "⊣";
410var dbkarow = "⤏";
411var dblac = "˝";
412var Dcaron = "Ď";
413var dcaron = "ď";
414var Dcy = "Д";
415var dcy = "д";
416var ddagger = "‡";
417var ddarr = "⇊";
418var DD = "ⅅ";
419var dd = "ⅆ";
420var DDotrahd = "⤑";
421var ddotseq = "⩷";
422var deg = "°";
423var Del = "∇";
424var Delta = "Δ";
425var delta = "δ";
426var demptyv = "⦱";
427var dfisht = "⥿";
428var Dfr = "𝔇";
429var dfr = "𝔡";
430var dHar = "⥥";
431var dharl = "⇃";
432var dharr = "⇂";
433var DiacriticalAcute = "´";
434var DiacriticalDot = "˙";
435var DiacriticalDoubleAcute = "˝";
436var DiacriticalGrave = "`";
437var DiacriticalTilde = "˜";
438var diam = "⋄";
439var diamond = "⋄";
440var Diamond = "⋄";
441var diamondsuit = "♦";
442var diams = "♦";
443var die = "¨";
444var DifferentialD = "ⅆ";
445var digamma = "ϝ";
446var disin = "⋲";
447var div = "÷";
448var divide = "÷";
449var divideontimes = "⋇";
450var divonx = "⋇";
451var DJcy = "Ђ";
452var djcy = "ђ";
453var dlcorn = "⌞";
454var dlcrop = "⌍";
455var dollar = "$";
456var Dopf = "𝔻";
457var dopf = "𝕕";
458var Dot = "¨";
459var dot = "˙";
460var DotDot = "⃜";
461var doteq = "≐";
462var doteqdot = "≑";
463var DotEqual = "≐";
464var dotminus = "∸";
465var dotplus = "∔";
466var dotsquare = "⊡";
467var doublebarwedge = "⌆";
468var DoubleContourIntegral = "∯";
469var DoubleDot = "¨";
470var DoubleDownArrow = "⇓";
471var DoubleLeftArrow = "⇐";
472var DoubleLeftRightArrow = "⇔";
473var DoubleLeftTee = "⫤";
474var DoubleLongLeftArrow = "⟸";
475var DoubleLongLeftRightArrow = "⟺";
476var DoubleLongRightArrow = "⟹";
477var DoubleRightArrow = "⇒";
478var DoubleRightTee = "⊨";
479var DoubleUpArrow = "⇑";
480var DoubleUpDownArrow = "⇕";
481var DoubleVerticalBar = "∥";
482var DownArrowBar = "⤓";
483var downarrow = "↓";
484var DownArrow = "↓";
485var Downarrow = "⇓";
486var DownArrowUpArrow = "⇵";
487var DownBreve = "̑";
488var downdownarrows = "⇊";
489var downharpoonleft = "⇃";
490var downharpoonright = "⇂";
491var DownLeftRightVector = "⥐";
492var DownLeftTeeVector = "⥞";
493var DownLeftVectorBar = "⥖";
494var DownLeftVector = "↽";
495var DownRightTeeVector = "⥟";
496var DownRightVectorBar = "⥗";
497var DownRightVector = "⇁";
498var DownTeeArrow = "↧";
499var DownTee = "⊤";
500var drbkarow = "⤐";
501var drcorn = "⌟";
502var drcrop = "⌌";
503var Dscr = "𝒟";
504var dscr = "𝒹";
505var DScy = "Ѕ";
506var dscy = "ѕ";
507var dsol = "⧶";
508var Dstrok = "Đ";
509var dstrok = "đ";
510var dtdot = "⋱";
511var dtri = "▿";
512var dtrif = "▾";
513var duarr = "⇵";
514var duhar = "⥯";
515var dwangle = "⦦";
516var DZcy = "Џ";
517var dzcy = "џ";
518var dzigrarr = "⟿";
519var Eacute = "É";
520var eacute = "é";
521var easter = "⩮";
522var Ecaron = "Ě";
523var ecaron = "ě";
524var Ecirc = "Ê";
525var ecirc = "ê";
526var ecir = "≖";
527var ecolon = "≕";
528var Ecy = "Э";
529var ecy = "э";
530var eDDot = "⩷";
531var Edot = "Ė";
532var edot = "ė";
533var eDot = "≑";
534var ee = "ⅇ";
535var efDot = "≒";
536var Efr = "𝔈";
537var efr = "𝔢";
538var eg = "⪚";
539var Egrave = "È";
540var egrave = "è";
541var egs = "⪖";
542var egsdot = "⪘";
543var el = "⪙";
544var Element = "∈";
545var elinters = "⏧";
546var ell = "ℓ";
547var els = "⪕";
548var elsdot = "⪗";
549var Emacr = "Ē";
550var emacr = "ē";
551var empty = "∅";
552var emptyset = "∅";
553var EmptySmallSquare = "◻";
554var emptyv = "∅";
555var EmptyVerySmallSquare = "▫";
556var emsp13 = " ";
557var emsp14 = " ";
558var emsp = " ";
559var ENG = "Ŋ";
560var eng = "ŋ";
561var ensp = " ";
562var Eogon = "Ę";
563var eogon = "ę";
564var Eopf = "𝔼";
565var eopf = "𝕖";
566var epar = "⋕";
567var eparsl = "⧣";
568var eplus = "⩱";
569var epsi = "ε";
570var Epsilon = "Ε";
571var epsilon = "ε";
572var epsiv = "ϵ";
573var eqcirc = "≖";
574var eqcolon = "≕";
575var eqsim = "≂";
576var eqslantgtr = "⪖";
577var eqslantless = "⪕";
578var Equal = "⩵";
579var equals = "=";
580var EqualTilde = "≂";
581var equest = "≟";
582var Equilibrium = "⇌";
583var equiv = "≡";
584var equivDD = "⩸";
585var eqvparsl = "⧥";
586var erarr = "⥱";
587var erDot = "≓";
588var escr = "ℯ";
589var Escr = "ℰ";
590var esdot = "≐";
591var Esim = "⩳";
592var esim = "≂";
593var Eta = "Η";
594var eta = "η";
595var ETH = "Ð";
596var eth = "ð";
597var Euml = "Ë";
598var euml = "ë";
599var euro = "€";
600var excl = "!";
601var exist = "∃";
602var Exists = "∃";
603var expectation = "ℰ";
604var exponentiale = "ⅇ";
605var ExponentialE = "ⅇ";
606var fallingdotseq = "≒";
607var Fcy = "Ф";
608var fcy = "ф";
609var female = "♀";
610var ffilig = "ffi";
611var fflig = "ff";
612var ffllig = "ffl";
613var Ffr = "𝔉";
614var ffr = "𝔣";
615var filig = "fi";
616var FilledSmallSquare = "◼";
617var FilledVerySmallSquare = "▪";
618var fjlig = "fj";
619var flat = "♭";
620var fllig = "fl";
621var fltns = "▱";
622var fnof = "ƒ";
623var Fopf = "𝔽";
624var fopf = "𝕗";
625var forall = "∀";
626var ForAll = "∀";
627var fork = "⋔";
628var forkv = "⫙";
629var Fouriertrf = "ℱ";
630var fpartint = "⨍";
631var frac12 = "½";
632var frac13 = "⅓";
633var frac14 = "¼";
634var frac15 = "⅕";
635var frac16 = "⅙";
636var frac18 = "⅛";
637var frac23 = "⅔";
638var frac25 = "⅖";
639var frac34 = "¾";
640var frac35 = "⅗";
641var frac38 = "⅜";
642var frac45 = "⅘";
643var frac56 = "⅚";
644var frac58 = "⅝";
645var frac78 = "⅞";
646var frasl = "⁄";
647var frown = "⌢";
648var fscr = "𝒻";
649var Fscr = "ℱ";
650var gacute = "ǵ";
651var Gamma = "Γ";
652var gamma = "γ";
653var Gammad = "Ϝ";
654var gammad = "ϝ";
655var gap = "⪆";
656var Gbreve = "Ğ";
657var gbreve = "ğ";
658var Gcedil = "Ģ";
659var Gcirc = "Ĝ";
660var gcirc = "ĝ";
661var Gcy = "Г";
662var gcy = "г";
663var Gdot = "Ġ";
664var gdot = "ġ";
665var ge = "≥";
666var gE = "≧";
667var gEl = "⪌";
668var gel = "⋛";
669var geq = "≥";
670var geqq = "≧";
671var geqslant = "⩾";
672var gescc = "⪩";
673var ges = "⩾";
674var gesdot = "⪀";
675var gesdoto = "⪂";
676var gesdotol = "⪄";
677var gesl = "⋛︀";
678var gesles = "⪔";
679var Gfr = "𝔊";
680var gfr = "𝔤";
681var gg = "≫";
682var Gg = "⋙";
683var ggg = "⋙";
684var gimel = "ℷ";
685var GJcy = "Ѓ";
686var gjcy = "ѓ";
687var gla = "⪥";
688var gl = "≷";
689var glE = "⪒";
690var glj = "⪤";
691var gnap = "⪊";
692var gnapprox = "⪊";
693var gne = "⪈";
694var gnE = "≩";
695var gneq = "⪈";
696var gneqq = "≩";
697var gnsim = "⋧";
698var Gopf = "𝔾";
699var gopf = "𝕘";
700var grave = "`";
701var GreaterEqual = "≥";
702var GreaterEqualLess = "⋛";
703var GreaterFullEqual = "≧";
704var GreaterGreater = "⪢";
705var GreaterLess = "≷";
706var GreaterSlantEqual = "⩾";
707var GreaterTilde = "≳";
708var Gscr = "𝒢";
709var gscr = "ℊ";
710var gsim = "≳";
711var gsime = "⪎";
712var gsiml = "⪐";
713var gtcc = "⪧";
714var gtcir = "⩺";
715var gt = ">";
716var GT = ">";
717var Gt = "≫";
718var gtdot = "⋗";
719var gtlPar = "⦕";
720var gtquest = "⩼";
721var gtrapprox = "⪆";
722var gtrarr = "⥸";
723var gtrdot = "⋗";
724var gtreqless = "⋛";
725var gtreqqless = "⪌";
726var gtrless = "≷";
727var gtrsim = "≳";
728var gvertneqq = "≩︀";
729var gvnE = "≩︀";
730var Hacek = "ˇ";
731var hairsp = " ";
732var half = "½";
733var hamilt = "ℋ";
734var HARDcy = "Ъ";
735var hardcy = "ъ";
736var harrcir = "⥈";
737var harr = "↔";
738var hArr = "⇔";
739var harrw = "↭";
740var Hat = "^";
741var hbar = "ℏ";
742var Hcirc = "Ĥ";
743var hcirc = "ĥ";
744var hearts = "♥";
745var heartsuit = "♥";
746var hellip = "…";
747var hercon = "⊹";
748var hfr = "𝔥";
749var Hfr = "ℌ";
750var HilbertSpace = "ℋ";
751var hksearow = "⤥";
752var hkswarow = "⤦";
753var hoarr = "⇿";
754var homtht = "∻";
755var hookleftarrow = "↩";
756var hookrightarrow = "↪";
757var hopf = "𝕙";
758var Hopf = "ℍ";
759var horbar = "―";
760var HorizontalLine = "─";
761var hscr = "𝒽";
762var Hscr = "ℋ";
763var hslash = "ℏ";
764var Hstrok = "Ħ";
765var hstrok = "ħ";
766var HumpDownHump = "≎";
767var HumpEqual = "≏";
768var hybull = "⁃";
769var hyphen = "‐";
770var Iacute = "Í";
771var iacute = "í";
772var ic = "⁣";
773var Icirc = "Î";
774var icirc = "î";
775var Icy = "И";
776var icy = "и";
777var Idot = "İ";
778var IEcy = "Е";
779var iecy = "е";
780var iexcl = "¡";
781var iff = "⇔";
782var ifr = "𝔦";
783var Ifr = "ℑ";
784var Igrave = "Ì";
785var igrave = "ì";
786var ii = "ⅈ";
787var iiiint = "⨌";
788var iiint = "∭";
789var iinfin = "⧜";
790var iiota = "℩";
791var IJlig = "IJ";
792var ijlig = "ij";
793var Imacr = "Ī";
794var imacr = "ī";
795var image = "ℑ";
796var ImaginaryI = "ⅈ";
797var imagline = "ℐ";
798var imagpart = "ℑ";
799var imath = "ı";
800var Im = "ℑ";
801var imof = "⊷";
802var imped = "Ƶ";
803var Implies = "⇒";
804var incare = "℅";
805var infin = "∞";
806var infintie = "⧝";
807var inodot = "ı";
808var intcal = "⊺";
809var int = "∫";
810var Int = "∬";
811var integers = "ℤ";
812var Integral = "∫";
813var intercal = "⊺";
814var Intersection = "⋂";
815var intlarhk = "⨗";
816var intprod = "⨼";
817var InvisibleComma = "⁣";
818var InvisibleTimes = "⁢";
819var IOcy = "Ё";
820var iocy = "ё";
821var Iogon = "Į";
822var iogon = "į";
823var Iopf = "𝕀";
824var iopf = "𝕚";
825var Iota = "Ι";
826var iota = "ι";
827var iprod = "⨼";
828var iquest = "¿";
829var iscr = "𝒾";
830var Iscr = "ℐ";
831var isin = "∈";
832var isindot = "⋵";
833var isinE = "⋹";
834var isins = "⋴";
835var isinsv = "⋳";
836var isinv = "∈";
837var it = "⁢";
838var Itilde = "Ĩ";
839var itilde = "ĩ";
840var Iukcy = "І";
841var iukcy = "і";
842var Iuml = "Ï";
843var iuml = "ï";
844var Jcirc = "Ĵ";
845var jcirc = "ĵ";
846var Jcy = "Й";
847var jcy = "й";
848var Jfr = "𝔍";
849var jfr = "𝔧";
850var jmath = "ȷ";
851var Jopf = "𝕁";
852var jopf = "𝕛";
853var Jscr = "𝒥";
854var jscr = "𝒿";
855var Jsercy = "Ј";
856var jsercy = "ј";
857var Jukcy = "Є";
858var jukcy = "є";
859var Kappa = "Κ";
860var kappa = "κ";
861var kappav = "ϰ";
862var Kcedil = "Ķ";
863var kcedil = "ķ";
864var Kcy = "К";
865var kcy = "к";
866var Kfr = "𝔎";
867var kfr = "𝔨";
868var kgreen = "ĸ";
869var KHcy = "Х";
870var khcy = "х";
871var KJcy = "Ќ";
872var kjcy = "ќ";
873var Kopf = "𝕂";
874var kopf = "𝕜";
875var Kscr = "𝒦";
876var kscr = "𝓀";
877var lAarr = "⇚";
878var Lacute = "Ĺ";
879var lacute = "ĺ";
880var laemptyv = "⦴";
881var lagran = "ℒ";
882var Lambda = "Λ";
883var lambda = "λ";
884var lang = "⟨";
885var Lang = "⟪";
886var langd = "⦑";
887var langle = "⟨";
888var lap = "⪅";
889var Laplacetrf = "ℒ";
890var laquo = "«";
891var larrb = "⇤";
892var larrbfs = "⤟";
893var larr = "←";
894var Larr = "↞";
895var lArr = "⇐";
896var larrfs = "⤝";
897var larrhk = "↩";
898var larrlp = "↫";
899var larrpl = "⤹";
900var larrsim = "⥳";
901var larrtl = "↢";
902var latail = "⤙";
903var lAtail = "⤛";
904var lat = "⪫";
905var late = "⪭";
906var lates = "⪭︀";
907var lbarr = "⤌";
908var lBarr = "⤎";
909var lbbrk = "❲";
910var lbrace = "{";
911var lbrack = "[";
912var lbrke = "⦋";
913var lbrksld = "⦏";
914var lbrkslu = "⦍";
915var Lcaron = "Ľ";
916var lcaron = "ľ";
917var Lcedil = "Ļ";
918var lcedil = "ļ";
919var lceil = "⌈";
920var lcub = "{";
921var Lcy = "Л";
922var lcy = "л";
923var ldca = "⤶";
924var ldquo = "“";
925var ldquor = "„";
926var ldrdhar = "⥧";
927var ldrushar = "⥋";
928var ldsh = "↲";
929var le = "≤";
930var lE = "≦";
931var LeftAngleBracket = "⟨";
932var LeftArrowBar = "⇤";
933var leftarrow = "←";
934var LeftArrow = "←";
935var Leftarrow = "⇐";
936var LeftArrowRightArrow = "⇆";
937var leftarrowtail = "↢";
938var LeftCeiling = "⌈";
939var LeftDoubleBracket = "⟦";
940var LeftDownTeeVector = "⥡";
941var LeftDownVectorBar = "⥙";
942var LeftDownVector = "⇃";
943var LeftFloor = "⌊";
944var leftharpoondown = "↽";
945var leftharpoonup = "↼";
946var leftleftarrows = "⇇";
947var leftrightarrow = "↔";
948var LeftRightArrow = "↔";
949var Leftrightarrow = "⇔";
950var leftrightarrows = "⇆";
951var leftrightharpoons = "⇋";
952var leftrightsquigarrow = "↭";
953var LeftRightVector = "⥎";
954var LeftTeeArrow = "↤";
955var LeftTee = "⊣";
956var LeftTeeVector = "⥚";
957var leftthreetimes = "⋋";
958var LeftTriangleBar = "⧏";
959var LeftTriangle = "⊲";
960var LeftTriangleEqual = "⊴";
961var LeftUpDownVector = "⥑";
962var LeftUpTeeVector = "⥠";
963var LeftUpVectorBar = "⥘";
964var LeftUpVector = "↿";
965var LeftVectorBar = "⥒";
966var LeftVector = "↼";
967var lEg = "⪋";
968var leg = "⋚";
969var leq = "≤";
970var leqq = "≦";
971var leqslant = "⩽";
972var lescc = "⪨";
973var les = "⩽";
974var lesdot = "⩿";
975var lesdoto = "⪁";
976var lesdotor = "⪃";
977var lesg = "⋚︀";
978var lesges = "⪓";
979var lessapprox = "⪅";
980var lessdot = "⋖";
981var lesseqgtr = "⋚";
982var lesseqqgtr = "⪋";
983var LessEqualGreater = "⋚";
984var LessFullEqual = "≦";
985var LessGreater = "≶";
986var lessgtr = "≶";
987var LessLess = "⪡";
988var lesssim = "≲";
989var LessSlantEqual = "⩽";
990var LessTilde = "≲";
991var lfisht = "⥼";
992var lfloor = "⌊";
993var Lfr = "𝔏";
994var lfr = "𝔩";
995var lg = "≶";
996var lgE = "⪑";
997var lHar = "⥢";
998var lhard = "↽";
999var lharu = "↼";
1000var lharul = "⥪";
1001var lhblk = "▄";
1002var LJcy = "Љ";
1003var ljcy = "љ";
1004var llarr = "⇇";
1005var ll = "≪";
1006var Ll = "⋘";
1007var llcorner = "⌞";
1008var Lleftarrow = "⇚";
1009var llhard = "⥫";
1010var lltri = "◺";
1011var Lmidot = "Ŀ";
1012var lmidot = "ŀ";
1013var lmoustache = "⎰";
1014var lmoust = "⎰";
1015var lnap = "⪉";
1016var lnapprox = "⪉";
1017var lne = "⪇";
1018var lnE = "≨";
1019var lneq = "⪇";
1020var lneqq = "≨";
1021var lnsim = "⋦";
1022var loang = "⟬";
1023var loarr = "⇽";
1024var lobrk = "⟦";
1025var longleftarrow = "⟵";
1026var LongLeftArrow = "⟵";
1027var Longleftarrow = "⟸";
1028var longleftrightarrow = "⟷";
1029var LongLeftRightArrow = "⟷";
1030var Longleftrightarrow = "⟺";
1031var longmapsto = "⟼";
1032var longrightarrow = "⟶";
1033var LongRightArrow = "⟶";
1034var Longrightarrow = "⟹";
1035var looparrowleft = "↫";
1036var looparrowright = "↬";
1037var lopar = "⦅";
1038var Lopf = "𝕃";
1039var lopf = "𝕝";
1040var loplus = "⨭";
1041var lotimes = "⨴";
1042var lowast = "∗";
1043var lowbar = "_";
1044var LowerLeftArrow = "↙";
1045var LowerRightArrow = "↘";
1046var loz = "◊";
1047var lozenge = "◊";
1048var lozf = "⧫";
1049var lpar = "(";
1050var lparlt = "⦓";
1051var lrarr = "⇆";
1052var lrcorner = "⌟";
1053var lrhar = "⇋";
1054var lrhard = "⥭";
1055var lrm = "‎";
1056var lrtri = "⊿";
1057var lsaquo = "‹";
1058var lscr = "𝓁";
1059var Lscr = "ℒ";
1060var lsh = "↰";
1061var Lsh = "↰";
1062var lsim = "≲";
1063var lsime = "⪍";
1064var lsimg = "⪏";
1065var lsqb = "[";
1066var lsquo = "‘";
1067var lsquor = "‚";
1068var Lstrok = "Ł";
1069var lstrok = "ł";
1070var ltcc = "⪦";
1071var ltcir = "⩹";
1072var lt = "<";
1073var LT = "<";
1074var Lt = "≪";
1075var ltdot = "⋖";
1076var lthree = "⋋";
1077var ltimes = "⋉";
1078var ltlarr = "⥶";
1079var ltquest = "⩻";
1080var ltri = "◃";
1081var ltrie = "⊴";
1082var ltrif = "◂";
1083var ltrPar = "⦖";
1084var lurdshar = "⥊";
1085var luruhar = "⥦";
1086var lvertneqq = "≨︀";
1087var lvnE = "≨︀";
1088var macr = "¯";
1089var male = "♂";
1090var malt = "✠";
1091var maltese = "✠";
1092var map = "↦";
1093var mapsto = "↦";
1094var mapstodown = "↧";
1095var mapstoleft = "↤";
1096var mapstoup = "↥";
1097var marker = "▮";
1098var mcomma = "⨩";
1099var Mcy = "М";
1100var mcy = "м";
1101var mdash = "—";
1102var mDDot = "∺";
1103var measuredangle = "∡";
1104var MediumSpace = " ";
1105var Mellintrf = "ℳ";
1106var Mfr = "𝔐";
1107var mfr = "𝔪";
1108var mho = "℧";
1109var micro = "µ";
1110var midast = "*";
1111var midcir = "⫰";
1112var mid = "∣";
1113var middot = "·";
1114var minusb = "⊟";
1115var minus = "−";
1116var minusd = "∸";
1117var minusdu = "⨪";
1118var MinusPlus = "∓";
1119var mlcp = "⫛";
1120var mldr = "…";
1121var mnplus = "∓";
1122var models = "⊧";
1123var Mopf = "𝕄";
1124var mopf = "𝕞";
1125var mp = "∓";
1126var mscr = "𝓂";
1127var Mscr = "ℳ";
1128var mstpos = "∾";
1129var Mu = "Μ";
1130var mu = "μ";
1131var multimap = "⊸";
1132var mumap = "⊸";
1133var nabla = "∇";
1134var Nacute = "Ń";
1135var nacute = "ń";
1136var nang = "∠⃒";
1137var nap = "≉";
1138var napE = "⩰̸";
1139var napid = "≋̸";
1140var napos = "ʼn";
1141var napprox = "≉";
1142var natural = "♮";
1143var naturals = "ℕ";
1144var natur = "♮";
1145var nbsp = " ";
1146var nbump = "≎̸";
1147var nbumpe = "≏̸";
1148var ncap = "⩃";
1149var Ncaron = "Ň";
1150var ncaron = "ň";
1151var Ncedil = "Ņ";
1152var ncedil = "ņ";
1153var ncong = "≇";
1154var ncongdot = "⩭̸";
1155var ncup = "⩂";
1156var Ncy = "Н";
1157var ncy = "н";
1158var ndash = "–";
1159var nearhk = "⤤";
1160var nearr = "↗";
1161var neArr = "⇗";
1162var nearrow = "↗";
1163var ne = "≠";
1164var nedot = "≐̸";
1165var NegativeMediumSpace = "​";
1166var NegativeThickSpace = "​";
1167var NegativeThinSpace = "​";
1168var NegativeVeryThinSpace = "​";
1169var nequiv = "≢";
1170var nesear = "⤨";
1171var nesim = "≂̸";
1172var NestedGreaterGreater = "≫";
1173var NestedLessLess = "≪";
1174var NewLine = "\n";
1175var nexist = "∄";
1176var nexists = "∄";
1177var Nfr = "𝔑";
1178var nfr = "𝔫";
1179var ngE = "≧̸";
1180var nge = "≱";
1181var ngeq = "≱";
1182var ngeqq = "≧̸";
1183var ngeqslant = "⩾̸";
1184var nges = "⩾̸";
1185var nGg = "⋙̸";
1186var ngsim = "≵";
1187var nGt = "≫⃒";
1188var ngt = "≯";
1189var ngtr = "≯";
1190var nGtv = "≫̸";
1191var nharr = "↮";
1192var nhArr = "⇎";
1193var nhpar = "⫲";
1194var ni = "∋";
1195var nis = "⋼";
1196var nisd = "⋺";
1197var niv = "∋";
1198var NJcy = "Њ";
1199var njcy = "њ";
1200var nlarr = "↚";
1201var nlArr = "⇍";
1202var nldr = "‥";
1203var nlE = "≦̸";
1204var nle = "≰";
1205var nleftarrow = "↚";
1206var nLeftarrow = "⇍";
1207var nleftrightarrow = "↮";
1208var nLeftrightarrow = "⇎";
1209var nleq = "≰";
1210var nleqq = "≦̸";
1211var nleqslant = "⩽̸";
1212var nles = "⩽̸";
1213var nless = "≮";
1214var nLl = "⋘̸";
1215var nlsim = "≴";
1216var nLt = "≪⃒";
1217var nlt = "≮";
1218var nltri = "⋪";
1219var nltrie = "⋬";
1220var nLtv = "≪̸";
1221var nmid = "∤";
1222var NoBreak = "⁠";
1223var NonBreakingSpace = " ";
1224var nopf = "𝕟";
1225var Nopf = "ℕ";
1226var Not = "⫬";
1227var not = "¬";
1228var NotCongruent = "≢";
1229var NotCupCap = "≭";
1230var NotDoubleVerticalBar = "∦";
1231var NotElement = "∉";
1232var NotEqual = "≠";
1233var NotEqualTilde = "≂̸";
1234var NotExists = "∄";
1235var NotGreater = "≯";
1236var NotGreaterEqual = "≱";
1237var NotGreaterFullEqual = "≧̸";
1238var NotGreaterGreater = "≫̸";
1239var NotGreaterLess = "≹";
1240var NotGreaterSlantEqual = "⩾̸";
1241var NotGreaterTilde = "≵";
1242var NotHumpDownHump = "≎̸";
1243var NotHumpEqual = "≏̸";
1244var notin = "∉";
1245var notindot = "⋵̸";
1246var notinE = "⋹̸";
1247var notinva = "∉";
1248var notinvb = "⋷";
1249var notinvc = "⋶";
1250var NotLeftTriangleBar = "⧏̸";
1251var NotLeftTriangle = "⋪";
1252var NotLeftTriangleEqual = "⋬";
1253var NotLess = "≮";
1254var NotLessEqual = "≰";
1255var NotLessGreater = "≸";
1256var NotLessLess = "≪̸";
1257var NotLessSlantEqual = "⩽̸";
1258var NotLessTilde = "≴";
1259var NotNestedGreaterGreater = "⪢̸";
1260var NotNestedLessLess = "⪡̸";
1261var notni = "∌";
1262var notniva = "∌";
1263var notnivb = "⋾";
1264var notnivc = "⋽";
1265var NotPrecedes = "⊀";
1266var NotPrecedesEqual = "⪯̸";
1267var NotPrecedesSlantEqual = "⋠";
1268var NotReverseElement = "∌";
1269var NotRightTriangleBar = "⧐̸";
1270var NotRightTriangle = "⋫";
1271var NotRightTriangleEqual = "⋭";
1272var NotSquareSubset = "⊏̸";
1273var NotSquareSubsetEqual = "⋢";
1274var NotSquareSuperset = "⊐̸";
1275var NotSquareSupersetEqual = "⋣";
1276var NotSubset = "⊂⃒";
1277var NotSubsetEqual = "⊈";
1278var NotSucceeds = "⊁";
1279var NotSucceedsEqual = "⪰̸";
1280var NotSucceedsSlantEqual = "⋡";
1281var NotSucceedsTilde = "≿̸";
1282var NotSuperset = "⊃⃒";
1283var NotSupersetEqual = "⊉";
1284var NotTilde = "≁";
1285var NotTildeEqual = "≄";
1286var NotTildeFullEqual = "≇";
1287var NotTildeTilde = "≉";
1288var NotVerticalBar = "∤";
1289var nparallel = "∦";
1290var npar = "∦";
1291var nparsl = "⫽⃥";
1292var npart = "∂̸";
1293var npolint = "⨔";
1294var npr = "⊀";
1295var nprcue = "⋠";
1296var nprec = "⊀";
1297var npreceq = "⪯̸";
1298var npre = "⪯̸";
1299var nrarrc = "⤳̸";
1300var nrarr = "↛";
1301var nrArr = "⇏";
1302var nrarrw = "↝̸";
1303var nrightarrow = "↛";
1304var nRightarrow = "⇏";
1305var nrtri = "⋫";
1306var nrtrie = "⋭";
1307var nsc = "⊁";
1308var nsccue = "⋡";
1309var nsce = "⪰̸";
1310var Nscr = "𝒩";
1311var nscr = "𝓃";
1312var nshortmid = "∤";
1313var nshortparallel = "∦";
1314var nsim = "≁";
1315var nsime = "≄";
1316var nsimeq = "≄";
1317var nsmid = "∤";
1318var nspar = "∦";
1319var nsqsube = "⋢";
1320var nsqsupe = "⋣";
1321var nsub = "⊄";
1322var nsubE = "⫅̸";
1323var nsube = "⊈";
1324var nsubset = "⊂⃒";
1325var nsubseteq = "⊈";
1326var nsubseteqq = "⫅̸";
1327var nsucc = "⊁";
1328var nsucceq = "⪰̸";
1329var nsup = "⊅";
1330var nsupE = "⫆̸";
1331var nsupe = "⊉";
1332var nsupset = "⊃⃒";
1333var nsupseteq = "⊉";
1334var nsupseteqq = "⫆̸";
1335var ntgl = "≹";
1336var Ntilde = "Ñ";
1337var ntilde = "ñ";
1338var ntlg = "≸";
1339var ntriangleleft = "⋪";
1340var ntrianglelefteq = "⋬";
1341var ntriangleright = "⋫";
1342var ntrianglerighteq = "⋭";
1343var Nu = "Ν";
1344var nu = "ν";
1345var num = "#";
1346var numero = "№";
1347var numsp = " ";
1348var nvap = "≍⃒";
1349var nvdash = "⊬";
1350var nvDash = "⊭";
1351var nVdash = "⊮";
1352var nVDash = "⊯";
1353var nvge = "≥⃒";
1354var nvgt = ">⃒";
1355var nvHarr = "⤄";
1356var nvinfin = "⧞";
1357var nvlArr = "⤂";
1358var nvle = "≤⃒";
1359var nvlt = "<⃒";
1360var nvltrie = "⊴⃒";
1361var nvrArr = "⤃";
1362var nvrtrie = "⊵⃒";
1363var nvsim = "∼⃒";
1364var nwarhk = "⤣";
1365var nwarr = "↖";
1366var nwArr = "⇖";
1367var nwarrow = "↖";
1368var nwnear = "⤧";
1369var Oacute = "Ó";
1370var oacute = "ó";
1371var oast = "⊛";
1372var Ocirc = "Ô";
1373var ocirc = "ô";
1374var ocir = "⊚";
1375var Ocy = "О";
1376var ocy = "о";
1377var odash = "⊝";
1378var Odblac = "Ő";
1379var odblac = "ő";
1380var odiv = "⨸";
1381var odot = "⊙";
1382var odsold = "⦼";
1383var OElig = "Œ";
1384var oelig = "œ";
1385var ofcir = "⦿";
1386var Ofr = "𝔒";
1387var ofr = "𝔬";
1388var ogon = "˛";
1389var Ograve = "Ò";
1390var ograve = "ò";
1391var ogt = "⧁";
1392var ohbar = "⦵";
1393var ohm = "Ω";
1394var oint = "∮";
1395var olarr = "↺";
1396var olcir = "⦾";
1397var olcross = "⦻";
1398var oline = "‾";
1399var olt = "⧀";
1400var Omacr = "Ō";
1401var omacr = "ō";
1402var Omega = "Ω";
1403var omega = "ω";
1404var Omicron = "Ο";
1405var omicron = "ο";
1406var omid = "⦶";
1407var ominus = "⊖";
1408var Oopf = "𝕆";
1409var oopf = "𝕠";
1410var opar = "⦷";
1411var OpenCurlyDoubleQuote = "“";
1412var OpenCurlyQuote = "‘";
1413var operp = "⦹";
1414var oplus = "⊕";
1415var orarr = "↻";
1416var Or = "⩔";
1417var or = "∨";
1418var ord = "⩝";
1419var order = "ℴ";
1420var orderof = "ℴ";
1421var ordf = "ª";
1422var ordm = "º";
1423var origof = "⊶";
1424var oror = "⩖";
1425var orslope = "⩗";
1426var orv = "⩛";
1427var oS = "Ⓢ";
1428var Oscr = "𝒪";
1429var oscr = "ℴ";
1430var Oslash = "Ø";
1431var oslash = "ø";
1432var osol = "⊘";
1433var Otilde = "Õ";
1434var otilde = "õ";
1435var otimesas = "⨶";
1436var Otimes = "⨷";
1437var otimes = "⊗";
1438var Ouml = "Ö";
1439var ouml = "ö";
1440var ovbar = "⌽";
1441var OverBar = "‾";
1442var OverBrace = "⏞";
1443var OverBracket = "⎴";
1444var OverParenthesis = "⏜";
1445var para = "¶";
1446var parallel = "∥";
1447var par = "∥";
1448var parsim = "⫳";
1449var parsl = "⫽";
1450var part = "∂";
1451var PartialD = "∂";
1452var Pcy = "П";
1453var pcy = "п";
1454var percnt = "%";
1455var period = ".";
1456var permil = "‰";
1457var perp = "⊥";
1458var pertenk = "‱";
1459var Pfr = "𝔓";
1460var pfr = "𝔭";
1461var Phi = "Φ";
1462var phi = "φ";
1463var phiv = "ϕ";
1464var phmmat = "ℳ";
1465var phone = "☎";
1466var Pi = "Π";
1467var pi = "π";
1468var pitchfork = "⋔";
1469var piv = "ϖ";
1470var planck = "ℏ";
1471var planckh = "ℎ";
1472var plankv = "ℏ";
1473var plusacir = "⨣";
1474var plusb = "⊞";
1475var pluscir = "⨢";
1476var plus = "+";
1477var plusdo = "∔";
1478var plusdu = "⨥";
1479var pluse = "⩲";
1480var PlusMinus = "±";
1481var plusmn = "±";
1482var plussim = "⨦";
1483var plustwo = "⨧";
1484var pm = "±";
1485var Poincareplane = "ℌ";
1486var pointint = "⨕";
1487var popf = "𝕡";
1488var Popf = "ℙ";
1489var pound = "£";
1490var prap = "⪷";
1491var Pr = "⪻";
1492var pr = "≺";
1493var prcue = "≼";
1494var precapprox = "⪷";
1495var prec = "≺";
1496var preccurlyeq = "≼";
1497var Precedes = "≺";
1498var PrecedesEqual = "⪯";
1499var PrecedesSlantEqual = "≼";
1500var PrecedesTilde = "≾";
1501var preceq = "⪯";
1502var precnapprox = "⪹";
1503var precneqq = "⪵";
1504var precnsim = "⋨";
1505var pre = "⪯";
1506var prE = "⪳";
1507var precsim = "≾";
1508var prime = "′";
1509var Prime = "″";
1510var primes = "ℙ";
1511var prnap = "⪹";
1512var prnE = "⪵";
1513var prnsim = "⋨";
1514var prod = "∏";
1515var Product = "∏";
1516var profalar = "⌮";
1517var profline = "⌒";
1518var profsurf = "⌓";
1519var prop = "∝";
1520var Proportional = "∝";
1521var Proportion = "∷";
1522var propto = "∝";
1523var prsim = "≾";
1524var prurel = "⊰";
1525var Pscr = "𝒫";
1526var pscr = "𝓅";
1527var Psi = "Ψ";
1528var psi = "ψ";
1529var puncsp = " ";
1530var Qfr = "𝔔";
1531var qfr = "𝔮";
1532var qint = "⨌";
1533var qopf = "𝕢";
1534var Qopf = "ℚ";
1535var qprime = "⁗";
1536var Qscr = "𝒬";
1537var qscr = "𝓆";
1538var quaternions = "ℍ";
1539var quatint = "⨖";
1540var quest = "?";
1541var questeq = "≟";
1542var quot = "\"";
1543var QUOT = "\"";
1544var rAarr = "⇛";
1545var race = "∽̱";
1546var Racute = "Ŕ";
1547var racute = "ŕ";
1548var radic = "√";
1549var raemptyv = "⦳";
1550var rang = "⟩";
1551var Rang = "⟫";
1552var rangd = "⦒";
1553var range = "⦥";
1554var rangle = "⟩";
1555var raquo = "»";
1556var rarrap = "⥵";
1557var rarrb = "⇥";
1558var rarrbfs = "⤠";
1559var rarrc = "⤳";
1560var rarr = "→";
1561var Rarr = "↠";
1562var rArr = "⇒";
1563var rarrfs = "⤞";
1564var rarrhk = "↪";
1565var rarrlp = "↬";
1566var rarrpl = "⥅";
1567var rarrsim = "⥴";
1568var Rarrtl = "⤖";
1569var rarrtl = "↣";
1570var rarrw = "↝";
1571var ratail = "⤚";
1572var rAtail = "⤜";
1573var ratio = "∶";
1574var rationals = "ℚ";
1575var rbarr = "⤍";
1576var rBarr = "⤏";
1577var RBarr = "⤐";
1578var rbbrk = "❳";
1579var rbrace = "}";
1580var rbrack = "]";
1581var rbrke = "⦌";
1582var rbrksld = "⦎";
1583var rbrkslu = "⦐";
1584var Rcaron = "Ř";
1585var rcaron = "ř";
1586var Rcedil = "Ŗ";
1587var rcedil = "ŗ";
1588var rceil = "⌉";
1589var rcub = "}";
1590var Rcy = "Р";
1591var rcy = "р";
1592var rdca = "⤷";
1593var rdldhar = "⥩";
1594var rdquo = "”";
1595var rdquor = "”";
1596var rdsh = "↳";
1597var real = "ℜ";
1598var realine = "ℛ";
1599var realpart = "ℜ";
1600var reals = "ℝ";
1601var Re = "ℜ";
1602var rect = "▭";
1603var reg = "®";
1604var REG = "®";
1605var ReverseElement = "∋";
1606var ReverseEquilibrium = "⇋";
1607var ReverseUpEquilibrium = "⥯";
1608var rfisht = "⥽";
1609var rfloor = "⌋";
1610var rfr = "𝔯";
1611var Rfr = "ℜ";
1612var rHar = "⥤";
1613var rhard = "⇁";
1614var rharu = "⇀";
1615var rharul = "⥬";
1616var Rho = "Ρ";
1617var rho = "ρ";
1618var rhov = "ϱ";
1619var RightAngleBracket = "⟩";
1620var RightArrowBar = "⇥";
1621var rightarrow = "→";
1622var RightArrow = "→";
1623var Rightarrow = "⇒";
1624var RightArrowLeftArrow = "⇄";
1625var rightarrowtail = "↣";
1626var RightCeiling = "⌉";
1627var RightDoubleBracket = "⟧";
1628var RightDownTeeVector = "⥝";
1629var RightDownVectorBar = "⥕";
1630var RightDownVector = "⇂";
1631var RightFloor = "⌋";
1632var rightharpoondown = "⇁";
1633var rightharpoonup = "⇀";
1634var rightleftarrows = "⇄";
1635var rightleftharpoons = "⇌";
1636var rightrightarrows = "⇉";
1637var rightsquigarrow = "↝";
1638var RightTeeArrow = "↦";
1639var RightTee = "⊢";
1640var RightTeeVector = "⥛";
1641var rightthreetimes = "⋌";
1642var RightTriangleBar = "⧐";
1643var RightTriangle = "⊳";
1644var RightTriangleEqual = "⊵";
1645var RightUpDownVector = "⥏";
1646var RightUpTeeVector = "⥜";
1647var RightUpVectorBar = "⥔";
1648var RightUpVector = "↾";
1649var RightVectorBar = "⥓";
1650var RightVector = "⇀";
1651var ring = "˚";
1652var risingdotseq = "≓";
1653var rlarr = "⇄";
1654var rlhar = "⇌";
1655var rlm = "‏";
1656var rmoustache = "⎱";
1657var rmoust = "⎱";
1658var rnmid = "⫮";
1659var roang = "⟭";
1660var roarr = "⇾";
1661var robrk = "⟧";
1662var ropar = "⦆";
1663var ropf = "𝕣";
1664var Ropf = "ℝ";
1665var roplus = "⨮";
1666var rotimes = "⨵";
1667var RoundImplies = "⥰";
1668var rpar = ")";
1669var rpargt = "⦔";
1670var rppolint = "⨒";
1671var rrarr = "⇉";
1672var Rrightarrow = "⇛";
1673var rsaquo = "›";
1674var rscr = "𝓇";
1675var Rscr = "ℛ";
1676var rsh = "↱";
1677var Rsh = "↱";
1678var rsqb = "]";
1679var rsquo = "’";
1680var rsquor = "’";
1681var rthree = "⋌";
1682var rtimes = "⋊";
1683var rtri = "▹";
1684var rtrie = "⊵";
1685var rtrif = "▸";
1686var rtriltri = "⧎";
1687var RuleDelayed = "⧴";
1688var ruluhar = "⥨";
1689var rx = "℞";
1690var Sacute = "Ś";
1691var sacute = "ś";
1692var sbquo = "‚";
1693var scap = "⪸";
1694var Scaron = "Š";
1695var scaron = "š";
1696var Sc = "⪼";
1697var sc = "≻";
1698var sccue = "≽";
1699var sce = "⪰";
1700var scE = "⪴";
1701var Scedil = "Ş";
1702var scedil = "ş";
1703var Scirc = "Ŝ";
1704var scirc = "ŝ";
1705var scnap = "⪺";
1706var scnE = "⪶";
1707var scnsim = "⋩";
1708var scpolint = "⨓";
1709var scsim = "≿";
1710var Scy = "С";
1711var scy = "с";
1712var sdotb = "⊡";
1713var sdot = "⋅";
1714var sdote = "⩦";
1715var searhk = "⤥";
1716var searr = "↘";
1717var seArr = "⇘";
1718var searrow = "↘";
1719var sect = "§";
1720var semi = ";";
1721var seswar = "⤩";
1722var setminus = "∖";
1723var setmn = "∖";
1724var sext = "✶";
1725var Sfr = "𝔖";
1726var sfr = "𝔰";
1727var sfrown = "⌢";
1728var sharp = "♯";
1729var SHCHcy = "Щ";
1730var shchcy = "щ";
1731var SHcy = "Ш";
1732var shcy = "ш";
1733var ShortDownArrow = "↓";
1734var ShortLeftArrow = "←";
1735var shortmid = "∣";
1736var shortparallel = "∥";
1737var ShortRightArrow = "→";
1738var ShortUpArrow = "↑";
1739var shy = "­";
1740var Sigma = "Σ";
1741var sigma = "σ";
1742var sigmaf = "ς";
1743var sigmav = "ς";
1744var sim = "∼";
1745var simdot = "⩪";
1746var sime = "≃";
1747var simeq = "≃";
1748var simg = "⪞";
1749var simgE = "⪠";
1750var siml = "⪝";
1751var simlE = "⪟";
1752var simne = "≆";
1753var simplus = "⨤";
1754var simrarr = "⥲";
1755var slarr = "←";
1756var SmallCircle = "∘";
1757var smallsetminus = "∖";
1758var smashp = "⨳";
1759var smeparsl = "⧤";
1760var smid = "∣";
1761var smile = "⌣";
1762var smt = "⪪";
1763var smte = "⪬";
1764var smtes = "⪬︀";
1765var SOFTcy = "Ь";
1766var softcy = "ь";
1767var solbar = "⌿";
1768var solb = "⧄";
1769var sol = "/";
1770var Sopf = "𝕊";
1771var sopf = "𝕤";
1772var spades = "♠";
1773var spadesuit = "♠";
1774var spar = "∥";
1775var sqcap = "⊓";
1776var sqcaps = "⊓︀";
1777var sqcup = "⊔";
1778var sqcups = "⊔︀";
1779var Sqrt = "√";
1780var sqsub = "⊏";
1781var sqsube = "⊑";
1782var sqsubset = "⊏";
1783var sqsubseteq = "⊑";
1784var sqsup = "⊐";
1785var sqsupe = "⊒";
1786var sqsupset = "⊐";
1787var sqsupseteq = "⊒";
1788var square = "□";
1789var Square = "□";
1790var SquareIntersection = "⊓";
1791var SquareSubset = "⊏";
1792var SquareSubsetEqual = "⊑";
1793var SquareSuperset = "⊐";
1794var SquareSupersetEqual = "⊒";
1795var SquareUnion = "⊔";
1796var squarf = "▪";
1797var squ = "□";
1798var squf = "▪";
1799var srarr = "→";
1800var Sscr = "𝒮";
1801var sscr = "𝓈";
1802var ssetmn = "∖";
1803var ssmile = "⌣";
1804var sstarf = "⋆";
1805var Star = "⋆";
1806var star = "☆";
1807var starf = "★";
1808var straightepsilon = "ϵ";
1809var straightphi = "ϕ";
1810var strns = "¯";
1811var sub = "⊂";
1812var Sub = "⋐";
1813var subdot = "⪽";
1814var subE = "⫅";
1815var sube = "⊆";
1816var subedot = "⫃";
1817var submult = "⫁";
1818var subnE = "⫋";
1819var subne = "⊊";
1820var subplus = "⪿";
1821var subrarr = "⥹";
1822var subset = "⊂";
1823var Subset = "⋐";
1824var subseteq = "⊆";
1825var subseteqq = "⫅";
1826var SubsetEqual = "⊆";
1827var subsetneq = "⊊";
1828var subsetneqq = "⫋";
1829var subsim = "⫇";
1830var subsub = "⫕";
1831var subsup = "⫓";
1832var succapprox = "⪸";
1833var succ = "≻";
1834var succcurlyeq = "≽";
1835var Succeeds = "≻";
1836var SucceedsEqual = "⪰";
1837var SucceedsSlantEqual = "≽";
1838var SucceedsTilde = "≿";
1839var succeq = "⪰";
1840var succnapprox = "⪺";
1841var succneqq = "⪶";
1842var succnsim = "⋩";
1843var succsim = "≿";
1844var SuchThat = "∋";
1845var sum = "∑";
1846var Sum = "∑";
1847var sung = "♪";
1848var sup1 = "¹";
1849var sup2 = "²";
1850var sup3 = "³";
1851var sup = "⊃";
1852var Sup = "⋑";
1853var supdot = "⪾";
1854var supdsub = "⫘";
1855var supE = "⫆";
1856var supe = "⊇";
1857var supedot = "⫄";
1858var Superset = "⊃";
1859var SupersetEqual = "⊇";
1860var suphsol = "⟉";
1861var suphsub = "⫗";
1862var suplarr = "⥻";
1863var supmult = "⫂";
1864var supnE = "⫌";
1865var supne = "⊋";
1866var supplus = "⫀";
1867var supset = "⊃";
1868var Supset = "⋑";
1869var supseteq = "⊇";
1870var supseteqq = "⫆";
1871var supsetneq = "⊋";
1872var supsetneqq = "⫌";
1873var supsim = "⫈";
1874var supsub = "⫔";
1875var supsup = "⫖";
1876var swarhk = "⤦";
1877var swarr = "↙";
1878var swArr = "⇙";
1879var swarrow = "↙";
1880var swnwar = "⤪";
1881var szlig = "ß";
1882var Tab = "\t";
1883var target = "⌖";
1884var Tau = "Τ";
1885var tau = "τ";
1886var tbrk = "⎴";
1887var Tcaron = "Ť";
1888var tcaron = "ť";
1889var Tcedil = "Ţ";
1890var tcedil = "ţ";
1891var Tcy = "Т";
1892var tcy = "т";
1893var tdot = "⃛";
1894var telrec = "⌕";
1895var Tfr = "𝔗";
1896var tfr = "𝔱";
1897var there4 = "∴";
1898var therefore = "∴";
1899var Therefore = "∴";
1900var Theta = "Θ";
1901var theta = "θ";
1902var thetasym = "ϑ";
1903var thetav = "ϑ";
1904var thickapprox = "≈";
1905var thicksim = "∼";
1906var ThickSpace = "  ";
1907var ThinSpace = " ";
1908var thinsp = " ";
1909var thkap = "≈";
1910var thksim = "∼";
1911var THORN = "Þ";
1912var thorn = "þ";
1913var tilde = "˜";
1914var Tilde = "∼";
1915var TildeEqual = "≃";
1916var TildeFullEqual = "≅";
1917var TildeTilde = "≈";
1918var timesbar = "⨱";
1919var timesb = "⊠";
1920var times = "×";
1921var timesd = "⨰";
1922var tint = "∭";
1923var toea = "⤨";
1924var topbot = "⌶";
1925var topcir = "⫱";
1926var top = "⊤";
1927var Topf = "𝕋";
1928var topf = "𝕥";
1929var topfork = "⫚";
1930var tosa = "⤩";
1931var tprime = "‴";
1932var trade = "™";
1933var TRADE = "™";
1934var triangle = "▵";
1935var triangledown = "▿";
1936var triangleleft = "◃";
1937var trianglelefteq = "⊴";
1938var triangleq = "≜";
1939var triangleright = "▹";
1940var trianglerighteq = "⊵";
1941var tridot = "◬";
1942var trie = "≜";
1943var triminus = "⨺";
1944var TripleDot = "⃛";
1945var triplus = "⨹";
1946var trisb = "⧍";
1947var tritime = "⨻";
1948var trpezium = "⏢";
1949var Tscr = "𝒯";
1950var tscr = "𝓉";
1951var TScy = "Ц";
1952var tscy = "ц";
1953var TSHcy = "Ћ";
1954var tshcy = "ћ";
1955var Tstrok = "Ŧ";
1956var tstrok = "ŧ";
1957var twixt = "≬";
1958var twoheadleftarrow = "↞";
1959var twoheadrightarrow = "↠";
1960var Uacute = "Ú";
1961var uacute = "ú";
1962var uarr = "↑";
1963var Uarr = "↟";
1964var uArr = "⇑";
1965var Uarrocir = "⥉";
1966var Ubrcy = "Ў";
1967var ubrcy = "ў";
1968var Ubreve = "Ŭ";
1969var ubreve = "ŭ";
1970var Ucirc = "Û";
1971var ucirc = "û";
1972var Ucy = "У";
1973var ucy = "у";
1974var udarr = "⇅";
1975var Udblac = "Ű";
1976var udblac = "ű";
1977var udhar = "⥮";
1978var ufisht = "⥾";
1979var Ufr = "𝔘";
1980var ufr = "𝔲";
1981var Ugrave = "Ù";
1982var ugrave = "ù";
1983var uHar = "⥣";
1984var uharl = "↿";
1985var uharr = "↾";
1986var uhblk = "▀";
1987var ulcorn = "⌜";
1988var ulcorner = "⌜";
1989var ulcrop = "⌏";
1990var ultri = "◸";
1991var Umacr = "Ū";
1992var umacr = "ū";
1993var uml = "¨";
1994var UnderBar = "_";
1995var UnderBrace = "⏟";
1996var UnderBracket = "⎵";
1997var UnderParenthesis = "⏝";
1998var Union = "⋃";
1999var UnionPlus = "⊎";
2000var Uogon = "Ų";
2001var uogon = "ų";
2002var Uopf = "𝕌";
2003var uopf = "𝕦";
2004var UpArrowBar = "⤒";
2005var uparrow = "↑";
2006var UpArrow = "↑";
2007var Uparrow = "⇑";
2008var UpArrowDownArrow = "⇅";
2009var updownarrow = "↕";
2010var UpDownArrow = "↕";
2011var Updownarrow = "⇕";
2012var UpEquilibrium = "⥮";
2013var upharpoonleft = "↿";
2014var upharpoonright = "↾";
2015var uplus = "⊎";
2016var UpperLeftArrow = "↖";
2017var UpperRightArrow = "↗";
2018var upsi = "υ";
2019var Upsi = "ϒ";
2020var upsih = "ϒ";
2021var Upsilon = "Υ";
2022var upsilon = "υ";
2023var UpTeeArrow = "↥";
2024var UpTee = "⊥";
2025var upuparrows = "⇈";
2026var urcorn = "⌝";
2027var urcorner = "⌝";
2028var urcrop = "⌎";
2029var Uring = "Ů";
2030var uring = "ů";
2031var urtri = "◹";
2032var Uscr = "𝒰";
2033var uscr = "𝓊";
2034var utdot = "⋰";
2035var Utilde = "Ũ";
2036var utilde = "ũ";
2037var utri = "▵";
2038var utrif = "▴";
2039var uuarr = "⇈";
2040var Uuml = "Ü";
2041var uuml = "ü";
2042var uwangle = "⦧";
2043var vangrt = "⦜";
2044var varepsilon = "ϵ";
2045var varkappa = "ϰ";
2046var varnothing = "∅";
2047var varphi = "ϕ";
2048var varpi = "ϖ";
2049var varpropto = "∝";
2050var varr = "↕";
2051var vArr = "⇕";
2052var varrho = "ϱ";
2053var varsigma = "ς";
2054var varsubsetneq = "⊊︀";
2055var varsubsetneqq = "⫋︀";
2056var varsupsetneq = "⊋︀";
2057var varsupsetneqq = "⫌︀";
2058var vartheta = "ϑ";
2059var vartriangleleft = "⊲";
2060var vartriangleright = "⊳";
2061var vBar = "⫨";
2062var Vbar = "⫫";
2063var vBarv = "⫩";
2064var Vcy = "В";
2065var vcy = "в";
2066var vdash = "⊢";
2067var vDash = "⊨";
2068var Vdash = "⊩";
2069var VDash = "⊫";
2070var Vdashl = "⫦";
2071var veebar = "⊻";
2072var vee = "∨";
2073var Vee = "⋁";
2074var veeeq = "≚";
2075var vellip = "⋮";
2076var verbar = "|";
2077var Verbar = "‖";
2078var vert = "|";
2079var Vert = "‖";
2080var VerticalBar = "∣";
2081var VerticalLine = "|";
2082var VerticalSeparator = "❘";
2083var VerticalTilde = "≀";
2084var VeryThinSpace = " ";
2085var Vfr = "𝔙";
2086var vfr = "𝔳";
2087var vltri = "⊲";
2088var vnsub = "⊂⃒";
2089var vnsup = "⊃⃒";
2090var Vopf = "𝕍";
2091var vopf = "𝕧";
2092var vprop = "∝";
2093var vrtri = "⊳";
2094var Vscr = "𝒱";
2095var vscr = "𝓋";
2096var vsubnE = "⫋︀";
2097var vsubne = "⊊︀";
2098var vsupnE = "⫌︀";
2099var vsupne = "⊋︀";
2100var Vvdash = "⊪";
2101var vzigzag = "⦚";
2102var Wcirc = "Ŵ";
2103var wcirc = "ŵ";
2104var wedbar = "⩟";
2105var wedge = "∧";
2106var Wedge = "⋀";
2107var wedgeq = "≙";
2108var weierp = "℘";
2109var Wfr = "𝔚";
2110var wfr = "𝔴";
2111var Wopf = "𝕎";
2112var wopf = "𝕨";
2113var wp = "℘";
2114var wr = "≀";
2115var wreath = "≀";
2116var Wscr = "𝒲";
2117var wscr = "𝓌";
2118var xcap = "⋂";
2119var xcirc = "◯";
2120var xcup = "⋃";
2121var xdtri = "▽";
2122var Xfr = "𝔛";
2123var xfr = "𝔵";
2124var xharr = "⟷";
2125var xhArr = "⟺";
2126var Xi = "Ξ";
2127var xi = "ξ";
2128var xlarr = "⟵";
2129var xlArr = "⟸";
2130var xmap = "⟼";
2131var xnis = "⋻";
2132var xodot = "⨀";
2133var Xopf = "𝕏";
2134var xopf = "𝕩";
2135var xoplus = "⨁";
2136var xotime = "⨂";
2137var xrarr = "⟶";
2138var xrArr = "⟹";
2139var Xscr = "𝒳";
2140var xscr = "𝓍";
2141var xsqcup = "⨆";
2142var xuplus = "⨄";
2143var xutri = "△";
2144var xvee = "⋁";
2145var xwedge = "⋀";
2146var Yacute = "Ý";
2147var yacute = "ý";
2148var YAcy = "Я";
2149var yacy = "я";
2150var Ycirc = "Ŷ";
2151var ycirc = "ŷ";
2152var Ycy = "Ы";
2153var ycy = "ы";
2154var yen = "¥";
2155var Yfr = "𝔜";
2156var yfr = "𝔶";
2157var YIcy = "Ї";
2158var yicy = "ї";
2159var Yopf = "𝕐";
2160var yopf = "𝕪";
2161var Yscr = "𝒴";
2162var yscr = "𝓎";
2163var YUcy = "Ю";
2164var yucy = "ю";
2165var yuml = "ÿ";
2166var Yuml = "Ÿ";
2167var Zacute = "Ź";
2168var zacute = "ź";
2169var Zcaron = "Ž";
2170var zcaron = "ž";
2171var Zcy = "З";
2172var zcy = "з";
2173var Zdot = "Ż";
2174var zdot = "ż";
2175var zeetrf = "ℨ";
2176var ZeroWidthSpace = "​";
2177var Zeta = "Ζ";
2178var zeta = "ζ";
2179var zfr = "𝔷";
2180var Zfr = "ℨ";
2181var ZHcy = "Ж";
2182var zhcy = "ж";
2183var zigrarr = "⇝";
2184var zopf = "𝕫";
2185var Zopf = "ℤ";
2186var Zscr = "𝒵";
2187var zscr = "𝓏";
2188var zwj = "‍";
2189var zwnj = "‌";
2190var entities = {
2191 Aacute: Aacute,
2192 aacute: aacute,
2193 Abreve: Abreve,
2194 abreve: abreve,
2195 ac: ac,
2196 acd: acd,
2197 acE: acE,
2198 Acirc: Acirc,
2199 acirc: acirc,
2200 acute: acute,
2201 Acy: Acy,
2202 acy: acy,
2203 AElig: AElig,
2204 aelig: aelig,
2205 af: af,
2206 Afr: Afr,
2207 afr: afr,
2208 Agrave: Agrave,
2209 agrave: agrave,
2210 alefsym: alefsym,
2211 aleph: aleph,
2212 Alpha: Alpha,
2213 alpha: alpha,
2214 Amacr: Amacr,
2215 amacr: amacr,
2216 amalg: amalg,
2217 amp: amp,
2218 AMP: AMP,
2219 andand: andand,
2220 And: And,
2221 and: and,
2222 andd: andd,
2223 andslope: andslope,
2224 andv: andv,
2225 ang: ang,
2226 ange: ange,
2227 angle: angle,
2228 angmsdaa: angmsdaa,
2229 angmsdab: angmsdab,
2230 angmsdac: angmsdac,
2231 angmsdad: angmsdad,
2232 angmsdae: angmsdae,
2233 angmsdaf: angmsdaf,
2234 angmsdag: angmsdag,
2235 angmsdah: angmsdah,
2236 angmsd: angmsd,
2237 angrt: angrt,
2238 angrtvb: angrtvb,
2239 angrtvbd: angrtvbd,
2240 angsph: angsph,
2241 angst: angst,
2242 angzarr: angzarr,
2243 Aogon: Aogon,
2244 aogon: aogon,
2245 Aopf: Aopf,
2246 aopf: aopf,
2247 apacir: apacir,
2248 ap: ap,
2249 apE: apE,
2250 ape: ape,
2251 apid: apid,
2252 apos: apos,
2253 ApplyFunction: ApplyFunction,
2254 approx: approx,
2255 approxeq: approxeq,
2256 Aring: Aring,
2257 aring: aring,
2258 Ascr: Ascr,
2259 ascr: ascr,
2260 Assign: Assign,
2261 ast: ast,
2262 asymp: asymp,
2263 asympeq: asympeq,
2264 Atilde: Atilde,
2265 atilde: atilde,
2266 Auml: Auml,
2267 auml: auml,
2268 awconint: awconint,
2269 awint: awint,
2270 backcong: backcong,
2271 backepsilon: backepsilon,
2272 backprime: backprime,
2273 backsim: backsim,
2274 backsimeq: backsimeq,
2275 Backslash: Backslash,
2276 Barv: Barv,
2277 barvee: barvee,
2278 barwed: barwed,
2279 Barwed: Barwed,
2280 barwedge: barwedge,
2281 bbrk: bbrk,
2282 bbrktbrk: bbrktbrk,
2283 bcong: bcong,
2284 Bcy: Bcy,
2285 bcy: bcy,
2286 bdquo: bdquo,
2287 becaus: becaus,
2288 because: because,
2289 Because: Because,
2290 bemptyv: bemptyv,
2291 bepsi: bepsi,
2292 bernou: bernou,
2293 Bernoullis: Bernoullis,
2294 Beta: Beta,
2295 beta: beta,
2296 beth: beth,
2297 between: between,
2298 Bfr: Bfr,
2299 bfr: bfr,
2300 bigcap: bigcap,
2301 bigcirc: bigcirc,
2302 bigcup: bigcup,
2303 bigodot: bigodot,
2304 bigoplus: bigoplus,
2305 bigotimes: bigotimes,
2306 bigsqcup: bigsqcup,
2307 bigstar: bigstar,
2308 bigtriangledown: bigtriangledown,
2309 bigtriangleup: bigtriangleup,
2310 biguplus: biguplus,
2311 bigvee: bigvee,
2312 bigwedge: bigwedge,
2313 bkarow: bkarow,
2314 blacklozenge: blacklozenge,
2315 blacksquare: blacksquare,
2316 blacktriangle: blacktriangle,
2317 blacktriangledown: blacktriangledown,
2318 blacktriangleleft: blacktriangleleft,
2319 blacktriangleright: blacktriangleright,
2320 blank: blank,
2321 blk12: blk12,
2322 blk14: blk14,
2323 blk34: blk34,
2324 block: block,
2325 bne: bne,
2326 bnequiv: bnequiv,
2327 bNot: bNot,
2328 bnot: bnot,
2329 Bopf: Bopf,
2330 bopf: bopf,
2331 bot: bot,
2332 bottom: bottom,
2333 bowtie: bowtie,
2334 boxbox: boxbox,
2335 boxdl: boxdl,
2336 boxdL: boxdL,
2337 boxDl: boxDl,
2338 boxDL: boxDL,
2339 boxdr: boxdr,
2340 boxdR: boxdR,
2341 boxDr: boxDr,
2342 boxDR: boxDR,
2343 boxh: boxh,
2344 boxH: boxH,
2345 boxhd: boxhd,
2346 boxHd: boxHd,
2347 boxhD: boxhD,
2348 boxHD: boxHD,
2349 boxhu: boxhu,
2350 boxHu: boxHu,
2351 boxhU: boxhU,
2352 boxHU: boxHU,
2353 boxminus: boxminus,
2354 boxplus: boxplus,
2355 boxtimes: boxtimes,
2356 boxul: boxul,
2357 boxuL: boxuL,
2358 boxUl: boxUl,
2359 boxUL: boxUL,
2360 boxur: boxur,
2361 boxuR: boxuR,
2362 boxUr: boxUr,
2363 boxUR: boxUR,
2364 boxv: boxv,
2365 boxV: boxV,
2366 boxvh: boxvh,
2367 boxvH: boxvH,
2368 boxVh: boxVh,
2369 boxVH: boxVH,
2370 boxvl: boxvl,
2371 boxvL: boxvL,
2372 boxVl: boxVl,
2373 boxVL: boxVL,
2374 boxvr: boxvr,
2375 boxvR: boxvR,
2376 boxVr: boxVr,
2377 boxVR: boxVR,
2378 bprime: bprime,
2379 breve: breve,
2380 Breve: Breve,
2381 brvbar: brvbar,
2382 bscr: bscr,
2383 Bscr: Bscr,
2384 bsemi: bsemi,
2385 bsim: bsim,
2386 bsime: bsime,
2387 bsolb: bsolb,
2388 bsol: bsol,
2389 bsolhsub: bsolhsub,
2390 bull: bull,
2391 bullet: bullet,
2392 bump: bump,
2393 bumpE: bumpE,
2394 bumpe: bumpe,
2395 Bumpeq: Bumpeq,
2396 bumpeq: bumpeq,
2397 Cacute: Cacute,
2398 cacute: cacute,
2399 capand: capand,
2400 capbrcup: capbrcup,
2401 capcap: capcap,
2402 cap: cap,
2403 Cap: Cap,
2404 capcup: capcup,
2405 capdot: capdot,
2406 CapitalDifferentialD: CapitalDifferentialD,
2407 caps: caps,
2408 caret: caret,
2409 caron: caron,
2410 Cayleys: Cayleys,
2411 ccaps: ccaps,
2412 Ccaron: Ccaron,
2413 ccaron: ccaron,
2414 Ccedil: Ccedil,
2415 ccedil: ccedil,
2416 Ccirc: Ccirc,
2417 ccirc: ccirc,
2418 Cconint: Cconint,
2419 ccups: ccups,
2420 ccupssm: ccupssm,
2421 Cdot: Cdot,
2422 cdot: cdot,
2423 cedil: cedil,
2424 Cedilla: Cedilla,
2425 cemptyv: cemptyv,
2426 cent: cent,
2427 centerdot: centerdot,
2428 CenterDot: CenterDot,
2429 cfr: cfr,
2430 Cfr: Cfr,
2431 CHcy: CHcy,
2432 chcy: chcy,
2433 check: check,
2434 checkmark: checkmark,
2435 Chi: Chi,
2436 chi: chi,
2437 circ: circ,
2438 circeq: circeq,
2439 circlearrowleft: circlearrowleft,
2440 circlearrowright: circlearrowright,
2441 circledast: circledast,
2442 circledcirc: circledcirc,
2443 circleddash: circleddash,
2444 CircleDot: CircleDot,
2445 circledR: circledR,
2446 circledS: circledS,
2447 CircleMinus: CircleMinus,
2448 CirclePlus: CirclePlus,
2449 CircleTimes: CircleTimes,
2450 cir: cir,
2451 cirE: cirE,
2452 cire: cire,
2453 cirfnint: cirfnint,
2454 cirmid: cirmid,
2455 cirscir: cirscir,
2456 ClockwiseContourIntegral: ClockwiseContourIntegral,
2457 CloseCurlyDoubleQuote: CloseCurlyDoubleQuote,
2458 CloseCurlyQuote: CloseCurlyQuote,
2459 clubs: clubs,
2460 clubsuit: clubsuit,
2461 colon: colon,
2462 Colon: Colon,
2463 Colone: Colone,
2464 colone: colone,
2465 coloneq: coloneq,
2466 comma: comma,
2467 commat: commat,
2468 comp: comp,
2469 compfn: compfn,
2470 complement: complement,
2471 complexes: complexes,
2472 cong: cong,
2473 congdot: congdot,
2474 Congruent: Congruent,
2475 conint: conint,
2476 Conint: Conint,
2477 ContourIntegral: ContourIntegral,
2478 copf: copf,
2479 Copf: Copf,
2480 coprod: coprod,
2481 Coproduct: Coproduct,
2482 copy: copy,
2483 COPY: COPY,
2484 copysr: copysr,
2485 CounterClockwiseContourIntegral: CounterClockwiseContourIntegral,
2486 crarr: crarr,
2487 cross: cross,
2488 Cross: Cross,
2489 Cscr: Cscr,
2490 cscr: cscr,
2491 csub: csub,
2492 csube: csube,
2493 csup: csup,
2494 csupe: csupe,
2495 ctdot: ctdot,
2496 cudarrl: cudarrl,
2497 cudarrr: cudarrr,
2498 cuepr: cuepr,
2499 cuesc: cuesc,
2500 cularr: cularr,
2501 cularrp: cularrp,
2502 cupbrcap: cupbrcap,
2503 cupcap: cupcap,
2504 CupCap: CupCap,
2505 cup: cup,
2506 Cup: Cup,
2507 cupcup: cupcup,
2508 cupdot: cupdot,
2509 cupor: cupor,
2510 cups: cups,
2511 curarr: curarr,
2512 curarrm: curarrm,
2513 curlyeqprec: curlyeqprec,
2514 curlyeqsucc: curlyeqsucc,
2515 curlyvee: curlyvee,
2516 curlywedge: curlywedge,
2517 curren: curren,
2518 curvearrowleft: curvearrowleft,
2519 curvearrowright: curvearrowright,
2520 cuvee: cuvee,
2521 cuwed: cuwed,
2522 cwconint: cwconint,
2523 cwint: cwint,
2524 cylcty: cylcty,
2525 dagger: dagger,
2526 Dagger: Dagger,
2527 daleth: daleth,
2528 darr: darr,
2529 Darr: Darr,
2530 dArr: dArr,
2531 dash: dash,
2532 Dashv: Dashv,
2533 dashv: dashv,
2534 dbkarow: dbkarow,
2535 dblac: dblac,
2536 Dcaron: Dcaron,
2537 dcaron: dcaron,
2538 Dcy: Dcy,
2539 dcy: dcy,
2540 ddagger: ddagger,
2541 ddarr: ddarr,
2542 DD: DD,
2543 dd: dd,
2544 DDotrahd: DDotrahd,
2545 ddotseq: ddotseq,
2546 deg: deg,
2547 Del: Del,
2548 Delta: Delta,
2549 delta: delta,
2550 demptyv: demptyv,
2551 dfisht: dfisht,
2552 Dfr: Dfr,
2553 dfr: dfr,
2554 dHar: dHar,
2555 dharl: dharl,
2556 dharr: dharr,
2557 DiacriticalAcute: DiacriticalAcute,
2558 DiacriticalDot: DiacriticalDot,
2559 DiacriticalDoubleAcute: DiacriticalDoubleAcute,
2560 DiacriticalGrave: DiacriticalGrave,
2561 DiacriticalTilde: DiacriticalTilde,
2562 diam: diam,
2563 diamond: diamond,
2564 Diamond: Diamond,
2565 diamondsuit: diamondsuit,
2566 diams: diams,
2567 die: die,
2568 DifferentialD: DifferentialD,
2569 digamma: digamma,
2570 disin: disin,
2571 div: div,
2572 divide: divide,
2573 divideontimes: divideontimes,
2574 divonx: divonx,
2575 DJcy: DJcy,
2576 djcy: djcy,
2577 dlcorn: dlcorn,
2578 dlcrop: dlcrop,
2579 dollar: dollar,
2580 Dopf: Dopf,
2581 dopf: dopf,
2582 Dot: Dot,
2583 dot: dot,
2584 DotDot: DotDot,
2585 doteq: doteq,
2586 doteqdot: doteqdot,
2587 DotEqual: DotEqual,
2588 dotminus: dotminus,
2589 dotplus: dotplus,
2590 dotsquare: dotsquare,
2591 doublebarwedge: doublebarwedge,
2592 DoubleContourIntegral: DoubleContourIntegral,
2593 DoubleDot: DoubleDot,
2594 DoubleDownArrow: DoubleDownArrow,
2595 DoubleLeftArrow: DoubleLeftArrow,
2596 DoubleLeftRightArrow: DoubleLeftRightArrow,
2597 DoubleLeftTee: DoubleLeftTee,
2598 DoubleLongLeftArrow: DoubleLongLeftArrow,
2599 DoubleLongLeftRightArrow: DoubleLongLeftRightArrow,
2600 DoubleLongRightArrow: DoubleLongRightArrow,
2601 DoubleRightArrow: DoubleRightArrow,
2602 DoubleRightTee: DoubleRightTee,
2603 DoubleUpArrow: DoubleUpArrow,
2604 DoubleUpDownArrow: DoubleUpDownArrow,
2605 DoubleVerticalBar: DoubleVerticalBar,
2606 DownArrowBar: DownArrowBar,
2607 downarrow: downarrow,
2608 DownArrow: DownArrow,
2609 Downarrow: Downarrow,
2610 DownArrowUpArrow: DownArrowUpArrow,
2611 DownBreve: DownBreve,
2612 downdownarrows: downdownarrows,
2613 downharpoonleft: downharpoonleft,
2614 downharpoonright: downharpoonright,
2615 DownLeftRightVector: DownLeftRightVector,
2616 DownLeftTeeVector: DownLeftTeeVector,
2617 DownLeftVectorBar: DownLeftVectorBar,
2618 DownLeftVector: DownLeftVector,
2619 DownRightTeeVector: DownRightTeeVector,
2620 DownRightVectorBar: DownRightVectorBar,
2621 DownRightVector: DownRightVector,
2622 DownTeeArrow: DownTeeArrow,
2623 DownTee: DownTee,
2624 drbkarow: drbkarow,
2625 drcorn: drcorn,
2626 drcrop: drcrop,
2627 Dscr: Dscr,
2628 dscr: dscr,
2629 DScy: DScy,
2630 dscy: dscy,
2631 dsol: dsol,
2632 Dstrok: Dstrok,
2633 dstrok: dstrok,
2634 dtdot: dtdot,
2635 dtri: dtri,
2636 dtrif: dtrif,
2637 duarr: duarr,
2638 duhar: duhar,
2639 dwangle: dwangle,
2640 DZcy: DZcy,
2641 dzcy: dzcy,
2642 dzigrarr: dzigrarr,
2643 Eacute: Eacute,
2644 eacute: eacute,
2645 easter: easter,
2646 Ecaron: Ecaron,
2647 ecaron: ecaron,
2648 Ecirc: Ecirc,
2649 ecirc: ecirc,
2650 ecir: ecir,
2651 ecolon: ecolon,
2652 Ecy: Ecy,
2653 ecy: ecy,
2654 eDDot: eDDot,
2655 Edot: Edot,
2656 edot: edot,
2657 eDot: eDot,
2658 ee: ee,
2659 efDot: efDot,
2660 Efr: Efr,
2661 efr: efr,
2662 eg: eg,
2663 Egrave: Egrave,
2664 egrave: egrave,
2665 egs: egs,
2666 egsdot: egsdot,
2667 el: el,
2668 Element: Element,
2669 elinters: elinters,
2670 ell: ell,
2671 els: els,
2672 elsdot: elsdot,
2673 Emacr: Emacr,
2674 emacr: emacr,
2675 empty: empty,
2676 emptyset: emptyset,
2677 EmptySmallSquare: EmptySmallSquare,
2678 emptyv: emptyv,
2679 EmptyVerySmallSquare: EmptyVerySmallSquare,
2680 emsp13: emsp13,
2681 emsp14: emsp14,
2682 emsp: emsp,
2683 ENG: ENG,
2684 eng: eng,
2685 ensp: ensp,
2686 Eogon: Eogon,
2687 eogon: eogon,
2688 Eopf: Eopf,
2689 eopf: eopf,
2690 epar: epar,
2691 eparsl: eparsl,
2692 eplus: eplus,
2693 epsi: epsi,
2694 Epsilon: Epsilon,
2695 epsilon: epsilon,
2696 epsiv: epsiv,
2697 eqcirc: eqcirc,
2698 eqcolon: eqcolon,
2699 eqsim: eqsim,
2700 eqslantgtr: eqslantgtr,
2701 eqslantless: eqslantless,
2702 Equal: Equal,
2703 equals: equals,
2704 EqualTilde: EqualTilde,
2705 equest: equest,
2706 Equilibrium: Equilibrium,
2707 equiv: equiv,
2708 equivDD: equivDD,
2709 eqvparsl: eqvparsl,
2710 erarr: erarr,
2711 erDot: erDot,
2712 escr: escr,
2713 Escr: Escr,
2714 esdot: esdot,
2715 Esim: Esim,
2716 esim: esim,
2717 Eta: Eta,
2718 eta: eta,
2719 ETH: ETH,
2720 eth: eth,
2721 Euml: Euml,
2722 euml: euml,
2723 euro: euro,
2724 excl: excl,
2725 exist: exist,
2726 Exists: Exists,
2727 expectation: expectation,
2728 exponentiale: exponentiale,
2729 ExponentialE: ExponentialE,
2730 fallingdotseq: fallingdotseq,
2731 Fcy: Fcy,
2732 fcy: fcy,
2733 female: female,
2734 ffilig: ffilig,
2735 fflig: fflig,
2736 ffllig: ffllig,
2737 Ffr: Ffr,
2738 ffr: ffr,
2739 filig: filig,
2740 FilledSmallSquare: FilledSmallSquare,
2741 FilledVerySmallSquare: FilledVerySmallSquare,
2742 fjlig: fjlig,
2743 flat: flat,
2744 fllig: fllig,
2745 fltns: fltns,
2746 fnof: fnof,
2747 Fopf: Fopf,
2748 fopf: fopf,
2749 forall: forall,
2750 ForAll: ForAll,
2751 fork: fork,
2752 forkv: forkv,
2753 Fouriertrf: Fouriertrf,
2754 fpartint: fpartint,
2755 frac12: frac12,
2756 frac13: frac13,
2757 frac14: frac14,
2758 frac15: frac15,
2759 frac16: frac16,
2760 frac18: frac18,
2761 frac23: frac23,
2762 frac25: frac25,
2763 frac34: frac34,
2764 frac35: frac35,
2765 frac38: frac38,
2766 frac45: frac45,
2767 frac56: frac56,
2768 frac58: frac58,
2769 frac78: frac78,
2770 frasl: frasl,
2771 frown: frown,
2772 fscr: fscr,
2773 Fscr: Fscr,
2774 gacute: gacute,
2775 Gamma: Gamma,
2776 gamma: gamma,
2777 Gammad: Gammad,
2778 gammad: gammad,
2779 gap: gap,
2780 Gbreve: Gbreve,
2781 gbreve: gbreve,
2782 Gcedil: Gcedil,
2783 Gcirc: Gcirc,
2784 gcirc: gcirc,
2785 Gcy: Gcy,
2786 gcy: gcy,
2787 Gdot: Gdot,
2788 gdot: gdot,
2789 ge: ge,
2790 gE: gE,
2791 gEl: gEl,
2792 gel: gel,
2793 geq: geq,
2794 geqq: geqq,
2795 geqslant: geqslant,
2796 gescc: gescc,
2797 ges: ges,
2798 gesdot: gesdot,
2799 gesdoto: gesdoto,
2800 gesdotol: gesdotol,
2801 gesl: gesl,
2802 gesles: gesles,
2803 Gfr: Gfr,
2804 gfr: gfr,
2805 gg: gg,
2806 Gg: Gg,
2807 ggg: ggg,
2808 gimel: gimel,
2809 GJcy: GJcy,
2810 gjcy: gjcy,
2811 gla: gla,
2812 gl: gl,
2813 glE: glE,
2814 glj: glj,
2815 gnap: gnap,
2816 gnapprox: gnapprox,
2817 gne: gne,
2818 gnE: gnE,
2819 gneq: gneq,
2820 gneqq: gneqq,
2821 gnsim: gnsim,
2822 Gopf: Gopf,
2823 gopf: gopf,
2824 grave: grave,
2825 GreaterEqual: GreaterEqual,
2826 GreaterEqualLess: GreaterEqualLess,
2827 GreaterFullEqual: GreaterFullEqual,
2828 GreaterGreater: GreaterGreater,
2829 GreaterLess: GreaterLess,
2830 GreaterSlantEqual: GreaterSlantEqual,
2831 GreaterTilde: GreaterTilde,
2832 Gscr: Gscr,
2833 gscr: gscr,
2834 gsim: gsim,
2835 gsime: gsime,
2836 gsiml: gsiml,
2837 gtcc: gtcc,
2838 gtcir: gtcir,
2839 gt: gt,
2840 GT: GT,
2841 Gt: Gt,
2842 gtdot: gtdot,
2843 gtlPar: gtlPar,
2844 gtquest: gtquest,
2845 gtrapprox: gtrapprox,
2846 gtrarr: gtrarr,
2847 gtrdot: gtrdot,
2848 gtreqless: gtreqless,
2849 gtreqqless: gtreqqless,
2850 gtrless: gtrless,
2851 gtrsim: gtrsim,
2852 gvertneqq: gvertneqq,
2853 gvnE: gvnE,
2854 Hacek: Hacek,
2855 hairsp: hairsp,
2856 half: half,
2857 hamilt: hamilt,
2858 HARDcy: HARDcy,
2859 hardcy: hardcy,
2860 harrcir: harrcir,
2861 harr: harr,
2862 hArr: hArr,
2863 harrw: harrw,
2864 Hat: Hat,
2865 hbar: hbar,
2866 Hcirc: Hcirc,
2867 hcirc: hcirc,
2868 hearts: hearts,
2869 heartsuit: heartsuit,
2870 hellip: hellip,
2871 hercon: hercon,
2872 hfr: hfr,
2873 Hfr: Hfr,
2874 HilbertSpace: HilbertSpace,
2875 hksearow: hksearow,
2876 hkswarow: hkswarow,
2877 hoarr: hoarr,
2878 homtht: homtht,
2879 hookleftarrow: hookleftarrow,
2880 hookrightarrow: hookrightarrow,
2881 hopf: hopf,
2882 Hopf: Hopf,
2883 horbar: horbar,
2884 HorizontalLine: HorizontalLine,
2885 hscr: hscr,
2886 Hscr: Hscr,
2887 hslash: hslash,
2888 Hstrok: Hstrok,
2889 hstrok: hstrok,
2890 HumpDownHump: HumpDownHump,
2891 HumpEqual: HumpEqual,
2892 hybull: hybull,
2893 hyphen: hyphen,
2894 Iacute: Iacute,
2895 iacute: iacute,
2896 ic: ic,
2897 Icirc: Icirc,
2898 icirc: icirc,
2899 Icy: Icy,
2900 icy: icy,
2901 Idot: Idot,
2902 IEcy: IEcy,
2903 iecy: iecy,
2904 iexcl: iexcl,
2905 iff: iff,
2906 ifr: ifr,
2907 Ifr: Ifr,
2908 Igrave: Igrave,
2909 igrave: igrave,
2910 ii: ii,
2911 iiiint: iiiint,
2912 iiint: iiint,
2913 iinfin: iinfin,
2914 iiota: iiota,
2915 IJlig: IJlig,
2916 ijlig: ijlig,
2917 Imacr: Imacr,
2918 imacr: imacr,
2919 image: image,
2920 ImaginaryI: ImaginaryI,
2921 imagline: imagline,
2922 imagpart: imagpart,
2923 imath: imath,
2924 Im: Im,
2925 imof: imof,
2926 imped: imped,
2927 Implies: Implies,
2928 incare: incare,
2929 "in": "∈",
2930 infin: infin,
2931 infintie: infintie,
2932 inodot: inodot,
2933 intcal: intcal,
2934 int: int,
2935 Int: Int,
2936 integers: integers,
2937 Integral: Integral,
2938 intercal: intercal,
2939 Intersection: Intersection,
2940 intlarhk: intlarhk,
2941 intprod: intprod,
2942 InvisibleComma: InvisibleComma,
2943 InvisibleTimes: InvisibleTimes,
2944 IOcy: IOcy,
2945 iocy: iocy,
2946 Iogon: Iogon,
2947 iogon: iogon,
2948 Iopf: Iopf,
2949 iopf: iopf,
2950 Iota: Iota,
2951 iota: iota,
2952 iprod: iprod,
2953 iquest: iquest,
2954 iscr: iscr,
2955 Iscr: Iscr,
2956 isin: isin,
2957 isindot: isindot,
2958 isinE: isinE,
2959 isins: isins,
2960 isinsv: isinsv,
2961 isinv: isinv,
2962 it: it,
2963 Itilde: Itilde,
2964 itilde: itilde,
2965 Iukcy: Iukcy,
2966 iukcy: iukcy,
2967 Iuml: Iuml,
2968 iuml: iuml,
2969 Jcirc: Jcirc,
2970 jcirc: jcirc,
2971 Jcy: Jcy,
2972 jcy: jcy,
2973 Jfr: Jfr,
2974 jfr: jfr,
2975 jmath: jmath,
2976 Jopf: Jopf,
2977 jopf: jopf,
2978 Jscr: Jscr,
2979 jscr: jscr,
2980 Jsercy: Jsercy,
2981 jsercy: jsercy,
2982 Jukcy: Jukcy,
2983 jukcy: jukcy,
2984 Kappa: Kappa,
2985 kappa: kappa,
2986 kappav: kappav,
2987 Kcedil: Kcedil,
2988 kcedil: kcedil,
2989 Kcy: Kcy,
2990 kcy: kcy,
2991 Kfr: Kfr,
2992 kfr: kfr,
2993 kgreen: kgreen,
2994 KHcy: KHcy,
2995 khcy: khcy,
2996 KJcy: KJcy,
2997 kjcy: kjcy,
2998 Kopf: Kopf,
2999 kopf: kopf,
3000 Kscr: Kscr,
3001 kscr: kscr,
3002 lAarr: lAarr,
3003 Lacute: Lacute,
3004 lacute: lacute,
3005 laemptyv: laemptyv,
3006 lagran: lagran,
3007 Lambda: Lambda,
3008 lambda: lambda,
3009 lang: lang,
3010 Lang: Lang,
3011 langd: langd,
3012 langle: langle,
3013 lap: lap,
3014 Laplacetrf: Laplacetrf,
3015 laquo: laquo,
3016 larrb: larrb,
3017 larrbfs: larrbfs,
3018 larr: larr,
3019 Larr: Larr,
3020 lArr: lArr,
3021 larrfs: larrfs,
3022 larrhk: larrhk,
3023 larrlp: larrlp,
3024 larrpl: larrpl,
3025 larrsim: larrsim,
3026 larrtl: larrtl,
3027 latail: latail,
3028 lAtail: lAtail,
3029 lat: lat,
3030 late: late,
3031 lates: lates,
3032 lbarr: lbarr,
3033 lBarr: lBarr,
3034 lbbrk: lbbrk,
3035 lbrace: lbrace,
3036 lbrack: lbrack,
3037 lbrke: lbrke,
3038 lbrksld: lbrksld,
3039 lbrkslu: lbrkslu,
3040 Lcaron: Lcaron,
3041 lcaron: lcaron,
3042 Lcedil: Lcedil,
3043 lcedil: lcedil,
3044 lceil: lceil,
3045 lcub: lcub,
3046 Lcy: Lcy,
3047 lcy: lcy,
3048 ldca: ldca,
3049 ldquo: ldquo,
3050 ldquor: ldquor,
3051 ldrdhar: ldrdhar,
3052 ldrushar: ldrushar,
3053 ldsh: ldsh,
3054 le: le,
3055 lE: lE,
3056 LeftAngleBracket: LeftAngleBracket,
3057 LeftArrowBar: LeftArrowBar,
3058 leftarrow: leftarrow,
3059 LeftArrow: LeftArrow,
3060 Leftarrow: Leftarrow,
3061 LeftArrowRightArrow: LeftArrowRightArrow,
3062 leftarrowtail: leftarrowtail,
3063 LeftCeiling: LeftCeiling,
3064 LeftDoubleBracket: LeftDoubleBracket,
3065 LeftDownTeeVector: LeftDownTeeVector,
3066 LeftDownVectorBar: LeftDownVectorBar,
3067 LeftDownVector: LeftDownVector,
3068 LeftFloor: LeftFloor,
3069 leftharpoondown: leftharpoondown,
3070 leftharpoonup: leftharpoonup,
3071 leftleftarrows: leftleftarrows,
3072 leftrightarrow: leftrightarrow,
3073 LeftRightArrow: LeftRightArrow,
3074 Leftrightarrow: Leftrightarrow,
3075 leftrightarrows: leftrightarrows,
3076 leftrightharpoons: leftrightharpoons,
3077 leftrightsquigarrow: leftrightsquigarrow,
3078 LeftRightVector: LeftRightVector,
3079 LeftTeeArrow: LeftTeeArrow,
3080 LeftTee: LeftTee,
3081 LeftTeeVector: LeftTeeVector,
3082 leftthreetimes: leftthreetimes,
3083 LeftTriangleBar: LeftTriangleBar,
3084 LeftTriangle: LeftTriangle,
3085 LeftTriangleEqual: LeftTriangleEqual,
3086 LeftUpDownVector: LeftUpDownVector,
3087 LeftUpTeeVector: LeftUpTeeVector,
3088 LeftUpVectorBar: LeftUpVectorBar,
3089 LeftUpVector: LeftUpVector,
3090 LeftVectorBar: LeftVectorBar,
3091 LeftVector: LeftVector,
3092 lEg: lEg,
3093 leg: leg,
3094 leq: leq,
3095 leqq: leqq,
3096 leqslant: leqslant,
3097 lescc: lescc,
3098 les: les,
3099 lesdot: lesdot,
3100 lesdoto: lesdoto,
3101 lesdotor: lesdotor,
3102 lesg: lesg,
3103 lesges: lesges,
3104 lessapprox: lessapprox,
3105 lessdot: lessdot,
3106 lesseqgtr: lesseqgtr,
3107 lesseqqgtr: lesseqqgtr,
3108 LessEqualGreater: LessEqualGreater,
3109 LessFullEqual: LessFullEqual,
3110 LessGreater: LessGreater,
3111 lessgtr: lessgtr,
3112 LessLess: LessLess,
3113 lesssim: lesssim,
3114 LessSlantEqual: LessSlantEqual,
3115 LessTilde: LessTilde,
3116 lfisht: lfisht,
3117 lfloor: lfloor,
3118 Lfr: Lfr,
3119 lfr: lfr,
3120 lg: lg,
3121 lgE: lgE,
3122 lHar: lHar,
3123 lhard: lhard,
3124 lharu: lharu,
3125 lharul: lharul,
3126 lhblk: lhblk,
3127 LJcy: LJcy,
3128 ljcy: ljcy,
3129 llarr: llarr,
3130 ll: ll,
3131 Ll: Ll,
3132 llcorner: llcorner,
3133 Lleftarrow: Lleftarrow,
3134 llhard: llhard,
3135 lltri: lltri,
3136 Lmidot: Lmidot,
3137 lmidot: lmidot,
3138 lmoustache: lmoustache,
3139 lmoust: lmoust,
3140 lnap: lnap,
3141 lnapprox: lnapprox,
3142 lne: lne,
3143 lnE: lnE,
3144 lneq: lneq,
3145 lneqq: lneqq,
3146 lnsim: lnsim,
3147 loang: loang,
3148 loarr: loarr,
3149 lobrk: lobrk,
3150 longleftarrow: longleftarrow,
3151 LongLeftArrow: LongLeftArrow,
3152 Longleftarrow: Longleftarrow,
3153 longleftrightarrow: longleftrightarrow,
3154 LongLeftRightArrow: LongLeftRightArrow,
3155 Longleftrightarrow: Longleftrightarrow,
3156 longmapsto: longmapsto,
3157 longrightarrow: longrightarrow,
3158 LongRightArrow: LongRightArrow,
3159 Longrightarrow: Longrightarrow,
3160 looparrowleft: looparrowleft,
3161 looparrowright: looparrowright,
3162 lopar: lopar,
3163 Lopf: Lopf,
3164 lopf: lopf,
3165 loplus: loplus,
3166 lotimes: lotimes,
3167 lowast: lowast,
3168 lowbar: lowbar,
3169 LowerLeftArrow: LowerLeftArrow,
3170 LowerRightArrow: LowerRightArrow,
3171 loz: loz,
3172 lozenge: lozenge,
3173 lozf: lozf,
3174 lpar: lpar,
3175 lparlt: lparlt,
3176 lrarr: lrarr,
3177 lrcorner: lrcorner,
3178 lrhar: lrhar,
3179 lrhard: lrhard,
3180 lrm: lrm,
3181 lrtri: lrtri,
3182 lsaquo: lsaquo,
3183 lscr: lscr,
3184 Lscr: Lscr,
3185 lsh: lsh,
3186 Lsh: Lsh,
3187 lsim: lsim,
3188 lsime: lsime,
3189 lsimg: lsimg,
3190 lsqb: lsqb,
3191 lsquo: lsquo,
3192 lsquor: lsquor,
3193 Lstrok: Lstrok,
3194 lstrok: lstrok,
3195 ltcc: ltcc,
3196 ltcir: ltcir,
3197 lt: lt,
3198 LT: LT,
3199 Lt: Lt,
3200 ltdot: ltdot,
3201 lthree: lthree,
3202 ltimes: ltimes,
3203 ltlarr: ltlarr,
3204 ltquest: ltquest,
3205 ltri: ltri,
3206 ltrie: ltrie,
3207 ltrif: ltrif,
3208 ltrPar: ltrPar,
3209 lurdshar: lurdshar,
3210 luruhar: luruhar,
3211 lvertneqq: lvertneqq,
3212 lvnE: lvnE,
3213 macr: macr,
3214 male: male,
3215 malt: malt,
3216 maltese: maltese,
3217 "Map": "⤅",
3218 map: map,
3219 mapsto: mapsto,
3220 mapstodown: mapstodown,
3221 mapstoleft: mapstoleft,
3222 mapstoup: mapstoup,
3223 marker: marker,
3224 mcomma: mcomma,
3225 Mcy: Mcy,
3226 mcy: mcy,
3227 mdash: mdash,
3228 mDDot: mDDot,
3229 measuredangle: measuredangle,
3230 MediumSpace: MediumSpace,
3231 Mellintrf: Mellintrf,
3232 Mfr: Mfr,
3233 mfr: mfr,
3234 mho: mho,
3235 micro: micro,
3236 midast: midast,
3237 midcir: midcir,
3238 mid: mid,
3239 middot: middot,
3240 minusb: minusb,
3241 minus: minus,
3242 minusd: minusd,
3243 minusdu: minusdu,
3244 MinusPlus: MinusPlus,
3245 mlcp: mlcp,
3246 mldr: mldr,
3247 mnplus: mnplus,
3248 models: models,
3249 Mopf: Mopf,
3250 mopf: mopf,
3251 mp: mp,
3252 mscr: mscr,
3253 Mscr: Mscr,
3254 mstpos: mstpos,
3255 Mu: Mu,
3256 mu: mu,
3257 multimap: multimap,
3258 mumap: mumap,
3259 nabla: nabla,
3260 Nacute: Nacute,
3261 nacute: nacute,
3262 nang: nang,
3263 nap: nap,
3264 napE: napE,
3265 napid: napid,
3266 napos: napos,
3267 napprox: napprox,
3268 natural: natural,
3269 naturals: naturals,
3270 natur: natur,
3271 nbsp: nbsp,
3272 nbump: nbump,
3273 nbumpe: nbumpe,
3274 ncap: ncap,
3275 Ncaron: Ncaron,
3276 ncaron: ncaron,
3277 Ncedil: Ncedil,
3278 ncedil: ncedil,
3279 ncong: ncong,
3280 ncongdot: ncongdot,
3281 ncup: ncup,
3282 Ncy: Ncy,
3283 ncy: ncy,
3284 ndash: ndash,
3285 nearhk: nearhk,
3286 nearr: nearr,
3287 neArr: neArr,
3288 nearrow: nearrow,
3289 ne: ne,
3290 nedot: nedot,
3291 NegativeMediumSpace: NegativeMediumSpace,
3292 NegativeThickSpace: NegativeThickSpace,
3293 NegativeThinSpace: NegativeThinSpace,
3294 NegativeVeryThinSpace: NegativeVeryThinSpace,
3295 nequiv: nequiv,
3296 nesear: nesear,
3297 nesim: nesim,
3298 NestedGreaterGreater: NestedGreaterGreater,
3299 NestedLessLess: NestedLessLess,
3300 NewLine: NewLine,
3301 nexist: nexist,
3302 nexists: nexists,
3303 Nfr: Nfr,
3304 nfr: nfr,
3305 ngE: ngE,
3306 nge: nge,
3307 ngeq: ngeq,
3308 ngeqq: ngeqq,
3309 ngeqslant: ngeqslant,
3310 nges: nges,
3311 nGg: nGg,
3312 ngsim: ngsim,
3313 nGt: nGt,
3314 ngt: ngt,
3315 ngtr: ngtr,
3316 nGtv: nGtv,
3317 nharr: nharr,
3318 nhArr: nhArr,
3319 nhpar: nhpar,
3320 ni: ni,
3321 nis: nis,
3322 nisd: nisd,
3323 niv: niv,
3324 NJcy: NJcy,
3325 njcy: njcy,
3326 nlarr: nlarr,
3327 nlArr: nlArr,
3328 nldr: nldr,
3329 nlE: nlE,
3330 nle: nle,
3331 nleftarrow: nleftarrow,
3332 nLeftarrow: nLeftarrow,
3333 nleftrightarrow: nleftrightarrow,
3334 nLeftrightarrow: nLeftrightarrow,
3335 nleq: nleq,
3336 nleqq: nleqq,
3337 nleqslant: nleqslant,
3338 nles: nles,
3339 nless: nless,
3340 nLl: nLl,
3341 nlsim: nlsim,
3342 nLt: nLt,
3343 nlt: nlt,
3344 nltri: nltri,
3345 nltrie: nltrie,
3346 nLtv: nLtv,
3347 nmid: nmid,
3348 NoBreak: NoBreak,
3349 NonBreakingSpace: NonBreakingSpace,
3350 nopf: nopf,
3351 Nopf: Nopf,
3352 Not: Not,
3353 not: not,
3354 NotCongruent: NotCongruent,
3355 NotCupCap: NotCupCap,
3356 NotDoubleVerticalBar: NotDoubleVerticalBar,
3357 NotElement: NotElement,
3358 NotEqual: NotEqual,
3359 NotEqualTilde: NotEqualTilde,
3360 NotExists: NotExists,
3361 NotGreater: NotGreater,
3362 NotGreaterEqual: NotGreaterEqual,
3363 NotGreaterFullEqual: NotGreaterFullEqual,
3364 NotGreaterGreater: NotGreaterGreater,
3365 NotGreaterLess: NotGreaterLess,
3366 NotGreaterSlantEqual: NotGreaterSlantEqual,
3367 NotGreaterTilde: NotGreaterTilde,
3368 NotHumpDownHump: NotHumpDownHump,
3369 NotHumpEqual: NotHumpEqual,
3370 notin: notin,
3371 notindot: notindot,
3372 notinE: notinE,
3373 notinva: notinva,
3374 notinvb: notinvb,
3375 notinvc: notinvc,
3376 NotLeftTriangleBar: NotLeftTriangleBar,
3377 NotLeftTriangle: NotLeftTriangle,
3378 NotLeftTriangleEqual: NotLeftTriangleEqual,
3379 NotLess: NotLess,
3380 NotLessEqual: NotLessEqual,
3381 NotLessGreater: NotLessGreater,
3382 NotLessLess: NotLessLess,
3383 NotLessSlantEqual: NotLessSlantEqual,
3384 NotLessTilde: NotLessTilde,
3385 NotNestedGreaterGreater: NotNestedGreaterGreater,
3386 NotNestedLessLess: NotNestedLessLess,
3387 notni: notni,
3388 notniva: notniva,
3389 notnivb: notnivb,
3390 notnivc: notnivc,
3391 NotPrecedes: NotPrecedes,
3392 NotPrecedesEqual: NotPrecedesEqual,
3393 NotPrecedesSlantEqual: NotPrecedesSlantEqual,
3394 NotReverseElement: NotReverseElement,
3395 NotRightTriangleBar: NotRightTriangleBar,
3396 NotRightTriangle: NotRightTriangle,
3397 NotRightTriangleEqual: NotRightTriangleEqual,
3398 NotSquareSubset: NotSquareSubset,
3399 NotSquareSubsetEqual: NotSquareSubsetEqual,
3400 NotSquareSuperset: NotSquareSuperset,
3401 NotSquareSupersetEqual: NotSquareSupersetEqual,
3402 NotSubset: NotSubset,
3403 NotSubsetEqual: NotSubsetEqual,
3404 NotSucceeds: NotSucceeds,
3405 NotSucceedsEqual: NotSucceedsEqual,
3406 NotSucceedsSlantEqual: NotSucceedsSlantEqual,
3407 NotSucceedsTilde: NotSucceedsTilde,
3408 NotSuperset: NotSuperset,
3409 NotSupersetEqual: NotSupersetEqual,
3410 NotTilde: NotTilde,
3411 NotTildeEqual: NotTildeEqual,
3412 NotTildeFullEqual: NotTildeFullEqual,
3413 NotTildeTilde: NotTildeTilde,
3414 NotVerticalBar: NotVerticalBar,
3415 nparallel: nparallel,
3416 npar: npar,
3417 nparsl: nparsl,
3418 npart: npart,
3419 npolint: npolint,
3420 npr: npr,
3421 nprcue: nprcue,
3422 nprec: nprec,
3423 npreceq: npreceq,
3424 npre: npre,
3425 nrarrc: nrarrc,
3426 nrarr: nrarr,
3427 nrArr: nrArr,
3428 nrarrw: nrarrw,
3429 nrightarrow: nrightarrow,
3430 nRightarrow: nRightarrow,
3431 nrtri: nrtri,
3432 nrtrie: nrtrie,
3433 nsc: nsc,
3434 nsccue: nsccue,
3435 nsce: nsce,
3436 Nscr: Nscr,
3437 nscr: nscr,
3438 nshortmid: nshortmid,
3439 nshortparallel: nshortparallel,
3440 nsim: nsim,
3441 nsime: nsime,
3442 nsimeq: nsimeq,
3443 nsmid: nsmid,
3444 nspar: nspar,
3445 nsqsube: nsqsube,
3446 nsqsupe: nsqsupe,
3447 nsub: nsub,
3448 nsubE: nsubE,
3449 nsube: nsube,
3450 nsubset: nsubset,
3451 nsubseteq: nsubseteq,
3452 nsubseteqq: nsubseteqq,
3453 nsucc: nsucc,
3454 nsucceq: nsucceq,
3455 nsup: nsup,
3456 nsupE: nsupE,
3457 nsupe: nsupe,
3458 nsupset: nsupset,
3459 nsupseteq: nsupseteq,
3460 nsupseteqq: nsupseteqq,
3461 ntgl: ntgl,
3462 Ntilde: Ntilde,
3463 ntilde: ntilde,
3464 ntlg: ntlg,
3465 ntriangleleft: ntriangleleft,
3466 ntrianglelefteq: ntrianglelefteq,
3467 ntriangleright: ntriangleright,
3468 ntrianglerighteq: ntrianglerighteq,
3469 Nu: Nu,
3470 nu: nu,
3471 num: num,
3472 numero: numero,
3473 numsp: numsp,
3474 nvap: nvap,
3475 nvdash: nvdash,
3476 nvDash: nvDash,
3477 nVdash: nVdash,
3478 nVDash: nVDash,
3479 nvge: nvge,
3480 nvgt: nvgt,
3481 nvHarr: nvHarr,
3482 nvinfin: nvinfin,
3483 nvlArr: nvlArr,
3484 nvle: nvle,
3485 nvlt: nvlt,
3486 nvltrie: nvltrie,
3487 nvrArr: nvrArr,
3488 nvrtrie: nvrtrie,
3489 nvsim: nvsim,
3490 nwarhk: nwarhk,
3491 nwarr: nwarr,
3492 nwArr: nwArr,
3493 nwarrow: nwarrow,
3494 nwnear: nwnear,
3495 Oacute: Oacute,
3496 oacute: oacute,
3497 oast: oast,
3498 Ocirc: Ocirc,
3499 ocirc: ocirc,
3500 ocir: ocir,
3501 Ocy: Ocy,
3502 ocy: ocy,
3503 odash: odash,
3504 Odblac: Odblac,
3505 odblac: odblac,
3506 odiv: odiv,
3507 odot: odot,
3508 odsold: odsold,
3509 OElig: OElig,
3510 oelig: oelig,
3511 ofcir: ofcir,
3512 Ofr: Ofr,
3513 ofr: ofr,
3514 ogon: ogon,
3515 Ograve: Ograve,
3516 ograve: ograve,
3517 ogt: ogt,
3518 ohbar: ohbar,
3519 ohm: ohm,
3520 oint: oint,
3521 olarr: olarr,
3522 olcir: olcir,
3523 olcross: olcross,
3524 oline: oline,
3525 olt: olt,
3526 Omacr: Omacr,
3527 omacr: omacr,
3528 Omega: Omega,
3529 omega: omega,
3530 Omicron: Omicron,
3531 omicron: omicron,
3532 omid: omid,
3533 ominus: ominus,
3534 Oopf: Oopf,
3535 oopf: oopf,
3536 opar: opar,
3537 OpenCurlyDoubleQuote: OpenCurlyDoubleQuote,
3538 OpenCurlyQuote: OpenCurlyQuote,
3539 operp: operp,
3540 oplus: oplus,
3541 orarr: orarr,
3542 Or: Or,
3543 or: or,
3544 ord: ord,
3545 order: order,
3546 orderof: orderof,
3547 ordf: ordf,
3548 ordm: ordm,
3549 origof: origof,
3550 oror: oror,
3551 orslope: orslope,
3552 orv: orv,
3553 oS: oS,
3554 Oscr: Oscr,
3555 oscr: oscr,
3556 Oslash: Oslash,
3557 oslash: oslash,
3558 osol: osol,
3559 Otilde: Otilde,
3560 otilde: otilde,
3561 otimesas: otimesas,
3562 Otimes: Otimes,
3563 otimes: otimes,
3564 Ouml: Ouml,
3565 ouml: ouml,
3566 ovbar: ovbar,
3567 OverBar: OverBar,
3568 OverBrace: OverBrace,
3569 OverBracket: OverBracket,
3570 OverParenthesis: OverParenthesis,
3571 para: para,
3572 parallel: parallel,
3573 par: par,
3574 parsim: parsim,
3575 parsl: parsl,
3576 part: part,
3577 PartialD: PartialD,
3578 Pcy: Pcy,
3579 pcy: pcy,
3580 percnt: percnt,
3581 period: period,
3582 permil: permil,
3583 perp: perp,
3584 pertenk: pertenk,
3585 Pfr: Pfr,
3586 pfr: pfr,
3587 Phi: Phi,
3588 phi: phi,
3589 phiv: phiv,
3590 phmmat: phmmat,
3591 phone: phone,
3592 Pi: Pi,
3593 pi: pi,
3594 pitchfork: pitchfork,
3595 piv: piv,
3596 planck: planck,
3597 planckh: planckh,
3598 plankv: plankv,
3599 plusacir: plusacir,
3600 plusb: plusb,
3601 pluscir: pluscir,
3602 plus: plus,
3603 plusdo: plusdo,
3604 plusdu: plusdu,
3605 pluse: pluse,
3606 PlusMinus: PlusMinus,
3607 plusmn: plusmn,
3608 plussim: plussim,
3609 plustwo: plustwo,
3610 pm: pm,
3611 Poincareplane: Poincareplane,
3612 pointint: pointint,
3613 popf: popf,
3614 Popf: Popf,
3615 pound: pound,
3616 prap: prap,
3617 Pr: Pr,
3618 pr: pr,
3619 prcue: prcue,
3620 precapprox: precapprox,
3621 prec: prec,
3622 preccurlyeq: preccurlyeq,
3623 Precedes: Precedes,
3624 PrecedesEqual: PrecedesEqual,
3625 PrecedesSlantEqual: PrecedesSlantEqual,
3626 PrecedesTilde: PrecedesTilde,
3627 preceq: preceq,
3628 precnapprox: precnapprox,
3629 precneqq: precneqq,
3630 precnsim: precnsim,
3631 pre: pre,
3632 prE: prE,
3633 precsim: precsim,
3634 prime: prime,
3635 Prime: Prime,
3636 primes: primes,
3637 prnap: prnap,
3638 prnE: prnE,
3639 prnsim: prnsim,
3640 prod: prod,
3641 Product: Product,
3642 profalar: profalar,
3643 profline: profline,
3644 profsurf: profsurf,
3645 prop: prop,
3646 Proportional: Proportional,
3647 Proportion: Proportion,
3648 propto: propto,
3649 prsim: prsim,
3650 prurel: prurel,
3651 Pscr: Pscr,
3652 pscr: pscr,
3653 Psi: Psi,
3654 psi: psi,
3655 puncsp: puncsp,
3656 Qfr: Qfr,
3657 qfr: qfr,
3658 qint: qint,
3659 qopf: qopf,
3660 Qopf: Qopf,
3661 qprime: qprime,
3662 Qscr: Qscr,
3663 qscr: qscr,
3664 quaternions: quaternions,
3665 quatint: quatint,
3666 quest: quest,
3667 questeq: questeq,
3668 quot: quot,
3669 QUOT: QUOT,
3670 rAarr: rAarr,
3671 race: race,
3672 Racute: Racute,
3673 racute: racute,
3674 radic: radic,
3675 raemptyv: raemptyv,
3676 rang: rang,
3677 Rang: Rang,
3678 rangd: rangd,
3679 range: range,
3680 rangle: rangle,
3681 raquo: raquo,
3682 rarrap: rarrap,
3683 rarrb: rarrb,
3684 rarrbfs: rarrbfs,
3685 rarrc: rarrc,
3686 rarr: rarr,
3687 Rarr: Rarr,
3688 rArr: rArr,
3689 rarrfs: rarrfs,
3690 rarrhk: rarrhk,
3691 rarrlp: rarrlp,
3692 rarrpl: rarrpl,
3693 rarrsim: rarrsim,
3694 Rarrtl: Rarrtl,
3695 rarrtl: rarrtl,
3696 rarrw: rarrw,
3697 ratail: ratail,
3698 rAtail: rAtail,
3699 ratio: ratio,
3700 rationals: rationals,
3701 rbarr: rbarr,
3702 rBarr: rBarr,
3703 RBarr: RBarr,
3704 rbbrk: rbbrk,
3705 rbrace: rbrace,
3706 rbrack: rbrack,
3707 rbrke: rbrke,
3708 rbrksld: rbrksld,
3709 rbrkslu: rbrkslu,
3710 Rcaron: Rcaron,
3711 rcaron: rcaron,
3712 Rcedil: Rcedil,
3713 rcedil: rcedil,
3714 rceil: rceil,
3715 rcub: rcub,
3716 Rcy: Rcy,
3717 rcy: rcy,
3718 rdca: rdca,
3719 rdldhar: rdldhar,
3720 rdquo: rdquo,
3721 rdquor: rdquor,
3722 rdsh: rdsh,
3723 real: real,
3724 realine: realine,
3725 realpart: realpart,
3726 reals: reals,
3727 Re: Re,
3728 rect: rect,
3729 reg: reg,
3730 REG: REG,
3731 ReverseElement: ReverseElement,
3732 ReverseEquilibrium: ReverseEquilibrium,
3733 ReverseUpEquilibrium: ReverseUpEquilibrium,
3734 rfisht: rfisht,
3735 rfloor: rfloor,
3736 rfr: rfr,
3737 Rfr: Rfr,
3738 rHar: rHar,
3739 rhard: rhard,
3740 rharu: rharu,
3741 rharul: rharul,
3742 Rho: Rho,
3743 rho: rho,
3744 rhov: rhov,
3745 RightAngleBracket: RightAngleBracket,
3746 RightArrowBar: RightArrowBar,
3747 rightarrow: rightarrow,
3748 RightArrow: RightArrow,
3749 Rightarrow: Rightarrow,
3750 RightArrowLeftArrow: RightArrowLeftArrow,
3751 rightarrowtail: rightarrowtail,
3752 RightCeiling: RightCeiling,
3753 RightDoubleBracket: RightDoubleBracket,
3754 RightDownTeeVector: RightDownTeeVector,
3755 RightDownVectorBar: RightDownVectorBar,
3756 RightDownVector: RightDownVector,
3757 RightFloor: RightFloor,
3758 rightharpoondown: rightharpoondown,
3759 rightharpoonup: rightharpoonup,
3760 rightleftarrows: rightleftarrows,
3761 rightleftharpoons: rightleftharpoons,
3762 rightrightarrows: rightrightarrows,
3763 rightsquigarrow: rightsquigarrow,
3764 RightTeeArrow: RightTeeArrow,
3765 RightTee: RightTee,
3766 RightTeeVector: RightTeeVector,
3767 rightthreetimes: rightthreetimes,
3768 RightTriangleBar: RightTriangleBar,
3769 RightTriangle: RightTriangle,
3770 RightTriangleEqual: RightTriangleEqual,
3771 RightUpDownVector: RightUpDownVector,
3772 RightUpTeeVector: RightUpTeeVector,
3773 RightUpVectorBar: RightUpVectorBar,
3774 RightUpVector: RightUpVector,
3775 RightVectorBar: RightVectorBar,
3776 RightVector: RightVector,
3777 ring: ring,
3778 risingdotseq: risingdotseq,
3779 rlarr: rlarr,
3780 rlhar: rlhar,
3781 rlm: rlm,
3782 rmoustache: rmoustache,
3783 rmoust: rmoust,
3784 rnmid: rnmid,
3785 roang: roang,
3786 roarr: roarr,
3787 robrk: robrk,
3788 ropar: ropar,
3789 ropf: ropf,
3790 Ropf: Ropf,
3791 roplus: roplus,
3792 rotimes: rotimes,
3793 RoundImplies: RoundImplies,
3794 rpar: rpar,
3795 rpargt: rpargt,
3796 rppolint: rppolint,
3797 rrarr: rrarr,
3798 Rrightarrow: Rrightarrow,
3799 rsaquo: rsaquo,
3800 rscr: rscr,
3801 Rscr: Rscr,
3802 rsh: rsh,
3803 Rsh: Rsh,
3804 rsqb: rsqb,
3805 rsquo: rsquo,
3806 rsquor: rsquor,
3807 rthree: rthree,
3808 rtimes: rtimes,
3809 rtri: rtri,
3810 rtrie: rtrie,
3811 rtrif: rtrif,
3812 rtriltri: rtriltri,
3813 RuleDelayed: RuleDelayed,
3814 ruluhar: ruluhar,
3815 rx: rx,
3816 Sacute: Sacute,
3817 sacute: sacute,
3818 sbquo: sbquo,
3819 scap: scap,
3820 Scaron: Scaron,
3821 scaron: scaron,
3822 Sc: Sc,
3823 sc: sc,
3824 sccue: sccue,
3825 sce: sce,
3826 scE: scE,
3827 Scedil: Scedil,
3828 scedil: scedil,
3829 Scirc: Scirc,
3830 scirc: scirc,
3831 scnap: scnap,
3832 scnE: scnE,
3833 scnsim: scnsim,
3834 scpolint: scpolint,
3835 scsim: scsim,
3836 Scy: Scy,
3837 scy: scy,
3838 sdotb: sdotb,
3839 sdot: sdot,
3840 sdote: sdote,
3841 searhk: searhk,
3842 searr: searr,
3843 seArr: seArr,
3844 searrow: searrow,
3845 sect: sect,
3846 semi: semi,
3847 seswar: seswar,
3848 setminus: setminus,
3849 setmn: setmn,
3850 sext: sext,
3851 Sfr: Sfr,
3852 sfr: sfr,
3853 sfrown: sfrown,
3854 sharp: sharp,
3855 SHCHcy: SHCHcy,
3856 shchcy: shchcy,
3857 SHcy: SHcy,
3858 shcy: shcy,
3859 ShortDownArrow: ShortDownArrow,
3860 ShortLeftArrow: ShortLeftArrow,
3861 shortmid: shortmid,
3862 shortparallel: shortparallel,
3863 ShortRightArrow: ShortRightArrow,
3864 ShortUpArrow: ShortUpArrow,
3865 shy: shy,
3866 Sigma: Sigma,
3867 sigma: sigma,
3868 sigmaf: sigmaf,
3869 sigmav: sigmav,
3870 sim: sim,
3871 simdot: simdot,
3872 sime: sime,
3873 simeq: simeq,
3874 simg: simg,
3875 simgE: simgE,
3876 siml: siml,
3877 simlE: simlE,
3878 simne: simne,
3879 simplus: simplus,
3880 simrarr: simrarr,
3881 slarr: slarr,
3882 SmallCircle: SmallCircle,
3883 smallsetminus: smallsetminus,
3884 smashp: smashp,
3885 smeparsl: smeparsl,
3886 smid: smid,
3887 smile: smile,
3888 smt: smt,
3889 smte: smte,
3890 smtes: smtes,
3891 SOFTcy: SOFTcy,
3892 softcy: softcy,
3893 solbar: solbar,
3894 solb: solb,
3895 sol: sol,
3896 Sopf: Sopf,
3897 sopf: sopf,
3898 spades: spades,
3899 spadesuit: spadesuit,
3900 spar: spar,
3901 sqcap: sqcap,
3902 sqcaps: sqcaps,
3903 sqcup: sqcup,
3904 sqcups: sqcups,
3905 Sqrt: Sqrt,
3906 sqsub: sqsub,
3907 sqsube: sqsube,
3908 sqsubset: sqsubset,
3909 sqsubseteq: sqsubseteq,
3910 sqsup: sqsup,
3911 sqsupe: sqsupe,
3912 sqsupset: sqsupset,
3913 sqsupseteq: sqsupseteq,
3914 square: square,
3915 Square: Square,
3916 SquareIntersection: SquareIntersection,
3917 SquareSubset: SquareSubset,
3918 SquareSubsetEqual: SquareSubsetEqual,
3919 SquareSuperset: SquareSuperset,
3920 SquareSupersetEqual: SquareSupersetEqual,
3921 SquareUnion: SquareUnion,
3922 squarf: squarf,
3923 squ: squ,
3924 squf: squf,
3925 srarr: srarr,
3926 Sscr: Sscr,
3927 sscr: sscr,
3928 ssetmn: ssetmn,
3929 ssmile: ssmile,
3930 sstarf: sstarf,
3931 Star: Star,
3932 star: star,
3933 starf: starf,
3934 straightepsilon: straightepsilon,
3935 straightphi: straightphi,
3936 strns: strns,
3937 sub: sub,
3938 Sub: Sub,
3939 subdot: subdot,
3940 subE: subE,
3941 sube: sube,
3942 subedot: subedot,
3943 submult: submult,
3944 subnE: subnE,
3945 subne: subne,
3946 subplus: subplus,
3947 subrarr: subrarr,
3948 subset: subset,
3949 Subset: Subset,
3950 subseteq: subseteq,
3951 subseteqq: subseteqq,
3952 SubsetEqual: SubsetEqual,
3953 subsetneq: subsetneq,
3954 subsetneqq: subsetneqq,
3955 subsim: subsim,
3956 subsub: subsub,
3957 subsup: subsup,
3958 succapprox: succapprox,
3959 succ: succ,
3960 succcurlyeq: succcurlyeq,
3961 Succeeds: Succeeds,
3962 SucceedsEqual: SucceedsEqual,
3963 SucceedsSlantEqual: SucceedsSlantEqual,
3964 SucceedsTilde: SucceedsTilde,
3965 succeq: succeq,
3966 succnapprox: succnapprox,
3967 succneqq: succneqq,
3968 succnsim: succnsim,
3969 succsim: succsim,
3970 SuchThat: SuchThat,
3971 sum: sum,
3972 Sum: Sum,
3973 sung: sung,
3974 sup1: sup1,
3975 sup2: sup2,
3976 sup3: sup3,
3977 sup: sup,
3978 Sup: Sup,
3979 supdot: supdot,
3980 supdsub: supdsub,
3981 supE: supE,
3982 supe: supe,
3983 supedot: supedot,
3984 Superset: Superset,
3985 SupersetEqual: SupersetEqual,
3986 suphsol: suphsol,
3987 suphsub: suphsub,
3988 suplarr: suplarr,
3989 supmult: supmult,
3990 supnE: supnE,
3991 supne: supne,
3992 supplus: supplus,
3993 supset: supset,
3994 Supset: Supset,
3995 supseteq: supseteq,
3996 supseteqq: supseteqq,
3997 supsetneq: supsetneq,
3998 supsetneqq: supsetneqq,
3999 supsim: supsim,
4000 supsub: supsub,
4001 supsup: supsup,
4002 swarhk: swarhk,
4003 swarr: swarr,
4004 swArr: swArr,
4005 swarrow: swarrow,
4006 swnwar: swnwar,
4007 szlig: szlig,
4008 Tab: Tab,
4009 target: target,
4010 Tau: Tau,
4011 tau: tau,
4012 tbrk: tbrk,
4013 Tcaron: Tcaron,
4014 tcaron: tcaron,
4015 Tcedil: Tcedil,
4016 tcedil: tcedil,
4017 Tcy: Tcy,
4018 tcy: tcy,
4019 tdot: tdot,
4020 telrec: telrec,
4021 Tfr: Tfr,
4022 tfr: tfr,
4023 there4: there4,
4024 therefore: therefore,
4025 Therefore: Therefore,
4026 Theta: Theta,
4027 theta: theta,
4028 thetasym: thetasym,
4029 thetav: thetav,
4030 thickapprox: thickapprox,
4031 thicksim: thicksim,
4032 ThickSpace: ThickSpace,
4033 ThinSpace: ThinSpace,
4034 thinsp: thinsp,
4035 thkap: thkap,
4036 thksim: thksim,
4037 THORN: THORN,
4038 thorn: thorn,
4039 tilde: tilde,
4040 Tilde: Tilde,
4041 TildeEqual: TildeEqual,
4042 TildeFullEqual: TildeFullEqual,
4043 TildeTilde: TildeTilde,
4044 timesbar: timesbar,
4045 timesb: timesb,
4046 times: times,
4047 timesd: timesd,
4048 tint: tint,
4049 toea: toea,
4050 topbot: topbot,
4051 topcir: topcir,
4052 top: top,
4053 Topf: Topf,
4054 topf: topf,
4055 topfork: topfork,
4056 tosa: tosa,
4057 tprime: tprime,
4058 trade: trade,
4059 TRADE: TRADE,
4060 triangle: triangle,
4061 triangledown: triangledown,
4062 triangleleft: triangleleft,
4063 trianglelefteq: trianglelefteq,
4064 triangleq: triangleq,
4065 triangleright: triangleright,
4066 trianglerighteq: trianglerighteq,
4067 tridot: tridot,
4068 trie: trie,
4069 triminus: triminus,
4070 TripleDot: TripleDot,
4071 triplus: triplus,
4072 trisb: trisb,
4073 tritime: tritime,
4074 trpezium: trpezium,
4075 Tscr: Tscr,
4076 tscr: tscr,
4077 TScy: TScy,
4078 tscy: tscy,
4079 TSHcy: TSHcy,
4080 tshcy: tshcy,
4081 Tstrok: Tstrok,
4082 tstrok: tstrok,
4083 twixt: twixt,
4084 twoheadleftarrow: twoheadleftarrow,
4085 twoheadrightarrow: twoheadrightarrow,
4086 Uacute: Uacute,
4087 uacute: uacute,
4088 uarr: uarr,
4089 Uarr: Uarr,
4090 uArr: uArr,
4091 Uarrocir: Uarrocir,
4092 Ubrcy: Ubrcy,
4093 ubrcy: ubrcy,
4094 Ubreve: Ubreve,
4095 ubreve: ubreve,
4096 Ucirc: Ucirc,
4097 ucirc: ucirc,
4098 Ucy: Ucy,
4099 ucy: ucy,
4100 udarr: udarr,
4101 Udblac: Udblac,
4102 udblac: udblac,
4103 udhar: udhar,
4104 ufisht: ufisht,
4105 Ufr: Ufr,
4106 ufr: ufr,
4107 Ugrave: Ugrave,
4108 ugrave: ugrave,
4109 uHar: uHar,
4110 uharl: uharl,
4111 uharr: uharr,
4112 uhblk: uhblk,
4113 ulcorn: ulcorn,
4114 ulcorner: ulcorner,
4115 ulcrop: ulcrop,
4116 ultri: ultri,
4117 Umacr: Umacr,
4118 umacr: umacr,
4119 uml: uml,
4120 UnderBar: UnderBar,
4121 UnderBrace: UnderBrace,
4122 UnderBracket: UnderBracket,
4123 UnderParenthesis: UnderParenthesis,
4124 Union: Union,
4125 UnionPlus: UnionPlus,
4126 Uogon: Uogon,
4127 uogon: uogon,
4128 Uopf: Uopf,
4129 uopf: uopf,
4130 UpArrowBar: UpArrowBar,
4131 uparrow: uparrow,
4132 UpArrow: UpArrow,
4133 Uparrow: Uparrow,
4134 UpArrowDownArrow: UpArrowDownArrow,
4135 updownarrow: updownarrow,
4136 UpDownArrow: UpDownArrow,
4137 Updownarrow: Updownarrow,
4138 UpEquilibrium: UpEquilibrium,
4139 upharpoonleft: upharpoonleft,
4140 upharpoonright: upharpoonright,
4141 uplus: uplus,
4142 UpperLeftArrow: UpperLeftArrow,
4143 UpperRightArrow: UpperRightArrow,
4144 upsi: upsi,
4145 Upsi: Upsi,
4146 upsih: upsih,
4147 Upsilon: Upsilon,
4148 upsilon: upsilon,
4149 UpTeeArrow: UpTeeArrow,
4150 UpTee: UpTee,
4151 upuparrows: upuparrows,
4152 urcorn: urcorn,
4153 urcorner: urcorner,
4154 urcrop: urcrop,
4155 Uring: Uring,
4156 uring: uring,
4157 urtri: urtri,
4158 Uscr: Uscr,
4159 uscr: uscr,
4160 utdot: utdot,
4161 Utilde: Utilde,
4162 utilde: utilde,
4163 utri: utri,
4164 utrif: utrif,
4165 uuarr: uuarr,
4166 Uuml: Uuml,
4167 uuml: uuml,
4168 uwangle: uwangle,
4169 vangrt: vangrt,
4170 varepsilon: varepsilon,
4171 varkappa: varkappa,
4172 varnothing: varnothing,
4173 varphi: varphi,
4174 varpi: varpi,
4175 varpropto: varpropto,
4176 varr: varr,
4177 vArr: vArr,
4178 varrho: varrho,
4179 varsigma: varsigma,
4180 varsubsetneq: varsubsetneq,
4181 varsubsetneqq: varsubsetneqq,
4182 varsupsetneq: varsupsetneq,
4183 varsupsetneqq: varsupsetneqq,
4184 vartheta: vartheta,
4185 vartriangleleft: vartriangleleft,
4186 vartriangleright: vartriangleright,
4187 vBar: vBar,
4188 Vbar: Vbar,
4189 vBarv: vBarv,
4190 Vcy: Vcy,
4191 vcy: vcy,
4192 vdash: vdash,
4193 vDash: vDash,
4194 Vdash: Vdash,
4195 VDash: VDash,
4196 Vdashl: Vdashl,
4197 veebar: veebar,
4198 vee: vee,
4199 Vee: Vee,
4200 veeeq: veeeq,
4201 vellip: vellip,
4202 verbar: verbar,
4203 Verbar: Verbar,
4204 vert: vert,
4205 Vert: Vert,
4206 VerticalBar: VerticalBar,
4207 VerticalLine: VerticalLine,
4208 VerticalSeparator: VerticalSeparator,
4209 VerticalTilde: VerticalTilde,
4210 VeryThinSpace: VeryThinSpace,
4211 Vfr: Vfr,
4212 vfr: vfr,
4213 vltri: vltri,
4214 vnsub: vnsub,
4215 vnsup: vnsup,
4216 Vopf: Vopf,
4217 vopf: vopf,
4218 vprop: vprop,
4219 vrtri: vrtri,
4220 Vscr: Vscr,
4221 vscr: vscr,
4222 vsubnE: vsubnE,
4223 vsubne: vsubne,
4224 vsupnE: vsupnE,
4225 vsupne: vsupne,
4226 Vvdash: Vvdash,
4227 vzigzag: vzigzag,
4228 Wcirc: Wcirc,
4229 wcirc: wcirc,
4230 wedbar: wedbar,
4231 wedge: wedge,
4232 Wedge: Wedge,
4233 wedgeq: wedgeq,
4234 weierp: weierp,
4235 Wfr: Wfr,
4236 wfr: wfr,
4237 Wopf: Wopf,
4238 wopf: wopf,
4239 wp: wp,
4240 wr: wr,
4241 wreath: wreath,
4242 Wscr: Wscr,
4243 wscr: wscr,
4244 xcap: xcap,
4245 xcirc: xcirc,
4246 xcup: xcup,
4247 xdtri: xdtri,
4248 Xfr: Xfr,
4249 xfr: xfr,
4250 xharr: xharr,
4251 xhArr: xhArr,
4252 Xi: Xi,
4253 xi: xi,
4254 xlarr: xlarr,
4255 xlArr: xlArr,
4256 xmap: xmap,
4257 xnis: xnis,
4258 xodot: xodot,
4259 Xopf: Xopf,
4260 xopf: xopf,
4261 xoplus: xoplus,
4262 xotime: xotime,
4263 xrarr: xrarr,
4264 xrArr: xrArr,
4265 Xscr: Xscr,
4266 xscr: xscr,
4267 xsqcup: xsqcup,
4268 xuplus: xuplus,
4269 xutri: xutri,
4270 xvee: xvee,
4271 xwedge: xwedge,
4272 Yacute: Yacute,
4273 yacute: yacute,
4274 YAcy: YAcy,
4275 yacy: yacy,
4276 Ycirc: Ycirc,
4277 ycirc: ycirc,
4278 Ycy: Ycy,
4279 ycy: ycy,
4280 yen: yen,
4281 Yfr: Yfr,
4282 yfr: yfr,
4283 YIcy: YIcy,
4284 yicy: yicy,
4285 Yopf: Yopf,
4286 yopf: yopf,
4287 Yscr: Yscr,
4288 yscr: yscr,
4289 YUcy: YUcy,
4290 yucy: yucy,
4291 yuml: yuml,
4292 Yuml: Yuml,
4293 Zacute: Zacute,
4294 zacute: zacute,
4295 Zcaron: Zcaron,
4296 zcaron: zcaron,
4297 Zcy: Zcy,
4298 zcy: zcy,
4299 Zdot: Zdot,
4300 zdot: zdot,
4301 zeetrf: zeetrf,
4302 ZeroWidthSpace: ZeroWidthSpace,
4303 Zeta: Zeta,
4304 zeta: zeta,
4305 zfr: zfr,
4306 Zfr: Zfr,
4307 ZHcy: ZHcy,
4308 zhcy: zhcy,
4309 zigrarr: zigrarr,
4310 zopf: zopf,
4311 Zopf: Zopf,
4312 Zscr: Zscr,
4313 zscr: zscr,
4314 zwj: zwj,
4315 zwnj: zwnj
4316};
4317
4318var entities$1 = {
4319 __proto__: null,
4320 Aacute: Aacute,
4321 aacute: aacute,
4322 Abreve: Abreve,
4323 abreve: abreve,
4324 ac: ac,
4325 acd: acd,
4326 acE: acE,
4327 Acirc: Acirc,
4328 acirc: acirc,
4329 acute: acute,
4330 Acy: Acy,
4331 acy: acy,
4332 AElig: AElig,
4333 aelig: aelig,
4334 af: af,
4335 Afr: Afr,
4336 afr: afr,
4337 Agrave: Agrave,
4338 agrave: agrave,
4339 alefsym: alefsym,
4340 aleph: aleph,
4341 Alpha: Alpha,
4342 alpha: alpha,
4343 Amacr: Amacr,
4344 amacr: amacr,
4345 amalg: amalg,
4346 amp: amp,
4347 AMP: AMP,
4348 andand: andand,
4349 And: And,
4350 and: and,
4351 andd: andd,
4352 andslope: andslope,
4353 andv: andv,
4354 ang: ang,
4355 ange: ange,
4356 angle: angle,
4357 angmsdaa: angmsdaa,
4358 angmsdab: angmsdab,
4359 angmsdac: angmsdac,
4360 angmsdad: angmsdad,
4361 angmsdae: angmsdae,
4362 angmsdaf: angmsdaf,
4363 angmsdag: angmsdag,
4364 angmsdah: angmsdah,
4365 angmsd: angmsd,
4366 angrt: angrt,
4367 angrtvb: angrtvb,
4368 angrtvbd: angrtvbd,
4369 angsph: angsph,
4370 angst: angst,
4371 angzarr: angzarr,
4372 Aogon: Aogon,
4373 aogon: aogon,
4374 Aopf: Aopf,
4375 aopf: aopf,
4376 apacir: apacir,
4377 ap: ap,
4378 apE: apE,
4379 ape: ape,
4380 apid: apid,
4381 apos: apos,
4382 ApplyFunction: ApplyFunction,
4383 approx: approx,
4384 approxeq: approxeq,
4385 Aring: Aring,
4386 aring: aring,
4387 Ascr: Ascr,
4388 ascr: ascr,
4389 Assign: Assign,
4390 ast: ast,
4391 asymp: asymp,
4392 asympeq: asympeq,
4393 Atilde: Atilde,
4394 atilde: atilde,
4395 Auml: Auml,
4396 auml: auml,
4397 awconint: awconint,
4398 awint: awint,
4399 backcong: backcong,
4400 backepsilon: backepsilon,
4401 backprime: backprime,
4402 backsim: backsim,
4403 backsimeq: backsimeq,
4404 Backslash: Backslash,
4405 Barv: Barv,
4406 barvee: barvee,
4407 barwed: barwed,
4408 Barwed: Barwed,
4409 barwedge: barwedge,
4410 bbrk: bbrk,
4411 bbrktbrk: bbrktbrk,
4412 bcong: bcong,
4413 Bcy: Bcy,
4414 bcy: bcy,
4415 bdquo: bdquo,
4416 becaus: becaus,
4417 because: because,
4418 Because: Because,
4419 bemptyv: bemptyv,
4420 bepsi: bepsi,
4421 bernou: bernou,
4422 Bernoullis: Bernoullis,
4423 Beta: Beta,
4424 beta: beta,
4425 beth: beth,
4426 between: between,
4427 Bfr: Bfr,
4428 bfr: bfr,
4429 bigcap: bigcap,
4430 bigcirc: bigcirc,
4431 bigcup: bigcup,
4432 bigodot: bigodot,
4433 bigoplus: bigoplus,
4434 bigotimes: bigotimes,
4435 bigsqcup: bigsqcup,
4436 bigstar: bigstar,
4437 bigtriangledown: bigtriangledown,
4438 bigtriangleup: bigtriangleup,
4439 biguplus: biguplus,
4440 bigvee: bigvee,
4441 bigwedge: bigwedge,
4442 bkarow: bkarow,
4443 blacklozenge: blacklozenge,
4444 blacksquare: blacksquare,
4445 blacktriangle: blacktriangle,
4446 blacktriangledown: blacktriangledown,
4447 blacktriangleleft: blacktriangleleft,
4448 blacktriangleright: blacktriangleright,
4449 blank: blank,
4450 blk12: blk12,
4451 blk14: blk14,
4452 blk34: blk34,
4453 block: block,
4454 bne: bne,
4455 bnequiv: bnequiv,
4456 bNot: bNot,
4457 bnot: bnot,
4458 Bopf: Bopf,
4459 bopf: bopf,
4460 bot: bot,
4461 bottom: bottom,
4462 bowtie: bowtie,
4463 boxbox: boxbox,
4464 boxdl: boxdl,
4465 boxdL: boxdL,
4466 boxDl: boxDl,
4467 boxDL: boxDL,
4468 boxdr: boxdr,
4469 boxdR: boxdR,
4470 boxDr: boxDr,
4471 boxDR: boxDR,
4472 boxh: boxh,
4473 boxH: boxH,
4474 boxhd: boxhd,
4475 boxHd: boxHd,
4476 boxhD: boxhD,
4477 boxHD: boxHD,
4478 boxhu: boxhu,
4479 boxHu: boxHu,
4480 boxhU: boxhU,
4481 boxHU: boxHU,
4482 boxminus: boxminus,
4483 boxplus: boxplus,
4484 boxtimes: boxtimes,
4485 boxul: boxul,
4486 boxuL: boxuL,
4487 boxUl: boxUl,
4488 boxUL: boxUL,
4489 boxur: boxur,
4490 boxuR: boxuR,
4491 boxUr: boxUr,
4492 boxUR: boxUR,
4493 boxv: boxv,
4494 boxV: boxV,
4495 boxvh: boxvh,
4496 boxvH: boxvH,
4497 boxVh: boxVh,
4498 boxVH: boxVH,
4499 boxvl: boxvl,
4500 boxvL: boxvL,
4501 boxVl: boxVl,
4502 boxVL: boxVL,
4503 boxvr: boxvr,
4504 boxvR: boxvR,
4505 boxVr: boxVr,
4506 boxVR: boxVR,
4507 bprime: bprime,
4508 breve: breve,
4509 Breve: Breve,
4510 brvbar: brvbar,
4511 bscr: bscr,
4512 Bscr: Bscr,
4513 bsemi: bsemi,
4514 bsim: bsim,
4515 bsime: bsime,
4516 bsolb: bsolb,
4517 bsol: bsol,
4518 bsolhsub: bsolhsub,
4519 bull: bull,
4520 bullet: bullet,
4521 bump: bump,
4522 bumpE: bumpE,
4523 bumpe: bumpe,
4524 Bumpeq: Bumpeq,
4525 bumpeq: bumpeq,
4526 Cacute: Cacute,
4527 cacute: cacute,
4528 capand: capand,
4529 capbrcup: capbrcup,
4530 capcap: capcap,
4531 cap: cap,
4532 Cap: Cap,
4533 capcup: capcup,
4534 capdot: capdot,
4535 CapitalDifferentialD: CapitalDifferentialD,
4536 caps: caps,
4537 caret: caret,
4538 caron: caron,
4539 Cayleys: Cayleys,
4540 ccaps: ccaps,
4541 Ccaron: Ccaron,
4542 ccaron: ccaron,
4543 Ccedil: Ccedil,
4544 ccedil: ccedil,
4545 Ccirc: Ccirc,
4546 ccirc: ccirc,
4547 Cconint: Cconint,
4548 ccups: ccups,
4549 ccupssm: ccupssm,
4550 Cdot: Cdot,
4551 cdot: cdot,
4552 cedil: cedil,
4553 Cedilla: Cedilla,
4554 cemptyv: cemptyv,
4555 cent: cent,
4556 centerdot: centerdot,
4557 CenterDot: CenterDot,
4558 cfr: cfr,
4559 Cfr: Cfr,
4560 CHcy: CHcy,
4561 chcy: chcy,
4562 check: check,
4563 checkmark: checkmark,
4564 Chi: Chi,
4565 chi: chi,
4566 circ: circ,
4567 circeq: circeq,
4568 circlearrowleft: circlearrowleft,
4569 circlearrowright: circlearrowright,
4570 circledast: circledast,
4571 circledcirc: circledcirc,
4572 circleddash: circleddash,
4573 CircleDot: CircleDot,
4574 circledR: circledR,
4575 circledS: circledS,
4576 CircleMinus: CircleMinus,
4577 CirclePlus: CirclePlus,
4578 CircleTimes: CircleTimes,
4579 cir: cir,
4580 cirE: cirE,
4581 cire: cire,
4582 cirfnint: cirfnint,
4583 cirmid: cirmid,
4584 cirscir: cirscir,
4585 ClockwiseContourIntegral: ClockwiseContourIntegral,
4586 CloseCurlyDoubleQuote: CloseCurlyDoubleQuote,
4587 CloseCurlyQuote: CloseCurlyQuote,
4588 clubs: clubs,
4589 clubsuit: clubsuit,
4590 colon: colon,
4591 Colon: Colon,
4592 Colone: Colone,
4593 colone: colone,
4594 coloneq: coloneq,
4595 comma: comma,
4596 commat: commat,
4597 comp: comp,
4598 compfn: compfn,
4599 complement: complement,
4600 complexes: complexes,
4601 cong: cong,
4602 congdot: congdot,
4603 Congruent: Congruent,
4604 conint: conint,
4605 Conint: Conint,
4606 ContourIntegral: ContourIntegral,
4607 copf: copf,
4608 Copf: Copf,
4609 coprod: coprod,
4610 Coproduct: Coproduct,
4611 copy: copy,
4612 COPY: COPY,
4613 copysr: copysr,
4614 CounterClockwiseContourIntegral: CounterClockwiseContourIntegral,
4615 crarr: crarr,
4616 cross: cross,
4617 Cross: Cross,
4618 Cscr: Cscr,
4619 cscr: cscr,
4620 csub: csub,
4621 csube: csube,
4622 csup: csup,
4623 csupe: csupe,
4624 ctdot: ctdot,
4625 cudarrl: cudarrl,
4626 cudarrr: cudarrr,
4627 cuepr: cuepr,
4628 cuesc: cuesc,
4629 cularr: cularr,
4630 cularrp: cularrp,
4631 cupbrcap: cupbrcap,
4632 cupcap: cupcap,
4633 CupCap: CupCap,
4634 cup: cup,
4635 Cup: Cup,
4636 cupcup: cupcup,
4637 cupdot: cupdot,
4638 cupor: cupor,
4639 cups: cups,
4640 curarr: curarr,
4641 curarrm: curarrm,
4642 curlyeqprec: curlyeqprec,
4643 curlyeqsucc: curlyeqsucc,
4644 curlyvee: curlyvee,
4645 curlywedge: curlywedge,
4646 curren: curren,
4647 curvearrowleft: curvearrowleft,
4648 curvearrowright: curvearrowright,
4649 cuvee: cuvee,
4650 cuwed: cuwed,
4651 cwconint: cwconint,
4652 cwint: cwint,
4653 cylcty: cylcty,
4654 dagger: dagger,
4655 Dagger: Dagger,
4656 daleth: daleth,
4657 darr: darr,
4658 Darr: Darr,
4659 dArr: dArr,
4660 dash: dash,
4661 Dashv: Dashv,
4662 dashv: dashv,
4663 dbkarow: dbkarow,
4664 dblac: dblac,
4665 Dcaron: Dcaron,
4666 dcaron: dcaron,
4667 Dcy: Dcy,
4668 dcy: dcy,
4669 ddagger: ddagger,
4670 ddarr: ddarr,
4671 DD: DD,
4672 dd: dd,
4673 DDotrahd: DDotrahd,
4674 ddotseq: ddotseq,
4675 deg: deg,
4676 Del: Del,
4677 Delta: Delta,
4678 delta: delta,
4679 demptyv: demptyv,
4680 dfisht: dfisht,
4681 Dfr: Dfr,
4682 dfr: dfr,
4683 dHar: dHar,
4684 dharl: dharl,
4685 dharr: dharr,
4686 DiacriticalAcute: DiacriticalAcute,
4687 DiacriticalDot: DiacriticalDot,
4688 DiacriticalDoubleAcute: DiacriticalDoubleAcute,
4689 DiacriticalGrave: DiacriticalGrave,
4690 DiacriticalTilde: DiacriticalTilde,
4691 diam: diam,
4692 diamond: diamond,
4693 Diamond: Diamond,
4694 diamondsuit: diamondsuit,
4695 diams: diams,
4696 die: die,
4697 DifferentialD: DifferentialD,
4698 digamma: digamma,
4699 disin: disin,
4700 div: div,
4701 divide: divide,
4702 divideontimes: divideontimes,
4703 divonx: divonx,
4704 DJcy: DJcy,
4705 djcy: djcy,
4706 dlcorn: dlcorn,
4707 dlcrop: dlcrop,
4708 dollar: dollar,
4709 Dopf: Dopf,
4710 dopf: dopf,
4711 Dot: Dot,
4712 dot: dot,
4713 DotDot: DotDot,
4714 doteq: doteq,
4715 doteqdot: doteqdot,
4716 DotEqual: DotEqual,
4717 dotminus: dotminus,
4718 dotplus: dotplus,
4719 dotsquare: dotsquare,
4720 doublebarwedge: doublebarwedge,
4721 DoubleContourIntegral: DoubleContourIntegral,
4722 DoubleDot: DoubleDot,
4723 DoubleDownArrow: DoubleDownArrow,
4724 DoubleLeftArrow: DoubleLeftArrow,
4725 DoubleLeftRightArrow: DoubleLeftRightArrow,
4726 DoubleLeftTee: DoubleLeftTee,
4727 DoubleLongLeftArrow: DoubleLongLeftArrow,
4728 DoubleLongLeftRightArrow: DoubleLongLeftRightArrow,
4729 DoubleLongRightArrow: DoubleLongRightArrow,
4730 DoubleRightArrow: DoubleRightArrow,
4731 DoubleRightTee: DoubleRightTee,
4732 DoubleUpArrow: DoubleUpArrow,
4733 DoubleUpDownArrow: DoubleUpDownArrow,
4734 DoubleVerticalBar: DoubleVerticalBar,
4735 DownArrowBar: DownArrowBar,
4736 downarrow: downarrow,
4737 DownArrow: DownArrow,
4738 Downarrow: Downarrow,
4739 DownArrowUpArrow: DownArrowUpArrow,
4740 DownBreve: DownBreve,
4741 downdownarrows: downdownarrows,
4742 downharpoonleft: downharpoonleft,
4743 downharpoonright: downharpoonright,
4744 DownLeftRightVector: DownLeftRightVector,
4745 DownLeftTeeVector: DownLeftTeeVector,
4746 DownLeftVectorBar: DownLeftVectorBar,
4747 DownLeftVector: DownLeftVector,
4748 DownRightTeeVector: DownRightTeeVector,
4749 DownRightVectorBar: DownRightVectorBar,
4750 DownRightVector: DownRightVector,
4751 DownTeeArrow: DownTeeArrow,
4752 DownTee: DownTee,
4753 drbkarow: drbkarow,
4754 drcorn: drcorn,
4755 drcrop: drcrop,
4756 Dscr: Dscr,
4757 dscr: dscr,
4758 DScy: DScy,
4759 dscy: dscy,
4760 dsol: dsol,
4761 Dstrok: Dstrok,
4762 dstrok: dstrok,
4763 dtdot: dtdot,
4764 dtri: dtri,
4765 dtrif: dtrif,
4766 duarr: duarr,
4767 duhar: duhar,
4768 dwangle: dwangle,
4769 DZcy: DZcy,
4770 dzcy: dzcy,
4771 dzigrarr: dzigrarr,
4772 Eacute: Eacute,
4773 eacute: eacute,
4774 easter: easter,
4775 Ecaron: Ecaron,
4776 ecaron: ecaron,
4777 Ecirc: Ecirc,
4778 ecirc: ecirc,
4779 ecir: ecir,
4780 ecolon: ecolon,
4781 Ecy: Ecy,
4782 ecy: ecy,
4783 eDDot: eDDot,
4784 Edot: Edot,
4785 edot: edot,
4786 eDot: eDot,
4787 ee: ee,
4788 efDot: efDot,
4789 Efr: Efr,
4790 efr: efr,
4791 eg: eg,
4792 Egrave: Egrave,
4793 egrave: egrave,
4794 egs: egs,
4795 egsdot: egsdot,
4796 el: el,
4797 Element: Element,
4798 elinters: elinters,
4799 ell: ell,
4800 els: els,
4801 elsdot: elsdot,
4802 Emacr: Emacr,
4803 emacr: emacr,
4804 empty: empty,
4805 emptyset: emptyset,
4806 EmptySmallSquare: EmptySmallSquare,
4807 emptyv: emptyv,
4808 EmptyVerySmallSquare: EmptyVerySmallSquare,
4809 emsp13: emsp13,
4810 emsp14: emsp14,
4811 emsp: emsp,
4812 ENG: ENG,
4813 eng: eng,
4814 ensp: ensp,
4815 Eogon: Eogon,
4816 eogon: eogon,
4817 Eopf: Eopf,
4818 eopf: eopf,
4819 epar: epar,
4820 eparsl: eparsl,
4821 eplus: eplus,
4822 epsi: epsi,
4823 Epsilon: Epsilon,
4824 epsilon: epsilon,
4825 epsiv: epsiv,
4826 eqcirc: eqcirc,
4827 eqcolon: eqcolon,
4828 eqsim: eqsim,
4829 eqslantgtr: eqslantgtr,
4830 eqslantless: eqslantless,
4831 Equal: Equal,
4832 equals: equals,
4833 EqualTilde: EqualTilde,
4834 equest: equest,
4835 Equilibrium: Equilibrium,
4836 equiv: equiv,
4837 equivDD: equivDD,
4838 eqvparsl: eqvparsl,
4839 erarr: erarr,
4840 erDot: erDot,
4841 escr: escr,
4842 Escr: Escr,
4843 esdot: esdot,
4844 Esim: Esim,
4845 esim: esim,
4846 Eta: Eta,
4847 eta: eta,
4848 ETH: ETH,
4849 eth: eth,
4850 Euml: Euml,
4851 euml: euml,
4852 euro: euro,
4853 excl: excl,
4854 exist: exist,
4855 Exists: Exists,
4856 expectation: expectation,
4857 exponentiale: exponentiale,
4858 ExponentialE: ExponentialE,
4859 fallingdotseq: fallingdotseq,
4860 Fcy: Fcy,
4861 fcy: fcy,
4862 female: female,
4863 ffilig: ffilig,
4864 fflig: fflig,
4865 ffllig: ffllig,
4866 Ffr: Ffr,
4867 ffr: ffr,
4868 filig: filig,
4869 FilledSmallSquare: FilledSmallSquare,
4870 FilledVerySmallSquare: FilledVerySmallSquare,
4871 fjlig: fjlig,
4872 flat: flat,
4873 fllig: fllig,
4874 fltns: fltns,
4875 fnof: fnof,
4876 Fopf: Fopf,
4877 fopf: fopf,
4878 forall: forall,
4879 ForAll: ForAll,
4880 fork: fork,
4881 forkv: forkv,
4882 Fouriertrf: Fouriertrf,
4883 fpartint: fpartint,
4884 frac12: frac12,
4885 frac13: frac13,
4886 frac14: frac14,
4887 frac15: frac15,
4888 frac16: frac16,
4889 frac18: frac18,
4890 frac23: frac23,
4891 frac25: frac25,
4892 frac34: frac34,
4893 frac35: frac35,
4894 frac38: frac38,
4895 frac45: frac45,
4896 frac56: frac56,
4897 frac58: frac58,
4898 frac78: frac78,
4899 frasl: frasl,
4900 frown: frown,
4901 fscr: fscr,
4902 Fscr: Fscr,
4903 gacute: gacute,
4904 Gamma: Gamma,
4905 gamma: gamma,
4906 Gammad: Gammad,
4907 gammad: gammad,
4908 gap: gap,
4909 Gbreve: Gbreve,
4910 gbreve: gbreve,
4911 Gcedil: Gcedil,
4912 Gcirc: Gcirc,
4913 gcirc: gcirc,
4914 Gcy: Gcy,
4915 gcy: gcy,
4916 Gdot: Gdot,
4917 gdot: gdot,
4918 ge: ge,
4919 gE: gE,
4920 gEl: gEl,
4921 gel: gel,
4922 geq: geq,
4923 geqq: geqq,
4924 geqslant: geqslant,
4925 gescc: gescc,
4926 ges: ges,
4927 gesdot: gesdot,
4928 gesdoto: gesdoto,
4929 gesdotol: gesdotol,
4930 gesl: gesl,
4931 gesles: gesles,
4932 Gfr: Gfr,
4933 gfr: gfr,
4934 gg: gg,
4935 Gg: Gg,
4936 ggg: ggg,
4937 gimel: gimel,
4938 GJcy: GJcy,
4939 gjcy: gjcy,
4940 gla: gla,
4941 gl: gl,
4942 glE: glE,
4943 glj: glj,
4944 gnap: gnap,
4945 gnapprox: gnapprox,
4946 gne: gne,
4947 gnE: gnE,
4948 gneq: gneq,
4949 gneqq: gneqq,
4950 gnsim: gnsim,
4951 Gopf: Gopf,
4952 gopf: gopf,
4953 grave: grave,
4954 GreaterEqual: GreaterEqual,
4955 GreaterEqualLess: GreaterEqualLess,
4956 GreaterFullEqual: GreaterFullEqual,
4957 GreaterGreater: GreaterGreater,
4958 GreaterLess: GreaterLess,
4959 GreaterSlantEqual: GreaterSlantEqual,
4960 GreaterTilde: GreaterTilde,
4961 Gscr: Gscr,
4962 gscr: gscr,
4963 gsim: gsim,
4964 gsime: gsime,
4965 gsiml: gsiml,
4966 gtcc: gtcc,
4967 gtcir: gtcir,
4968 gt: gt,
4969 GT: GT,
4970 Gt: Gt,
4971 gtdot: gtdot,
4972 gtlPar: gtlPar,
4973 gtquest: gtquest,
4974 gtrapprox: gtrapprox,
4975 gtrarr: gtrarr,
4976 gtrdot: gtrdot,
4977 gtreqless: gtreqless,
4978 gtreqqless: gtreqqless,
4979 gtrless: gtrless,
4980 gtrsim: gtrsim,
4981 gvertneqq: gvertneqq,
4982 gvnE: gvnE,
4983 Hacek: Hacek,
4984 hairsp: hairsp,
4985 half: half,
4986 hamilt: hamilt,
4987 HARDcy: HARDcy,
4988 hardcy: hardcy,
4989 harrcir: harrcir,
4990 harr: harr,
4991 hArr: hArr,
4992 harrw: harrw,
4993 Hat: Hat,
4994 hbar: hbar,
4995 Hcirc: Hcirc,
4996 hcirc: hcirc,
4997 hearts: hearts,
4998 heartsuit: heartsuit,
4999 hellip: hellip,
5000 hercon: hercon,
5001 hfr: hfr,
5002 Hfr: Hfr,
5003 HilbertSpace: HilbertSpace,
5004 hksearow: hksearow,
5005 hkswarow: hkswarow,
5006 hoarr: hoarr,
5007 homtht: homtht,
5008 hookleftarrow: hookleftarrow,
5009 hookrightarrow: hookrightarrow,
5010 hopf: hopf,
5011 Hopf: Hopf,
5012 horbar: horbar,
5013 HorizontalLine: HorizontalLine,
5014 hscr: hscr,
5015 Hscr: Hscr,
5016 hslash: hslash,
5017 Hstrok: Hstrok,
5018 hstrok: hstrok,
5019 HumpDownHump: HumpDownHump,
5020 HumpEqual: HumpEqual,
5021 hybull: hybull,
5022 hyphen: hyphen,
5023 Iacute: Iacute,
5024 iacute: iacute,
5025 ic: ic,
5026 Icirc: Icirc,
5027 icirc: icirc,
5028 Icy: Icy,
5029 icy: icy,
5030 Idot: Idot,
5031 IEcy: IEcy,
5032 iecy: iecy,
5033 iexcl: iexcl,
5034 iff: iff,
5035 ifr: ifr,
5036 Ifr: Ifr,
5037 Igrave: Igrave,
5038 igrave: igrave,
5039 ii: ii,
5040 iiiint: iiiint,
5041 iiint: iiint,
5042 iinfin: iinfin,
5043 iiota: iiota,
5044 IJlig: IJlig,
5045 ijlig: ijlig,
5046 Imacr: Imacr,
5047 imacr: imacr,
5048 image: image,
5049 ImaginaryI: ImaginaryI,
5050 imagline: imagline,
5051 imagpart: imagpart,
5052 imath: imath,
5053 Im: Im,
5054 imof: imof,
5055 imped: imped,
5056 Implies: Implies,
5057 incare: incare,
5058 infin: infin,
5059 infintie: infintie,
5060 inodot: inodot,
5061 intcal: intcal,
5062 int: int,
5063 Int: Int,
5064 integers: integers,
5065 Integral: Integral,
5066 intercal: intercal,
5067 Intersection: Intersection,
5068 intlarhk: intlarhk,
5069 intprod: intprod,
5070 InvisibleComma: InvisibleComma,
5071 InvisibleTimes: InvisibleTimes,
5072 IOcy: IOcy,
5073 iocy: iocy,
5074 Iogon: Iogon,
5075 iogon: iogon,
5076 Iopf: Iopf,
5077 iopf: iopf,
5078 Iota: Iota,
5079 iota: iota,
5080 iprod: iprod,
5081 iquest: iquest,
5082 iscr: iscr,
5083 Iscr: Iscr,
5084 isin: isin,
5085 isindot: isindot,
5086 isinE: isinE,
5087 isins: isins,
5088 isinsv: isinsv,
5089 isinv: isinv,
5090 it: it,
5091 Itilde: Itilde,
5092 itilde: itilde,
5093 Iukcy: Iukcy,
5094 iukcy: iukcy,
5095 Iuml: Iuml,
5096 iuml: iuml,
5097 Jcirc: Jcirc,
5098 jcirc: jcirc,
5099 Jcy: Jcy,
5100 jcy: jcy,
5101 Jfr: Jfr,
5102 jfr: jfr,
5103 jmath: jmath,
5104 Jopf: Jopf,
5105 jopf: jopf,
5106 Jscr: Jscr,
5107 jscr: jscr,
5108 Jsercy: Jsercy,
5109 jsercy: jsercy,
5110 Jukcy: Jukcy,
5111 jukcy: jukcy,
5112 Kappa: Kappa,
5113 kappa: kappa,
5114 kappav: kappav,
5115 Kcedil: Kcedil,
5116 kcedil: kcedil,
5117 Kcy: Kcy,
5118 kcy: kcy,
5119 Kfr: Kfr,
5120 kfr: kfr,
5121 kgreen: kgreen,
5122 KHcy: KHcy,
5123 khcy: khcy,
5124 KJcy: KJcy,
5125 kjcy: kjcy,
5126 Kopf: Kopf,
5127 kopf: kopf,
5128 Kscr: Kscr,
5129 kscr: kscr,
5130 lAarr: lAarr,
5131 Lacute: Lacute,
5132 lacute: lacute,
5133 laemptyv: laemptyv,
5134 lagran: lagran,
5135 Lambda: Lambda,
5136 lambda: lambda,
5137 lang: lang,
5138 Lang: Lang,
5139 langd: langd,
5140 langle: langle,
5141 lap: lap,
5142 Laplacetrf: Laplacetrf,
5143 laquo: laquo,
5144 larrb: larrb,
5145 larrbfs: larrbfs,
5146 larr: larr,
5147 Larr: Larr,
5148 lArr: lArr,
5149 larrfs: larrfs,
5150 larrhk: larrhk,
5151 larrlp: larrlp,
5152 larrpl: larrpl,
5153 larrsim: larrsim,
5154 larrtl: larrtl,
5155 latail: latail,
5156 lAtail: lAtail,
5157 lat: lat,
5158 late: late,
5159 lates: lates,
5160 lbarr: lbarr,
5161 lBarr: lBarr,
5162 lbbrk: lbbrk,
5163 lbrace: lbrace,
5164 lbrack: lbrack,
5165 lbrke: lbrke,
5166 lbrksld: lbrksld,
5167 lbrkslu: lbrkslu,
5168 Lcaron: Lcaron,
5169 lcaron: lcaron,
5170 Lcedil: Lcedil,
5171 lcedil: lcedil,
5172 lceil: lceil,
5173 lcub: lcub,
5174 Lcy: Lcy,
5175 lcy: lcy,
5176 ldca: ldca,
5177 ldquo: ldquo,
5178 ldquor: ldquor,
5179 ldrdhar: ldrdhar,
5180 ldrushar: ldrushar,
5181 ldsh: ldsh,
5182 le: le,
5183 lE: lE,
5184 LeftAngleBracket: LeftAngleBracket,
5185 LeftArrowBar: LeftArrowBar,
5186 leftarrow: leftarrow,
5187 LeftArrow: LeftArrow,
5188 Leftarrow: Leftarrow,
5189 LeftArrowRightArrow: LeftArrowRightArrow,
5190 leftarrowtail: leftarrowtail,
5191 LeftCeiling: LeftCeiling,
5192 LeftDoubleBracket: LeftDoubleBracket,
5193 LeftDownTeeVector: LeftDownTeeVector,
5194 LeftDownVectorBar: LeftDownVectorBar,
5195 LeftDownVector: LeftDownVector,
5196 LeftFloor: LeftFloor,
5197 leftharpoondown: leftharpoondown,
5198 leftharpoonup: leftharpoonup,
5199 leftleftarrows: leftleftarrows,
5200 leftrightarrow: leftrightarrow,
5201 LeftRightArrow: LeftRightArrow,
5202 Leftrightarrow: Leftrightarrow,
5203 leftrightarrows: leftrightarrows,
5204 leftrightharpoons: leftrightharpoons,
5205 leftrightsquigarrow: leftrightsquigarrow,
5206 LeftRightVector: LeftRightVector,
5207 LeftTeeArrow: LeftTeeArrow,
5208 LeftTee: LeftTee,
5209 LeftTeeVector: LeftTeeVector,
5210 leftthreetimes: leftthreetimes,
5211 LeftTriangleBar: LeftTriangleBar,
5212 LeftTriangle: LeftTriangle,
5213 LeftTriangleEqual: LeftTriangleEqual,
5214 LeftUpDownVector: LeftUpDownVector,
5215 LeftUpTeeVector: LeftUpTeeVector,
5216 LeftUpVectorBar: LeftUpVectorBar,
5217 LeftUpVector: LeftUpVector,
5218 LeftVectorBar: LeftVectorBar,
5219 LeftVector: LeftVector,
5220 lEg: lEg,
5221 leg: leg,
5222 leq: leq,
5223 leqq: leqq,
5224 leqslant: leqslant,
5225 lescc: lescc,
5226 les: les,
5227 lesdot: lesdot,
5228 lesdoto: lesdoto,
5229 lesdotor: lesdotor,
5230 lesg: lesg,
5231 lesges: lesges,
5232 lessapprox: lessapprox,
5233 lessdot: lessdot,
5234 lesseqgtr: lesseqgtr,
5235 lesseqqgtr: lesseqqgtr,
5236 LessEqualGreater: LessEqualGreater,
5237 LessFullEqual: LessFullEqual,
5238 LessGreater: LessGreater,
5239 lessgtr: lessgtr,
5240 LessLess: LessLess,
5241 lesssim: lesssim,
5242 LessSlantEqual: LessSlantEqual,
5243 LessTilde: LessTilde,
5244 lfisht: lfisht,
5245 lfloor: lfloor,
5246 Lfr: Lfr,
5247 lfr: lfr,
5248 lg: lg,
5249 lgE: lgE,
5250 lHar: lHar,
5251 lhard: lhard,
5252 lharu: lharu,
5253 lharul: lharul,
5254 lhblk: lhblk,
5255 LJcy: LJcy,
5256 ljcy: ljcy,
5257 llarr: llarr,
5258 ll: ll,
5259 Ll: Ll,
5260 llcorner: llcorner,
5261 Lleftarrow: Lleftarrow,
5262 llhard: llhard,
5263 lltri: lltri,
5264 Lmidot: Lmidot,
5265 lmidot: lmidot,
5266 lmoustache: lmoustache,
5267 lmoust: lmoust,
5268 lnap: lnap,
5269 lnapprox: lnapprox,
5270 lne: lne,
5271 lnE: lnE,
5272 lneq: lneq,
5273 lneqq: lneqq,
5274 lnsim: lnsim,
5275 loang: loang,
5276 loarr: loarr,
5277 lobrk: lobrk,
5278 longleftarrow: longleftarrow,
5279 LongLeftArrow: LongLeftArrow,
5280 Longleftarrow: Longleftarrow,
5281 longleftrightarrow: longleftrightarrow,
5282 LongLeftRightArrow: LongLeftRightArrow,
5283 Longleftrightarrow: Longleftrightarrow,
5284 longmapsto: longmapsto,
5285 longrightarrow: longrightarrow,
5286 LongRightArrow: LongRightArrow,
5287 Longrightarrow: Longrightarrow,
5288 looparrowleft: looparrowleft,
5289 looparrowright: looparrowright,
5290 lopar: lopar,
5291 Lopf: Lopf,
5292 lopf: lopf,
5293 loplus: loplus,
5294 lotimes: lotimes,
5295 lowast: lowast,
5296 lowbar: lowbar,
5297 LowerLeftArrow: LowerLeftArrow,
5298 LowerRightArrow: LowerRightArrow,
5299 loz: loz,
5300 lozenge: lozenge,
5301 lozf: lozf,
5302 lpar: lpar,
5303 lparlt: lparlt,
5304 lrarr: lrarr,
5305 lrcorner: lrcorner,
5306 lrhar: lrhar,
5307 lrhard: lrhard,
5308 lrm: lrm,
5309 lrtri: lrtri,
5310 lsaquo: lsaquo,
5311 lscr: lscr,
5312 Lscr: Lscr,
5313 lsh: lsh,
5314 Lsh: Lsh,
5315 lsim: lsim,
5316 lsime: lsime,
5317 lsimg: lsimg,
5318 lsqb: lsqb,
5319 lsquo: lsquo,
5320 lsquor: lsquor,
5321 Lstrok: Lstrok,
5322 lstrok: lstrok,
5323 ltcc: ltcc,
5324 ltcir: ltcir,
5325 lt: lt,
5326 LT: LT,
5327 Lt: Lt,
5328 ltdot: ltdot,
5329 lthree: lthree,
5330 ltimes: ltimes,
5331 ltlarr: ltlarr,
5332 ltquest: ltquest,
5333 ltri: ltri,
5334 ltrie: ltrie,
5335 ltrif: ltrif,
5336 ltrPar: ltrPar,
5337 lurdshar: lurdshar,
5338 luruhar: luruhar,
5339 lvertneqq: lvertneqq,
5340 lvnE: lvnE,
5341 macr: macr,
5342 male: male,
5343 malt: malt,
5344 maltese: maltese,
5345 map: map,
5346 mapsto: mapsto,
5347 mapstodown: mapstodown,
5348 mapstoleft: mapstoleft,
5349 mapstoup: mapstoup,
5350 marker: marker,
5351 mcomma: mcomma,
5352 Mcy: Mcy,
5353 mcy: mcy,
5354 mdash: mdash,
5355 mDDot: mDDot,
5356 measuredangle: measuredangle,
5357 MediumSpace: MediumSpace,
5358 Mellintrf: Mellintrf,
5359 Mfr: Mfr,
5360 mfr: mfr,
5361 mho: mho,
5362 micro: micro,
5363 midast: midast,
5364 midcir: midcir,
5365 mid: mid,
5366 middot: middot,
5367 minusb: minusb,
5368 minus: minus,
5369 minusd: minusd,
5370 minusdu: minusdu,
5371 MinusPlus: MinusPlus,
5372 mlcp: mlcp,
5373 mldr: mldr,
5374 mnplus: mnplus,
5375 models: models,
5376 Mopf: Mopf,
5377 mopf: mopf,
5378 mp: mp,
5379 mscr: mscr,
5380 Mscr: Mscr,
5381 mstpos: mstpos,
5382 Mu: Mu,
5383 mu: mu,
5384 multimap: multimap,
5385 mumap: mumap,
5386 nabla: nabla,
5387 Nacute: Nacute,
5388 nacute: nacute,
5389 nang: nang,
5390 nap: nap,
5391 napE: napE,
5392 napid: napid,
5393 napos: napos,
5394 napprox: napprox,
5395 natural: natural,
5396 naturals: naturals,
5397 natur: natur,
5398 nbsp: nbsp,
5399 nbump: nbump,
5400 nbumpe: nbumpe,
5401 ncap: ncap,
5402 Ncaron: Ncaron,
5403 ncaron: ncaron,
5404 Ncedil: Ncedil,
5405 ncedil: ncedil,
5406 ncong: ncong,
5407 ncongdot: ncongdot,
5408 ncup: ncup,
5409 Ncy: Ncy,
5410 ncy: ncy,
5411 ndash: ndash,
5412 nearhk: nearhk,
5413 nearr: nearr,
5414 neArr: neArr,
5415 nearrow: nearrow,
5416 ne: ne,
5417 nedot: nedot,
5418 NegativeMediumSpace: NegativeMediumSpace,
5419 NegativeThickSpace: NegativeThickSpace,
5420 NegativeThinSpace: NegativeThinSpace,
5421 NegativeVeryThinSpace: NegativeVeryThinSpace,
5422 nequiv: nequiv,
5423 nesear: nesear,
5424 nesim: nesim,
5425 NestedGreaterGreater: NestedGreaterGreater,
5426 NestedLessLess: NestedLessLess,
5427 NewLine: NewLine,
5428 nexist: nexist,
5429 nexists: nexists,
5430 Nfr: Nfr,
5431 nfr: nfr,
5432 ngE: ngE,
5433 nge: nge,
5434 ngeq: ngeq,
5435 ngeqq: ngeqq,
5436 ngeqslant: ngeqslant,
5437 nges: nges,
5438 nGg: nGg,
5439 ngsim: ngsim,
5440 nGt: nGt,
5441 ngt: ngt,
5442 ngtr: ngtr,
5443 nGtv: nGtv,
5444 nharr: nharr,
5445 nhArr: nhArr,
5446 nhpar: nhpar,
5447 ni: ni,
5448 nis: nis,
5449 nisd: nisd,
5450 niv: niv,
5451 NJcy: NJcy,
5452 njcy: njcy,
5453 nlarr: nlarr,
5454 nlArr: nlArr,
5455 nldr: nldr,
5456 nlE: nlE,
5457 nle: nle,
5458 nleftarrow: nleftarrow,
5459 nLeftarrow: nLeftarrow,
5460 nleftrightarrow: nleftrightarrow,
5461 nLeftrightarrow: nLeftrightarrow,
5462 nleq: nleq,
5463 nleqq: nleqq,
5464 nleqslant: nleqslant,
5465 nles: nles,
5466 nless: nless,
5467 nLl: nLl,
5468 nlsim: nlsim,
5469 nLt: nLt,
5470 nlt: nlt,
5471 nltri: nltri,
5472 nltrie: nltrie,
5473 nLtv: nLtv,
5474 nmid: nmid,
5475 NoBreak: NoBreak,
5476 NonBreakingSpace: NonBreakingSpace,
5477 nopf: nopf,
5478 Nopf: Nopf,
5479 Not: Not,
5480 not: not,
5481 NotCongruent: NotCongruent,
5482 NotCupCap: NotCupCap,
5483 NotDoubleVerticalBar: NotDoubleVerticalBar,
5484 NotElement: NotElement,
5485 NotEqual: NotEqual,
5486 NotEqualTilde: NotEqualTilde,
5487 NotExists: NotExists,
5488 NotGreater: NotGreater,
5489 NotGreaterEqual: NotGreaterEqual,
5490 NotGreaterFullEqual: NotGreaterFullEqual,
5491 NotGreaterGreater: NotGreaterGreater,
5492 NotGreaterLess: NotGreaterLess,
5493 NotGreaterSlantEqual: NotGreaterSlantEqual,
5494 NotGreaterTilde: NotGreaterTilde,
5495 NotHumpDownHump: NotHumpDownHump,
5496 NotHumpEqual: NotHumpEqual,
5497 notin: notin,
5498 notindot: notindot,
5499 notinE: notinE,
5500 notinva: notinva,
5501 notinvb: notinvb,
5502 notinvc: notinvc,
5503 NotLeftTriangleBar: NotLeftTriangleBar,
5504 NotLeftTriangle: NotLeftTriangle,
5505 NotLeftTriangleEqual: NotLeftTriangleEqual,
5506 NotLess: NotLess,
5507 NotLessEqual: NotLessEqual,
5508 NotLessGreater: NotLessGreater,
5509 NotLessLess: NotLessLess,
5510 NotLessSlantEqual: NotLessSlantEqual,
5511 NotLessTilde: NotLessTilde,
5512 NotNestedGreaterGreater: NotNestedGreaterGreater,
5513 NotNestedLessLess: NotNestedLessLess,
5514 notni: notni,
5515 notniva: notniva,
5516 notnivb: notnivb,
5517 notnivc: notnivc,
5518 NotPrecedes: NotPrecedes,
5519 NotPrecedesEqual: NotPrecedesEqual,
5520 NotPrecedesSlantEqual: NotPrecedesSlantEqual,
5521 NotReverseElement: NotReverseElement,
5522 NotRightTriangleBar: NotRightTriangleBar,
5523 NotRightTriangle: NotRightTriangle,
5524 NotRightTriangleEqual: NotRightTriangleEqual,
5525 NotSquareSubset: NotSquareSubset,
5526 NotSquareSubsetEqual: NotSquareSubsetEqual,
5527 NotSquareSuperset: NotSquareSuperset,
5528 NotSquareSupersetEqual: NotSquareSupersetEqual,
5529 NotSubset: NotSubset,
5530 NotSubsetEqual: NotSubsetEqual,
5531 NotSucceeds: NotSucceeds,
5532 NotSucceedsEqual: NotSucceedsEqual,
5533 NotSucceedsSlantEqual: NotSucceedsSlantEqual,
5534 NotSucceedsTilde: NotSucceedsTilde,
5535 NotSuperset: NotSuperset,
5536 NotSupersetEqual: NotSupersetEqual,
5537 NotTilde: NotTilde,
5538 NotTildeEqual: NotTildeEqual,
5539 NotTildeFullEqual: NotTildeFullEqual,
5540 NotTildeTilde: NotTildeTilde,
5541 NotVerticalBar: NotVerticalBar,
5542 nparallel: nparallel,
5543 npar: npar,
5544 nparsl: nparsl,
5545 npart: npart,
5546 npolint: npolint,
5547 npr: npr,
5548 nprcue: nprcue,
5549 nprec: nprec,
5550 npreceq: npreceq,
5551 npre: npre,
5552 nrarrc: nrarrc,
5553 nrarr: nrarr,
5554 nrArr: nrArr,
5555 nrarrw: nrarrw,
5556 nrightarrow: nrightarrow,
5557 nRightarrow: nRightarrow,
5558 nrtri: nrtri,
5559 nrtrie: nrtrie,
5560 nsc: nsc,
5561 nsccue: nsccue,
5562 nsce: nsce,
5563 Nscr: Nscr,
5564 nscr: nscr,
5565 nshortmid: nshortmid,
5566 nshortparallel: nshortparallel,
5567 nsim: nsim,
5568 nsime: nsime,
5569 nsimeq: nsimeq,
5570 nsmid: nsmid,
5571 nspar: nspar,
5572 nsqsube: nsqsube,
5573 nsqsupe: nsqsupe,
5574 nsub: nsub,
5575 nsubE: nsubE,
5576 nsube: nsube,
5577 nsubset: nsubset,
5578 nsubseteq: nsubseteq,
5579 nsubseteqq: nsubseteqq,
5580 nsucc: nsucc,
5581 nsucceq: nsucceq,
5582 nsup: nsup,
5583 nsupE: nsupE,
5584 nsupe: nsupe,
5585 nsupset: nsupset,
5586 nsupseteq: nsupseteq,
5587 nsupseteqq: nsupseteqq,
5588 ntgl: ntgl,
5589 Ntilde: Ntilde,
5590 ntilde: ntilde,
5591 ntlg: ntlg,
5592 ntriangleleft: ntriangleleft,
5593 ntrianglelefteq: ntrianglelefteq,
5594 ntriangleright: ntriangleright,
5595 ntrianglerighteq: ntrianglerighteq,
5596 Nu: Nu,
5597 nu: nu,
5598 num: num,
5599 numero: numero,
5600 numsp: numsp,
5601 nvap: nvap,
5602 nvdash: nvdash,
5603 nvDash: nvDash,
5604 nVdash: nVdash,
5605 nVDash: nVDash,
5606 nvge: nvge,
5607 nvgt: nvgt,
5608 nvHarr: nvHarr,
5609 nvinfin: nvinfin,
5610 nvlArr: nvlArr,
5611 nvle: nvle,
5612 nvlt: nvlt,
5613 nvltrie: nvltrie,
5614 nvrArr: nvrArr,
5615 nvrtrie: nvrtrie,
5616 nvsim: nvsim,
5617 nwarhk: nwarhk,
5618 nwarr: nwarr,
5619 nwArr: nwArr,
5620 nwarrow: nwarrow,
5621 nwnear: nwnear,
5622 Oacute: Oacute,
5623 oacute: oacute,
5624 oast: oast,
5625 Ocirc: Ocirc,
5626 ocirc: ocirc,
5627 ocir: ocir,
5628 Ocy: Ocy,
5629 ocy: ocy,
5630 odash: odash,
5631 Odblac: Odblac,
5632 odblac: odblac,
5633 odiv: odiv,
5634 odot: odot,
5635 odsold: odsold,
5636 OElig: OElig,
5637 oelig: oelig,
5638 ofcir: ofcir,
5639 Ofr: Ofr,
5640 ofr: ofr,
5641 ogon: ogon,
5642 Ograve: Ograve,
5643 ograve: ograve,
5644 ogt: ogt,
5645 ohbar: ohbar,
5646 ohm: ohm,
5647 oint: oint,
5648 olarr: olarr,
5649 olcir: olcir,
5650 olcross: olcross,
5651 oline: oline,
5652 olt: olt,
5653 Omacr: Omacr,
5654 omacr: omacr,
5655 Omega: Omega,
5656 omega: omega,
5657 Omicron: Omicron,
5658 omicron: omicron,
5659 omid: omid,
5660 ominus: ominus,
5661 Oopf: Oopf,
5662 oopf: oopf,
5663 opar: opar,
5664 OpenCurlyDoubleQuote: OpenCurlyDoubleQuote,
5665 OpenCurlyQuote: OpenCurlyQuote,
5666 operp: operp,
5667 oplus: oplus,
5668 orarr: orarr,
5669 Or: Or,
5670 or: or,
5671 ord: ord,
5672 order: order,
5673 orderof: orderof,
5674 ordf: ordf,
5675 ordm: ordm,
5676 origof: origof,
5677 oror: oror,
5678 orslope: orslope,
5679 orv: orv,
5680 oS: oS,
5681 Oscr: Oscr,
5682 oscr: oscr,
5683 Oslash: Oslash,
5684 oslash: oslash,
5685 osol: osol,
5686 Otilde: Otilde,
5687 otilde: otilde,
5688 otimesas: otimesas,
5689 Otimes: Otimes,
5690 otimes: otimes,
5691 Ouml: Ouml,
5692 ouml: ouml,
5693 ovbar: ovbar,
5694 OverBar: OverBar,
5695 OverBrace: OverBrace,
5696 OverBracket: OverBracket,
5697 OverParenthesis: OverParenthesis,
5698 para: para,
5699 parallel: parallel,
5700 par: par,
5701 parsim: parsim,
5702 parsl: parsl,
5703 part: part,
5704 PartialD: PartialD,
5705 Pcy: Pcy,
5706 pcy: pcy,
5707 percnt: percnt,
5708 period: period,
5709 permil: permil,
5710 perp: perp,
5711 pertenk: pertenk,
5712 Pfr: Pfr,
5713 pfr: pfr,
5714 Phi: Phi,
5715 phi: phi,
5716 phiv: phiv,
5717 phmmat: phmmat,
5718 phone: phone,
5719 Pi: Pi,
5720 pi: pi,
5721 pitchfork: pitchfork,
5722 piv: piv,
5723 planck: planck,
5724 planckh: planckh,
5725 plankv: plankv,
5726 plusacir: plusacir,
5727 plusb: plusb,
5728 pluscir: pluscir,
5729 plus: plus,
5730 plusdo: plusdo,
5731 plusdu: plusdu,
5732 pluse: pluse,
5733 PlusMinus: PlusMinus,
5734 plusmn: plusmn,
5735 plussim: plussim,
5736 plustwo: plustwo,
5737 pm: pm,
5738 Poincareplane: Poincareplane,
5739 pointint: pointint,
5740 popf: popf,
5741 Popf: Popf,
5742 pound: pound,
5743 prap: prap,
5744 Pr: Pr,
5745 pr: pr,
5746 prcue: prcue,
5747 precapprox: precapprox,
5748 prec: prec,
5749 preccurlyeq: preccurlyeq,
5750 Precedes: Precedes,
5751 PrecedesEqual: PrecedesEqual,
5752 PrecedesSlantEqual: PrecedesSlantEqual,
5753 PrecedesTilde: PrecedesTilde,
5754 preceq: preceq,
5755 precnapprox: precnapprox,
5756 precneqq: precneqq,
5757 precnsim: precnsim,
5758 pre: pre,
5759 prE: prE,
5760 precsim: precsim,
5761 prime: prime,
5762 Prime: Prime,
5763 primes: primes,
5764 prnap: prnap,
5765 prnE: prnE,
5766 prnsim: prnsim,
5767 prod: prod,
5768 Product: Product,
5769 profalar: profalar,
5770 profline: profline,
5771 profsurf: profsurf,
5772 prop: prop,
5773 Proportional: Proportional,
5774 Proportion: Proportion,
5775 propto: propto,
5776 prsim: prsim,
5777 prurel: prurel,
5778 Pscr: Pscr,
5779 pscr: pscr,
5780 Psi: Psi,
5781 psi: psi,
5782 puncsp: puncsp,
5783 Qfr: Qfr,
5784 qfr: qfr,
5785 qint: qint,
5786 qopf: qopf,
5787 Qopf: Qopf,
5788 qprime: qprime,
5789 Qscr: Qscr,
5790 qscr: qscr,
5791 quaternions: quaternions,
5792 quatint: quatint,
5793 quest: quest,
5794 questeq: questeq,
5795 quot: quot,
5796 QUOT: QUOT,
5797 rAarr: rAarr,
5798 race: race,
5799 Racute: Racute,
5800 racute: racute,
5801 radic: radic,
5802 raemptyv: raemptyv,
5803 rang: rang,
5804 Rang: Rang,
5805 rangd: rangd,
5806 range: range,
5807 rangle: rangle,
5808 raquo: raquo,
5809 rarrap: rarrap,
5810 rarrb: rarrb,
5811 rarrbfs: rarrbfs,
5812 rarrc: rarrc,
5813 rarr: rarr,
5814 Rarr: Rarr,
5815 rArr: rArr,
5816 rarrfs: rarrfs,
5817 rarrhk: rarrhk,
5818 rarrlp: rarrlp,
5819 rarrpl: rarrpl,
5820 rarrsim: rarrsim,
5821 Rarrtl: Rarrtl,
5822 rarrtl: rarrtl,
5823 rarrw: rarrw,
5824 ratail: ratail,
5825 rAtail: rAtail,
5826 ratio: ratio,
5827 rationals: rationals,
5828 rbarr: rbarr,
5829 rBarr: rBarr,
5830 RBarr: RBarr,
5831 rbbrk: rbbrk,
5832 rbrace: rbrace,
5833 rbrack: rbrack,
5834 rbrke: rbrke,
5835 rbrksld: rbrksld,
5836 rbrkslu: rbrkslu,
5837 Rcaron: Rcaron,
5838 rcaron: rcaron,
5839 Rcedil: Rcedil,
5840 rcedil: rcedil,
5841 rceil: rceil,
5842 rcub: rcub,
5843 Rcy: Rcy,
5844 rcy: rcy,
5845 rdca: rdca,
5846 rdldhar: rdldhar,
5847 rdquo: rdquo,
5848 rdquor: rdquor,
5849 rdsh: rdsh,
5850 real: real,
5851 realine: realine,
5852 realpart: realpart,
5853 reals: reals,
5854 Re: Re,
5855 rect: rect,
5856 reg: reg,
5857 REG: REG,
5858 ReverseElement: ReverseElement,
5859 ReverseEquilibrium: ReverseEquilibrium,
5860 ReverseUpEquilibrium: ReverseUpEquilibrium,
5861 rfisht: rfisht,
5862 rfloor: rfloor,
5863 rfr: rfr,
5864 Rfr: Rfr,
5865 rHar: rHar,
5866 rhard: rhard,
5867 rharu: rharu,
5868 rharul: rharul,
5869 Rho: Rho,
5870 rho: rho,
5871 rhov: rhov,
5872 RightAngleBracket: RightAngleBracket,
5873 RightArrowBar: RightArrowBar,
5874 rightarrow: rightarrow,
5875 RightArrow: RightArrow,
5876 Rightarrow: Rightarrow,
5877 RightArrowLeftArrow: RightArrowLeftArrow,
5878 rightarrowtail: rightarrowtail,
5879 RightCeiling: RightCeiling,
5880 RightDoubleBracket: RightDoubleBracket,
5881 RightDownTeeVector: RightDownTeeVector,
5882 RightDownVectorBar: RightDownVectorBar,
5883 RightDownVector: RightDownVector,
5884 RightFloor: RightFloor,
5885 rightharpoondown: rightharpoondown,
5886 rightharpoonup: rightharpoonup,
5887 rightleftarrows: rightleftarrows,
5888 rightleftharpoons: rightleftharpoons,
5889 rightrightarrows: rightrightarrows,
5890 rightsquigarrow: rightsquigarrow,
5891 RightTeeArrow: RightTeeArrow,
5892 RightTee: RightTee,
5893 RightTeeVector: RightTeeVector,
5894 rightthreetimes: rightthreetimes,
5895 RightTriangleBar: RightTriangleBar,
5896 RightTriangle: RightTriangle,
5897 RightTriangleEqual: RightTriangleEqual,
5898 RightUpDownVector: RightUpDownVector,
5899 RightUpTeeVector: RightUpTeeVector,
5900 RightUpVectorBar: RightUpVectorBar,
5901 RightUpVector: RightUpVector,
5902 RightVectorBar: RightVectorBar,
5903 RightVector: RightVector,
5904 ring: ring,
5905 risingdotseq: risingdotseq,
5906 rlarr: rlarr,
5907 rlhar: rlhar,
5908 rlm: rlm,
5909 rmoustache: rmoustache,
5910 rmoust: rmoust,
5911 rnmid: rnmid,
5912 roang: roang,
5913 roarr: roarr,
5914 robrk: robrk,
5915 ropar: ropar,
5916 ropf: ropf,
5917 Ropf: Ropf,
5918 roplus: roplus,
5919 rotimes: rotimes,
5920 RoundImplies: RoundImplies,
5921 rpar: rpar,
5922 rpargt: rpargt,
5923 rppolint: rppolint,
5924 rrarr: rrarr,
5925 Rrightarrow: Rrightarrow,
5926 rsaquo: rsaquo,
5927 rscr: rscr,
5928 Rscr: Rscr,
5929 rsh: rsh,
5930 Rsh: Rsh,
5931 rsqb: rsqb,
5932 rsquo: rsquo,
5933 rsquor: rsquor,
5934 rthree: rthree,
5935 rtimes: rtimes,
5936 rtri: rtri,
5937 rtrie: rtrie,
5938 rtrif: rtrif,
5939 rtriltri: rtriltri,
5940 RuleDelayed: RuleDelayed,
5941 ruluhar: ruluhar,
5942 rx: rx,
5943 Sacute: Sacute,
5944 sacute: sacute,
5945 sbquo: sbquo,
5946 scap: scap,
5947 Scaron: Scaron,
5948 scaron: scaron,
5949 Sc: Sc,
5950 sc: sc,
5951 sccue: sccue,
5952 sce: sce,
5953 scE: scE,
5954 Scedil: Scedil,
5955 scedil: scedil,
5956 Scirc: Scirc,
5957 scirc: scirc,
5958 scnap: scnap,
5959 scnE: scnE,
5960 scnsim: scnsim,
5961 scpolint: scpolint,
5962 scsim: scsim,
5963 Scy: Scy,
5964 scy: scy,
5965 sdotb: sdotb,
5966 sdot: sdot,
5967 sdote: sdote,
5968 searhk: searhk,
5969 searr: searr,
5970 seArr: seArr,
5971 searrow: searrow,
5972 sect: sect,
5973 semi: semi,
5974 seswar: seswar,
5975 setminus: setminus,
5976 setmn: setmn,
5977 sext: sext,
5978 Sfr: Sfr,
5979 sfr: sfr,
5980 sfrown: sfrown,
5981 sharp: sharp,
5982 SHCHcy: SHCHcy,
5983 shchcy: shchcy,
5984 SHcy: SHcy,
5985 shcy: shcy,
5986 ShortDownArrow: ShortDownArrow,
5987 ShortLeftArrow: ShortLeftArrow,
5988 shortmid: shortmid,
5989 shortparallel: shortparallel,
5990 ShortRightArrow: ShortRightArrow,
5991 ShortUpArrow: ShortUpArrow,
5992 shy: shy,
5993 Sigma: Sigma,
5994 sigma: sigma,
5995 sigmaf: sigmaf,
5996 sigmav: sigmav,
5997 sim: sim,
5998 simdot: simdot,
5999 sime: sime,
6000 simeq: simeq,
6001 simg: simg,
6002 simgE: simgE,
6003 siml: siml,
6004 simlE: simlE,
6005 simne: simne,
6006 simplus: simplus,
6007 simrarr: simrarr,
6008 slarr: slarr,
6009 SmallCircle: SmallCircle,
6010 smallsetminus: smallsetminus,
6011 smashp: smashp,
6012 smeparsl: smeparsl,
6013 smid: smid,
6014 smile: smile,
6015 smt: smt,
6016 smte: smte,
6017 smtes: smtes,
6018 SOFTcy: SOFTcy,
6019 softcy: softcy,
6020 solbar: solbar,
6021 solb: solb,
6022 sol: sol,
6023 Sopf: Sopf,
6024 sopf: sopf,
6025 spades: spades,
6026 spadesuit: spadesuit,
6027 spar: spar,
6028 sqcap: sqcap,
6029 sqcaps: sqcaps,
6030 sqcup: sqcup,
6031 sqcups: sqcups,
6032 Sqrt: Sqrt,
6033 sqsub: sqsub,
6034 sqsube: sqsube,
6035 sqsubset: sqsubset,
6036 sqsubseteq: sqsubseteq,
6037 sqsup: sqsup,
6038 sqsupe: sqsupe,
6039 sqsupset: sqsupset,
6040 sqsupseteq: sqsupseteq,
6041 square: square,
6042 Square: Square,
6043 SquareIntersection: SquareIntersection,
6044 SquareSubset: SquareSubset,
6045 SquareSubsetEqual: SquareSubsetEqual,
6046 SquareSuperset: SquareSuperset,
6047 SquareSupersetEqual: SquareSupersetEqual,
6048 SquareUnion: SquareUnion,
6049 squarf: squarf,
6050 squ: squ,
6051 squf: squf,
6052 srarr: srarr,
6053 Sscr: Sscr,
6054 sscr: sscr,
6055 ssetmn: ssetmn,
6056 ssmile: ssmile,
6057 sstarf: sstarf,
6058 Star: Star,
6059 star: star,
6060 starf: starf,
6061 straightepsilon: straightepsilon,
6062 straightphi: straightphi,
6063 strns: strns,
6064 sub: sub,
6065 Sub: Sub,
6066 subdot: subdot,
6067 subE: subE,
6068 sube: sube,
6069 subedot: subedot,
6070 submult: submult,
6071 subnE: subnE,
6072 subne: subne,
6073 subplus: subplus,
6074 subrarr: subrarr,
6075 subset: subset,
6076 Subset: Subset,
6077 subseteq: subseteq,
6078 subseteqq: subseteqq,
6079 SubsetEqual: SubsetEqual,
6080 subsetneq: subsetneq,
6081 subsetneqq: subsetneqq,
6082 subsim: subsim,
6083 subsub: subsub,
6084 subsup: subsup,
6085 succapprox: succapprox,
6086 succ: succ,
6087 succcurlyeq: succcurlyeq,
6088 Succeeds: Succeeds,
6089 SucceedsEqual: SucceedsEqual,
6090 SucceedsSlantEqual: SucceedsSlantEqual,
6091 SucceedsTilde: SucceedsTilde,
6092 succeq: succeq,
6093 succnapprox: succnapprox,
6094 succneqq: succneqq,
6095 succnsim: succnsim,
6096 succsim: succsim,
6097 SuchThat: SuchThat,
6098 sum: sum,
6099 Sum: Sum,
6100 sung: sung,
6101 sup1: sup1,
6102 sup2: sup2,
6103 sup3: sup3,
6104 sup: sup,
6105 Sup: Sup,
6106 supdot: supdot,
6107 supdsub: supdsub,
6108 supE: supE,
6109 supe: supe,
6110 supedot: supedot,
6111 Superset: Superset,
6112 SupersetEqual: SupersetEqual,
6113 suphsol: suphsol,
6114 suphsub: suphsub,
6115 suplarr: suplarr,
6116 supmult: supmult,
6117 supnE: supnE,
6118 supne: supne,
6119 supplus: supplus,
6120 supset: supset,
6121 Supset: Supset,
6122 supseteq: supseteq,
6123 supseteqq: supseteqq,
6124 supsetneq: supsetneq,
6125 supsetneqq: supsetneqq,
6126 supsim: supsim,
6127 supsub: supsub,
6128 supsup: supsup,
6129 swarhk: swarhk,
6130 swarr: swarr,
6131 swArr: swArr,
6132 swarrow: swarrow,
6133 swnwar: swnwar,
6134 szlig: szlig,
6135 Tab: Tab,
6136 target: target,
6137 Tau: Tau,
6138 tau: tau,
6139 tbrk: tbrk,
6140 Tcaron: Tcaron,
6141 tcaron: tcaron,
6142 Tcedil: Tcedil,
6143 tcedil: tcedil,
6144 Tcy: Tcy,
6145 tcy: tcy,
6146 tdot: tdot,
6147 telrec: telrec,
6148 Tfr: Tfr,
6149 tfr: tfr,
6150 there4: there4,
6151 therefore: therefore,
6152 Therefore: Therefore,
6153 Theta: Theta,
6154 theta: theta,
6155 thetasym: thetasym,
6156 thetav: thetav,
6157 thickapprox: thickapprox,
6158 thicksim: thicksim,
6159 ThickSpace: ThickSpace,
6160 ThinSpace: ThinSpace,
6161 thinsp: thinsp,
6162 thkap: thkap,
6163 thksim: thksim,
6164 THORN: THORN,
6165 thorn: thorn,
6166 tilde: tilde,
6167 Tilde: Tilde,
6168 TildeEqual: TildeEqual,
6169 TildeFullEqual: TildeFullEqual,
6170 TildeTilde: TildeTilde,
6171 timesbar: timesbar,
6172 timesb: timesb,
6173 times: times,
6174 timesd: timesd,
6175 tint: tint,
6176 toea: toea,
6177 topbot: topbot,
6178 topcir: topcir,
6179 top: top,
6180 Topf: Topf,
6181 topf: topf,
6182 topfork: topfork,
6183 tosa: tosa,
6184 tprime: tprime,
6185 trade: trade,
6186 TRADE: TRADE,
6187 triangle: triangle,
6188 triangledown: triangledown,
6189 triangleleft: triangleleft,
6190 trianglelefteq: trianglelefteq,
6191 triangleq: triangleq,
6192 triangleright: triangleright,
6193 trianglerighteq: trianglerighteq,
6194 tridot: tridot,
6195 trie: trie,
6196 triminus: triminus,
6197 TripleDot: TripleDot,
6198 triplus: triplus,
6199 trisb: trisb,
6200 tritime: tritime,
6201 trpezium: trpezium,
6202 Tscr: Tscr,
6203 tscr: tscr,
6204 TScy: TScy,
6205 tscy: tscy,
6206 TSHcy: TSHcy,
6207 tshcy: tshcy,
6208 Tstrok: Tstrok,
6209 tstrok: tstrok,
6210 twixt: twixt,
6211 twoheadleftarrow: twoheadleftarrow,
6212 twoheadrightarrow: twoheadrightarrow,
6213 Uacute: Uacute,
6214 uacute: uacute,
6215 uarr: uarr,
6216 Uarr: Uarr,
6217 uArr: uArr,
6218 Uarrocir: Uarrocir,
6219 Ubrcy: Ubrcy,
6220 ubrcy: ubrcy,
6221 Ubreve: Ubreve,
6222 ubreve: ubreve,
6223 Ucirc: Ucirc,
6224 ucirc: ucirc,
6225 Ucy: Ucy,
6226 ucy: ucy,
6227 udarr: udarr,
6228 Udblac: Udblac,
6229 udblac: udblac,
6230 udhar: udhar,
6231 ufisht: ufisht,
6232 Ufr: Ufr,
6233 ufr: ufr,
6234 Ugrave: Ugrave,
6235 ugrave: ugrave,
6236 uHar: uHar,
6237 uharl: uharl,
6238 uharr: uharr,
6239 uhblk: uhblk,
6240 ulcorn: ulcorn,
6241 ulcorner: ulcorner,
6242 ulcrop: ulcrop,
6243 ultri: ultri,
6244 Umacr: Umacr,
6245 umacr: umacr,
6246 uml: uml,
6247 UnderBar: UnderBar,
6248 UnderBrace: UnderBrace,
6249 UnderBracket: UnderBracket,
6250 UnderParenthesis: UnderParenthesis,
6251 Union: Union,
6252 UnionPlus: UnionPlus,
6253 Uogon: Uogon,
6254 uogon: uogon,
6255 Uopf: Uopf,
6256 uopf: uopf,
6257 UpArrowBar: UpArrowBar,
6258 uparrow: uparrow,
6259 UpArrow: UpArrow,
6260 Uparrow: Uparrow,
6261 UpArrowDownArrow: UpArrowDownArrow,
6262 updownarrow: updownarrow,
6263 UpDownArrow: UpDownArrow,
6264 Updownarrow: Updownarrow,
6265 UpEquilibrium: UpEquilibrium,
6266 upharpoonleft: upharpoonleft,
6267 upharpoonright: upharpoonright,
6268 uplus: uplus,
6269 UpperLeftArrow: UpperLeftArrow,
6270 UpperRightArrow: UpperRightArrow,
6271 upsi: upsi,
6272 Upsi: Upsi,
6273 upsih: upsih,
6274 Upsilon: Upsilon,
6275 upsilon: upsilon,
6276 UpTeeArrow: UpTeeArrow,
6277 UpTee: UpTee,
6278 upuparrows: upuparrows,
6279 urcorn: urcorn,
6280 urcorner: urcorner,
6281 urcrop: urcrop,
6282 Uring: Uring,
6283 uring: uring,
6284 urtri: urtri,
6285 Uscr: Uscr,
6286 uscr: uscr,
6287 utdot: utdot,
6288 Utilde: Utilde,
6289 utilde: utilde,
6290 utri: utri,
6291 utrif: utrif,
6292 uuarr: uuarr,
6293 Uuml: Uuml,
6294 uuml: uuml,
6295 uwangle: uwangle,
6296 vangrt: vangrt,
6297 varepsilon: varepsilon,
6298 varkappa: varkappa,
6299 varnothing: varnothing,
6300 varphi: varphi,
6301 varpi: varpi,
6302 varpropto: varpropto,
6303 varr: varr,
6304 vArr: vArr,
6305 varrho: varrho,
6306 varsigma: varsigma,
6307 varsubsetneq: varsubsetneq,
6308 varsubsetneqq: varsubsetneqq,
6309 varsupsetneq: varsupsetneq,
6310 varsupsetneqq: varsupsetneqq,
6311 vartheta: vartheta,
6312 vartriangleleft: vartriangleleft,
6313 vartriangleright: vartriangleright,
6314 vBar: vBar,
6315 Vbar: Vbar,
6316 vBarv: vBarv,
6317 Vcy: Vcy,
6318 vcy: vcy,
6319 vdash: vdash,
6320 vDash: vDash,
6321 Vdash: Vdash,
6322 VDash: VDash,
6323 Vdashl: Vdashl,
6324 veebar: veebar,
6325 vee: vee,
6326 Vee: Vee,
6327 veeeq: veeeq,
6328 vellip: vellip,
6329 verbar: verbar,
6330 Verbar: Verbar,
6331 vert: vert,
6332 Vert: Vert,
6333 VerticalBar: VerticalBar,
6334 VerticalLine: VerticalLine,
6335 VerticalSeparator: VerticalSeparator,
6336 VerticalTilde: VerticalTilde,
6337 VeryThinSpace: VeryThinSpace,
6338 Vfr: Vfr,
6339 vfr: vfr,
6340 vltri: vltri,
6341 vnsub: vnsub,
6342 vnsup: vnsup,
6343 Vopf: Vopf,
6344 vopf: vopf,
6345 vprop: vprop,
6346 vrtri: vrtri,
6347 Vscr: Vscr,
6348 vscr: vscr,
6349 vsubnE: vsubnE,
6350 vsubne: vsubne,
6351 vsupnE: vsupnE,
6352 vsupne: vsupne,
6353 Vvdash: Vvdash,
6354 vzigzag: vzigzag,
6355 Wcirc: Wcirc,
6356 wcirc: wcirc,
6357 wedbar: wedbar,
6358 wedge: wedge,
6359 Wedge: Wedge,
6360 wedgeq: wedgeq,
6361 weierp: weierp,
6362 Wfr: Wfr,
6363 wfr: wfr,
6364 Wopf: Wopf,
6365 wopf: wopf,
6366 wp: wp,
6367 wr: wr,
6368 wreath: wreath,
6369 Wscr: Wscr,
6370 wscr: wscr,
6371 xcap: xcap,
6372 xcirc: xcirc,
6373 xcup: xcup,
6374 xdtri: xdtri,
6375 Xfr: Xfr,
6376 xfr: xfr,
6377 xharr: xharr,
6378 xhArr: xhArr,
6379 Xi: Xi,
6380 xi: xi,
6381 xlarr: xlarr,
6382 xlArr: xlArr,
6383 xmap: xmap,
6384 xnis: xnis,
6385 xodot: xodot,
6386 Xopf: Xopf,
6387 xopf: xopf,
6388 xoplus: xoplus,
6389 xotime: xotime,
6390 xrarr: xrarr,
6391 xrArr: xrArr,
6392 Xscr: Xscr,
6393 xscr: xscr,
6394 xsqcup: xsqcup,
6395 xuplus: xuplus,
6396 xutri: xutri,
6397 xvee: xvee,
6398 xwedge: xwedge,
6399 Yacute: Yacute,
6400 yacute: yacute,
6401 YAcy: YAcy,
6402 yacy: yacy,
6403 Ycirc: Ycirc,
6404 ycirc: ycirc,
6405 Ycy: Ycy,
6406 ycy: ycy,
6407 yen: yen,
6408 Yfr: Yfr,
6409 yfr: yfr,
6410 YIcy: YIcy,
6411 yicy: yicy,
6412 Yopf: Yopf,
6413 yopf: yopf,
6414 Yscr: Yscr,
6415 yscr: yscr,
6416 YUcy: YUcy,
6417 yucy: yucy,
6418 yuml: yuml,
6419 Yuml: Yuml,
6420 Zacute: Zacute,
6421 zacute: zacute,
6422 Zcaron: Zcaron,
6423 zcaron: zcaron,
6424 Zcy: Zcy,
6425 zcy: zcy,
6426 Zdot: Zdot,
6427 zdot: zdot,
6428 zeetrf: zeetrf,
6429 ZeroWidthSpace: ZeroWidthSpace,
6430 Zeta: Zeta,
6431 zeta: zeta,
6432 zfr: zfr,
6433 Zfr: Zfr,
6434 ZHcy: ZHcy,
6435 zhcy: zhcy,
6436 zigrarr: zigrarr,
6437 zopf: zopf,
6438 Zopf: Zopf,
6439 Zscr: Zscr,
6440 zscr: zscr,
6441 zwj: zwj,
6442 zwnj: zwnj,
6443 'default': entities
6444};
6445
6446var Aacute$1 = "Á";
6447var aacute$1 = "á";
6448var Acirc$1 = "Â";
6449var acirc$1 = "â";
6450var acute$1 = "´";
6451var AElig$1 = "Æ";
6452var aelig$1 = "æ";
6453var Agrave$1 = "À";
6454var agrave$1 = "à";
6455var amp$1 = "&";
6456var AMP$1 = "&";
6457var Aring$1 = "Å";
6458var aring$1 = "å";
6459var Atilde$1 = "Ã";
6460var atilde$1 = "ã";
6461var Auml$1 = "Ä";
6462var auml$1 = "ä";
6463var brvbar$1 = "¦";
6464var Ccedil$1 = "Ç";
6465var ccedil$1 = "ç";
6466var cedil$1 = "¸";
6467var cent$1 = "¢";
6468var copy$1 = "©";
6469var COPY$1 = "©";
6470var curren$1 = "¤";
6471var deg$1 = "°";
6472var divide$1 = "÷";
6473var Eacute$1 = "É";
6474var eacute$1 = "é";
6475var Ecirc$1 = "Ê";
6476var ecirc$1 = "ê";
6477var Egrave$1 = "È";
6478var egrave$1 = "è";
6479var ETH$1 = "Ð";
6480var eth$1 = "ð";
6481var Euml$1 = "Ë";
6482var euml$1 = "ë";
6483var frac12$1 = "½";
6484var frac14$1 = "¼";
6485var frac34$1 = "¾";
6486var gt$1 = ">";
6487var GT$1 = ">";
6488var Iacute$1 = "Í";
6489var iacute$1 = "í";
6490var Icirc$1 = "Î";
6491var icirc$1 = "î";
6492var iexcl$1 = "¡";
6493var Igrave$1 = "Ì";
6494var igrave$1 = "ì";
6495var iquest$1 = "¿";
6496var Iuml$1 = "Ï";
6497var iuml$1 = "ï";
6498var laquo$1 = "«";
6499var lt$1 = "<";
6500var LT$1 = "<";
6501var macr$1 = "¯";
6502var micro$1 = "µ";
6503var middot$1 = "·";
6504var nbsp$1 = " ";
6505var not$1 = "¬";
6506var Ntilde$1 = "Ñ";
6507var ntilde$1 = "ñ";
6508var Oacute$1 = "Ó";
6509var oacute$1 = "ó";
6510var Ocirc$1 = "Ô";
6511var ocirc$1 = "ô";
6512var Ograve$1 = "Ò";
6513var ograve$1 = "ò";
6514var ordf$1 = "ª";
6515var ordm$1 = "º";
6516var Oslash$1 = "Ø";
6517var oslash$1 = "ø";
6518var Otilde$1 = "Õ";
6519var otilde$1 = "õ";
6520var Ouml$1 = "Ö";
6521var ouml$1 = "ö";
6522var para$1 = "¶";
6523var plusmn$1 = "±";
6524var pound$1 = "£";
6525var quot$1 = "\"";
6526var QUOT$1 = "\"";
6527var raquo$1 = "»";
6528var reg$1 = "®";
6529var REG$1 = "®";
6530var sect$1 = "§";
6531var shy$1 = "­";
6532var sup1$1 = "¹";
6533var sup2$1 = "²";
6534var sup3$1 = "³";
6535var szlig$1 = "ß";
6536var THORN$1 = "Þ";
6537var thorn$1 = "þ";
6538var times$1 = "×";
6539var Uacute$1 = "Ú";
6540var uacute$1 = "ú";
6541var Ucirc$1 = "Û";
6542var ucirc$1 = "û";
6543var Ugrave$1 = "Ù";
6544var ugrave$1 = "ù";
6545var uml$1 = "¨";
6546var Uuml$1 = "Ü";
6547var uuml$1 = "ü";
6548var Yacute$1 = "Ý";
6549var yacute$1 = "ý";
6550var yen$1 = "¥";
6551var yuml$1 = "ÿ";
6552var legacy = {
6553 Aacute: Aacute$1,
6554 aacute: aacute$1,
6555 Acirc: Acirc$1,
6556 acirc: acirc$1,
6557 acute: acute$1,
6558 AElig: AElig$1,
6559 aelig: aelig$1,
6560 Agrave: Agrave$1,
6561 agrave: agrave$1,
6562 amp: amp$1,
6563 AMP: AMP$1,
6564 Aring: Aring$1,
6565 aring: aring$1,
6566 Atilde: Atilde$1,
6567 atilde: atilde$1,
6568 Auml: Auml$1,
6569 auml: auml$1,
6570 brvbar: brvbar$1,
6571 Ccedil: Ccedil$1,
6572 ccedil: ccedil$1,
6573 cedil: cedil$1,
6574 cent: cent$1,
6575 copy: copy$1,
6576 COPY: COPY$1,
6577 curren: curren$1,
6578 deg: deg$1,
6579 divide: divide$1,
6580 Eacute: Eacute$1,
6581 eacute: eacute$1,
6582 Ecirc: Ecirc$1,
6583 ecirc: ecirc$1,
6584 Egrave: Egrave$1,
6585 egrave: egrave$1,
6586 ETH: ETH$1,
6587 eth: eth$1,
6588 Euml: Euml$1,
6589 euml: euml$1,
6590 frac12: frac12$1,
6591 frac14: frac14$1,
6592 frac34: frac34$1,
6593 gt: gt$1,
6594 GT: GT$1,
6595 Iacute: Iacute$1,
6596 iacute: iacute$1,
6597 Icirc: Icirc$1,
6598 icirc: icirc$1,
6599 iexcl: iexcl$1,
6600 Igrave: Igrave$1,
6601 igrave: igrave$1,
6602 iquest: iquest$1,
6603 Iuml: Iuml$1,
6604 iuml: iuml$1,
6605 laquo: laquo$1,
6606 lt: lt$1,
6607 LT: LT$1,
6608 macr: macr$1,
6609 micro: micro$1,
6610 middot: middot$1,
6611 nbsp: nbsp$1,
6612 not: not$1,
6613 Ntilde: Ntilde$1,
6614 ntilde: ntilde$1,
6615 Oacute: Oacute$1,
6616 oacute: oacute$1,
6617 Ocirc: Ocirc$1,
6618 ocirc: ocirc$1,
6619 Ograve: Ograve$1,
6620 ograve: ograve$1,
6621 ordf: ordf$1,
6622 ordm: ordm$1,
6623 Oslash: Oslash$1,
6624 oslash: oslash$1,
6625 Otilde: Otilde$1,
6626 otilde: otilde$1,
6627 Ouml: Ouml$1,
6628 ouml: ouml$1,
6629 para: para$1,
6630 plusmn: plusmn$1,
6631 pound: pound$1,
6632 quot: quot$1,
6633 QUOT: QUOT$1,
6634 raquo: raquo$1,
6635 reg: reg$1,
6636 REG: REG$1,
6637 sect: sect$1,
6638 shy: shy$1,
6639 sup1: sup1$1,
6640 sup2: sup2$1,
6641 sup3: sup3$1,
6642 szlig: szlig$1,
6643 THORN: THORN$1,
6644 thorn: thorn$1,
6645 times: times$1,
6646 Uacute: Uacute$1,
6647 uacute: uacute$1,
6648 Ucirc: Ucirc$1,
6649 ucirc: ucirc$1,
6650 Ugrave: Ugrave$1,
6651 ugrave: ugrave$1,
6652 uml: uml$1,
6653 Uuml: Uuml$1,
6654 uuml: uuml$1,
6655 Yacute: Yacute$1,
6656 yacute: yacute$1,
6657 yen: yen$1,
6658 yuml: yuml$1
6659};
6660
6661var legacy$1 = {
6662 __proto__: null,
6663 Aacute: Aacute$1,
6664 aacute: aacute$1,
6665 Acirc: Acirc$1,
6666 acirc: acirc$1,
6667 acute: acute$1,
6668 AElig: AElig$1,
6669 aelig: aelig$1,
6670 Agrave: Agrave$1,
6671 agrave: agrave$1,
6672 amp: amp$1,
6673 AMP: AMP$1,
6674 Aring: Aring$1,
6675 aring: aring$1,
6676 Atilde: Atilde$1,
6677 atilde: atilde$1,
6678 Auml: Auml$1,
6679 auml: auml$1,
6680 brvbar: brvbar$1,
6681 Ccedil: Ccedil$1,
6682 ccedil: ccedil$1,
6683 cedil: cedil$1,
6684 cent: cent$1,
6685 copy: copy$1,
6686 COPY: COPY$1,
6687 curren: curren$1,
6688 deg: deg$1,
6689 divide: divide$1,
6690 Eacute: Eacute$1,
6691 eacute: eacute$1,
6692 Ecirc: Ecirc$1,
6693 ecirc: ecirc$1,
6694 Egrave: Egrave$1,
6695 egrave: egrave$1,
6696 ETH: ETH$1,
6697 eth: eth$1,
6698 Euml: Euml$1,
6699 euml: euml$1,
6700 frac12: frac12$1,
6701 frac14: frac14$1,
6702 frac34: frac34$1,
6703 gt: gt$1,
6704 GT: GT$1,
6705 Iacute: Iacute$1,
6706 iacute: iacute$1,
6707 Icirc: Icirc$1,
6708 icirc: icirc$1,
6709 iexcl: iexcl$1,
6710 Igrave: Igrave$1,
6711 igrave: igrave$1,
6712 iquest: iquest$1,
6713 Iuml: Iuml$1,
6714 iuml: iuml$1,
6715 laquo: laquo$1,
6716 lt: lt$1,
6717 LT: LT$1,
6718 macr: macr$1,
6719 micro: micro$1,
6720 middot: middot$1,
6721 nbsp: nbsp$1,
6722 not: not$1,
6723 Ntilde: Ntilde$1,
6724 ntilde: ntilde$1,
6725 Oacute: Oacute$1,
6726 oacute: oacute$1,
6727 Ocirc: Ocirc$1,
6728 ocirc: ocirc$1,
6729 Ograve: Ograve$1,
6730 ograve: ograve$1,
6731 ordf: ordf$1,
6732 ordm: ordm$1,
6733 Oslash: Oslash$1,
6734 oslash: oslash$1,
6735 Otilde: Otilde$1,
6736 otilde: otilde$1,
6737 Ouml: Ouml$1,
6738 ouml: ouml$1,
6739 para: para$1,
6740 plusmn: plusmn$1,
6741 pound: pound$1,
6742 quot: quot$1,
6743 QUOT: QUOT$1,
6744 raquo: raquo$1,
6745 reg: reg$1,
6746 REG: REG$1,
6747 sect: sect$1,
6748 shy: shy$1,
6749 sup1: sup1$1,
6750 sup2: sup2$1,
6751 sup3: sup3$1,
6752 szlig: szlig$1,
6753 THORN: THORN$1,
6754 thorn: thorn$1,
6755 times: times$1,
6756 Uacute: Uacute$1,
6757 uacute: uacute$1,
6758 Ucirc: Ucirc$1,
6759 ucirc: ucirc$1,
6760 Ugrave: Ugrave$1,
6761 ugrave: ugrave$1,
6762 uml: uml$1,
6763 Uuml: Uuml$1,
6764 uuml: uuml$1,
6765 Yacute: Yacute$1,
6766 yacute: yacute$1,
6767 yen: yen$1,
6768 yuml: yuml$1,
6769 'default': legacy
6770};
6771
6772var amp$2 = "&";
6773var apos$1 = "'";
6774var gt$2 = ">";
6775var lt$2 = "<";
6776var quot$2 = "\"";
6777var xml = {
6778 amp: amp$2,
6779 apos: apos$1,
6780 gt: gt$2,
6781 lt: lt$2,
6782 quot: quot$2
6783};
6784
6785var xml$1 = {
6786 __proto__: null,
6787 amp: amp$2,
6788 apos: apos$1,
6789 gt: gt$2,
6790 lt: lt$2,
6791 quot: quot$2,
6792 'default': xml
6793};
6794
6795var decode = {
6796 "0": 65533,
6797 "128": 8364,
6798 "130": 8218,
6799 "131": 402,
6800 "132": 8222,
6801 "133": 8230,
6802 "134": 8224,
6803 "135": 8225,
6804 "136": 710,
6805 "137": 8240,
6806 "138": 352,
6807 "139": 8249,
6808 "140": 338,
6809 "142": 381,
6810 "145": 8216,
6811 "146": 8217,
6812 "147": 8220,
6813 "148": 8221,
6814 "149": 8226,
6815 "150": 8211,
6816 "151": 8212,
6817 "152": 732,
6818 "153": 8482,
6819 "154": 353,
6820 "155": 8250,
6821 "156": 339,
6822 "158": 382,
6823 "159": 376
6824};
6825
6826var decode$1 = {
6827 __proto__: null,
6828 'default': decode
6829};
6830
6831var require$$0 = getCjsExportFromNamespace(decode$1);
6832
6833var decode_codepoint = createCommonjsModule(function (module, exports) {
6834var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
6835 return (mod && mod.__esModule) ? mod : { "default": mod };
6836};
6837Object.defineProperty(exports, "__esModule", { value: true });
6838var decode_json_1 = __importDefault(require$$0);
6839// modified version of https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119
6840function decodeCodePoint(codePoint) {
6841 if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {
6842 return "\uFFFD";
6843 }
6844 if (codePoint in decode_json_1.default) {
6845 codePoint = decode_json_1.default[codePoint];
6846 }
6847 var output = "";
6848 if (codePoint > 0xffff) {
6849 codePoint -= 0x10000;
6850 output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);
6851 codePoint = 0xdc00 | (codePoint & 0x3ff);
6852 }
6853 output += String.fromCharCode(codePoint);
6854 return output;
6855}
6856exports.default = decodeCodePoint;
6857});
6858
6859var require$$1 = getCjsExportFromNamespace(entities$1);
6860
6861var require$$1$1 = getCjsExportFromNamespace(legacy$1);
6862
6863var require$$0$1 = getCjsExportFromNamespace(xml$1);
6864
6865var decode$2 = createCommonjsModule(function (module, exports) {
6866var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
6867 return (mod && mod.__esModule) ? mod : { "default": mod };
6868};
6869Object.defineProperty(exports, "__esModule", { value: true });
6870exports.decodeHTML = exports.decodeHTMLStrict = exports.decodeXML = void 0;
6871var entities_json_1 = __importDefault(require$$1);
6872var legacy_json_1 = __importDefault(require$$1$1);
6873var xml_json_1 = __importDefault(require$$0$1);
6874var decode_codepoint_1 = __importDefault(decode_codepoint);
6875exports.decodeXML = getStrictDecoder(xml_json_1.default);
6876exports.decodeHTMLStrict = getStrictDecoder(entities_json_1.default);
6877function getStrictDecoder(map) {
6878 var keys = Object.keys(map).join("|");
6879 var replace = getReplacer(map);
6880 keys += "|#[xX][\\da-fA-F]+|#\\d+";
6881 var re = new RegExp("&(?:" + keys + ");", "g");
6882 return function (str) { return String(str).replace(re, replace); };
6883}
6884var sorter = function (a, b) { return (a < b ? 1 : -1); };
6885exports.decodeHTML = (function () {
6886 var legacy = Object.keys(legacy_json_1.default).sort(sorter);
6887 var keys = Object.keys(entities_json_1.default).sort(sorter);
6888 for (var i = 0, j = 0; i < keys.length; i++) {
6889 if (legacy[j] === keys[i]) {
6890 keys[i] += ";?";
6891 j++;
6892 }
6893 else {
6894 keys[i] += ";";
6895 }
6896 }
6897 var re = new RegExp("&(?:" + keys.join("|") + "|#[xX][\\da-fA-F]+;?|#\\d+;?)", "g");
6898 var replace = getReplacer(entities_json_1.default);
6899 function replacer(str) {
6900 if (str.substr(-1) !== ";")
6901 str += ";";
6902 return replace(str);
6903 }
6904 //TODO consider creating a merged map
6905 return function (str) { return String(str).replace(re, replacer); };
6906})();
6907function getReplacer(map) {
6908 return function replace(str) {
6909 if (str.charAt(1) === "#") {
6910 var secondChar = str.charAt(2);
6911 if (secondChar === "X" || secondChar === "x") {
6912 return decode_codepoint_1.default(parseInt(str.substr(3), 16));
6913 }
6914 return decode_codepoint_1.default(parseInt(str.substr(2), 10));
6915 }
6916 return map[str.slice(1, -1)];
6917 };
6918}
6919});
6920
6921var encode = createCommonjsModule(function (module, exports) {
6922var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
6923 return (mod && mod.__esModule) ? mod : { "default": mod };
6924};
6925Object.defineProperty(exports, "__esModule", { value: true });
6926exports.escape = exports.encodeHTML = exports.encodeXML = void 0;
6927var xml_json_1 = __importDefault(require$$0$1);
6928var inverseXML = getInverseObj(xml_json_1.default);
6929var xmlReplacer = getInverseReplacer(inverseXML);
6930exports.encodeXML = getInverse(inverseXML, xmlReplacer);
6931var entities_json_1 = __importDefault(require$$1);
6932var inverseHTML = getInverseObj(entities_json_1.default);
6933var htmlReplacer = getInverseReplacer(inverseHTML);
6934exports.encodeHTML = getInverse(inverseHTML, htmlReplacer);
6935function getInverseObj(obj) {
6936 return Object.keys(obj)
6937 .sort()
6938 .reduce(function (inverse, name) {
6939 inverse[obj[name]] = "&" + name + ";";
6940 return inverse;
6941 }, {});
6942}
6943function getInverseReplacer(inverse) {
6944 var single = [];
6945 var multiple = [];
6946 for (var _i = 0, _a = Object.keys(inverse); _i < _a.length; _i++) {
6947 var k = _a[_i];
6948 if (k.length === 1) {
6949 // Add value to single array
6950 single.push("\\" + k);
6951 }
6952 else {
6953 // Add value to multiple array
6954 multiple.push(k);
6955 }
6956 }
6957 // Add ranges to single characters.
6958 single.sort();
6959 for (var start = 0; start < single.length - 1; start++) {
6960 // Find the end of a run of characters
6961 var end = start;
6962 while (end < single.length - 1 &&
6963 single[end].charCodeAt(1) + 1 === single[end + 1].charCodeAt(1)) {
6964 end += 1;
6965 }
6966 var count = 1 + end - start;
6967 // We want to replace at least three characters
6968 if (count < 3)
6969 continue;
6970 single.splice(start, count, single[start] + "-" + single[end]);
6971 }
6972 multiple.unshift("[" + single.join("") + "]");
6973 return new RegExp(multiple.join("|"), "g");
6974}
6975var reNonASCII = /(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g;
6976function singleCharReplacer(c) {
6977 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
6978 return "&#x" + c.codePointAt(0).toString(16).toUpperCase() + ";";
6979}
6980function getInverse(inverse, re) {
6981 return function (data) {
6982 return data
6983 .replace(re, function (name) { return inverse[name]; })
6984 .replace(reNonASCII, singleCharReplacer);
6985 };
6986}
6987var reXmlChars = getInverseReplacer(inverseXML);
6988function escape(data) {
6989 return data
6990 .replace(reXmlChars, singleCharReplacer)
6991 .replace(reNonASCII, singleCharReplacer);
6992}
6993exports.escape = escape;
6994});
6995
6996var lib$1 = createCommonjsModule(function (module, exports) {
6997Object.defineProperty(exports, "__esModule", { value: true });
6998exports.encode = exports.decodeStrict = exports.decode = void 0;
6999
7000
7001/**
7002 * Decodes a string with entities.
7003 *
7004 * @param data String to decode.
7005 * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.
7006 */
7007function decode(data, level) {
7008 return (!level || level <= 0 ? decode$2.decodeXML : decode$2.decodeHTML)(data);
7009}
7010exports.decode = decode;
7011/**
7012 * Decodes a string with entities. Does not allow missing trailing semicolons for entities.
7013 *
7014 * @param data String to decode.
7015 * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.
7016 */
7017function decodeStrict(data, level) {
7018 return (!level || level <= 0 ? decode$2.decodeXML : decode$2.decodeHTMLStrict)(data);
7019}
7020exports.decodeStrict = decodeStrict;
7021/**
7022 * Encodes a string with entities.
7023 *
7024 * @param data String to encode.
7025 * @param level Optional level to encode at. 0 = XML, 1 = HTML. Default is 0.
7026 */
7027function encode$1(data, level) {
7028 return (!level || level <= 0 ? encode.encodeXML : encode.encodeHTML)(data);
7029}
7030exports.encode = encode$1;
7031var encode_2 = encode;
7032Object.defineProperty(exports, "encodeXML", { enumerable: true, get: function () { return encode_2.encodeXML; } });
7033Object.defineProperty(exports, "encodeHTML", { enumerable: true, get: function () { return encode_2.encodeHTML; } });
7034Object.defineProperty(exports, "escape", { enumerable: true, get: function () { return encode_2.escape; } });
7035// Legacy aliases
7036Object.defineProperty(exports, "encodeHTML4", { enumerable: true, get: function () { return encode_2.encodeHTML; } });
7037Object.defineProperty(exports, "encodeHTML5", { enumerable: true, get: function () { return encode_2.encodeHTML; } });
7038var decode_2 = decode$2;
7039Object.defineProperty(exports, "decodeXML", { enumerable: true, get: function () { return decode_2.decodeXML; } });
7040Object.defineProperty(exports, "decodeHTML", { enumerable: true, get: function () { return decode_2.decodeHTML; } });
7041Object.defineProperty(exports, "decodeHTMLStrict", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });
7042// Legacy aliases
7043Object.defineProperty(exports, "decodeHTML4", { enumerable: true, get: function () { return decode_2.decodeHTML; } });
7044Object.defineProperty(exports, "decodeHTML5", { enumerable: true, get: function () { return decode_2.decodeHTML; } });
7045Object.defineProperty(exports, "decodeHTML4Strict", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });
7046Object.defineProperty(exports, "decodeHTML5Strict", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });
7047Object.defineProperty(exports, "decodeXMLStrict", { enumerable: true, get: function () { return decode_2.decodeXML; } });
7048});
7049
7050var elementNames = {
7051 altglyph: "altGlyph",
7052 altglyphdef: "altGlyphDef",
7053 altglyphitem: "altGlyphItem",
7054 animatecolor: "animateColor",
7055 animatemotion: "animateMotion",
7056 animatetransform: "animateTransform",
7057 clippath: "clipPath",
7058 feblend: "feBlend",
7059 fecolormatrix: "feColorMatrix",
7060 fecomponenttransfer: "feComponentTransfer",
7061 fecomposite: "feComposite",
7062 feconvolvematrix: "feConvolveMatrix",
7063 fediffuselighting: "feDiffuseLighting",
7064 fedisplacementmap: "feDisplacementMap",
7065 fedistantlight: "feDistantLight",
7066 fedropshadow: "feDropShadow",
7067 feflood: "feFlood",
7068 fefunca: "feFuncA",
7069 fefuncb: "feFuncB",
7070 fefuncg: "feFuncG",
7071 fefuncr: "feFuncR",
7072 fegaussianblur: "feGaussianBlur",
7073 feimage: "feImage",
7074 femerge: "feMerge",
7075 femergenode: "feMergeNode",
7076 femorphology: "feMorphology",
7077 feoffset: "feOffset",
7078 fepointlight: "fePointLight",
7079 fespecularlighting: "feSpecularLighting",
7080 fespotlight: "feSpotLight",
7081 fetile: "feTile",
7082 feturbulence: "feTurbulence",
7083 foreignobject: "foreignObject",
7084 glyphref: "glyphRef",
7085 lineargradient: "linearGradient",
7086 radialgradient: "radialGradient",
7087 textpath: "textPath"
7088};
7089var attributeNames = {
7090 definitionurl: "definitionURL",
7091 attributename: "attributeName",
7092 attributetype: "attributeType",
7093 basefrequency: "baseFrequency",
7094 baseprofile: "baseProfile",
7095 calcmode: "calcMode",
7096 clippathunits: "clipPathUnits",
7097 diffuseconstant: "diffuseConstant",
7098 edgemode: "edgeMode",
7099 filterunits: "filterUnits",
7100 glyphref: "glyphRef",
7101 gradienttransform: "gradientTransform",
7102 gradientunits: "gradientUnits",
7103 kernelmatrix: "kernelMatrix",
7104 kernelunitlength: "kernelUnitLength",
7105 keypoints: "keyPoints",
7106 keysplines: "keySplines",
7107 keytimes: "keyTimes",
7108 lengthadjust: "lengthAdjust",
7109 limitingconeangle: "limitingConeAngle",
7110 markerheight: "markerHeight",
7111 markerunits: "markerUnits",
7112 markerwidth: "markerWidth",
7113 maskcontentunits: "maskContentUnits",
7114 maskunits: "maskUnits",
7115 numoctaves: "numOctaves",
7116 pathlength: "pathLength",
7117 patterncontentunits: "patternContentUnits",
7118 patterntransform: "patternTransform",
7119 patternunits: "patternUnits",
7120 pointsatx: "pointsAtX",
7121 pointsaty: "pointsAtY",
7122 pointsatz: "pointsAtZ",
7123 preservealpha: "preserveAlpha",
7124 preserveaspectratio: "preserveAspectRatio",
7125 primitiveunits: "primitiveUnits",
7126 refx: "refX",
7127 refy: "refY",
7128 repeatcount: "repeatCount",
7129 repeatdur: "repeatDur",
7130 requiredextensions: "requiredExtensions",
7131 requiredfeatures: "requiredFeatures",
7132 specularconstant: "specularConstant",
7133 specularexponent: "specularExponent",
7134 spreadmethod: "spreadMethod",
7135 startoffset: "startOffset",
7136 stddeviation: "stdDeviation",
7137 stitchtiles: "stitchTiles",
7138 surfacescale: "surfaceScale",
7139 systemlanguage: "systemLanguage",
7140 tablevalues: "tableValues",
7141 targetx: "targetX",
7142 targety: "targetY",
7143 textlength: "textLength",
7144 viewbox: "viewBox",
7145 viewtarget: "viewTarget",
7146 xchannelselector: "xChannelSelector",
7147 ychannelselector: "yChannelSelector",
7148 zoomandpan: "zoomAndPan"
7149};
7150var foreignNames = {
7151 elementNames: elementNames,
7152 attributeNames: attributeNames
7153};
7154
7155var foreignNames$1 = {
7156 __proto__: null,
7157 elementNames: elementNames,
7158 attributeNames: attributeNames,
7159 'default': foreignNames
7160};
7161
7162var foreignNames$2 = getCjsExportFromNamespace(foreignNames$1);
7163
7164var domSerializer = createCommonjsModule(function (module) {
7165/*
7166 Module dependencies
7167*/
7168
7169
7170
7171/* mixed-case SVG and MathML tags & attributes
7172 recognized by the HTML parser, see
7173 https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign
7174*/
7175
7176foreignNames$2.elementNames.__proto__ = null; /* use as a simple dictionary */
7177foreignNames$2.attributeNames.__proto__ = null;
7178
7179var unencodedElements = {
7180 __proto__: null,
7181 style: true,
7182 script: true,
7183 xmp: true,
7184 iframe: true,
7185 noembed: true,
7186 noframes: true,
7187 plaintext: true,
7188 noscript: true
7189};
7190
7191/*
7192 Format attributes
7193*/
7194function formatAttrs(attributes, opts) {
7195 if (!attributes) return;
7196
7197 var output = '';
7198 var value;
7199
7200 // Loop through the attributes
7201 for (var key in attributes) {
7202 value = attributes[key];
7203 if (output) {
7204 output += ' ';
7205 }
7206
7207 if (opts.xmlMode === 'foreign') {
7208 /* fix up mixed-case attribute names */
7209 key = foreignNames$2.attributeNames[key] || key;
7210 }
7211 output += key;
7212 if ((value !== null && value !== '') || opts.xmlMode) {
7213 output +=
7214 '="' +
7215 (opts.decodeEntities
7216 ? lib$1.encodeXML(value)
7217 : value.replace(/\"/g, '&quot;')) +
7218 '"';
7219 }
7220 }
7221
7222 return output;
7223}
7224
7225/*
7226 Self-enclosing tags (stolen from node-htmlparser)
7227*/
7228var singleTag = {
7229 __proto__: null,
7230 area: true,
7231 base: true,
7232 basefont: true,
7233 br: true,
7234 col: true,
7235 command: true,
7236 embed: true,
7237 frame: true,
7238 hr: true,
7239 img: true,
7240 input: true,
7241 isindex: true,
7242 keygen: true,
7243 link: true,
7244 meta: true,
7245 param: true,
7246 source: true,
7247 track: true,
7248 wbr: true
7249};
7250
7251var render = (module.exports = function(dom, opts) {
7252 if (!Array.isArray(dom) && !dom.cheerio) dom = [dom];
7253 opts = opts || {};
7254
7255 var output = '';
7256
7257 for (var i = 0; i < dom.length; i++) {
7258 var elem = dom[i];
7259
7260 if (elem.type === 'root') output += render(elem.children, opts);
7261 else if (lib.isTag(elem)) output += renderTag(elem, opts);
7262 else if (elem.type === lib.Directive)
7263 output += renderDirective(elem);
7264 else if (elem.type === lib.Comment) output += renderComment(elem);
7265 else if (elem.type === lib.CDATA) output += renderCdata(elem);
7266 else output += renderText(elem, opts);
7267 }
7268
7269 return output;
7270});
7271
7272var foreignModeIntegrationPoints = [
7273 'mi',
7274 'mo',
7275 'mn',
7276 'ms',
7277 'mtext',
7278 'annotation-xml',
7279 'foreignObject',
7280 'desc',
7281 'title'
7282];
7283
7284function renderTag(elem, opts) {
7285 // Handle SVG / MathML in HTML
7286 if (opts.xmlMode === 'foreign') {
7287 /* fix up mixed-case element names */
7288 elem.name = foreignNames$2.elementNames[elem.name] || elem.name;
7289 /* exit foreign mode at integration points */
7290 if (
7291 elem.parent &&
7292 foreignModeIntegrationPoints.indexOf(elem.parent.name) >= 0
7293 )
7294 opts = Object.assign({}, opts, { xmlMode: false });
7295 }
7296 if (!opts.xmlMode && ['svg', 'math'].indexOf(elem.name) >= 0) {
7297 opts = Object.assign({}, opts, { xmlMode: 'foreign' });
7298 }
7299
7300 var tag = '<' + elem.name;
7301 var attribs = formatAttrs(elem.attribs, opts);
7302
7303 if (attribs) {
7304 tag += ' ' + attribs;
7305 }
7306
7307 if (opts.xmlMode && (!elem.children || elem.children.length === 0)) {
7308 tag += '/>';
7309 } else {
7310 tag += '>';
7311 if (elem.children) {
7312 tag += render(elem.children, opts);
7313 }
7314
7315 if (!singleTag[elem.name] || opts.xmlMode) {
7316 tag += '</' + elem.name + '>';
7317 }
7318 }
7319
7320 return tag;
7321}
7322
7323function renderDirective(elem) {
7324 return '<' + elem.data + '>';
7325}
7326
7327function renderText(elem, opts) {
7328 var data = elem.data || '';
7329
7330 // if entities weren't decoded, no need to encode them back
7331 if (
7332 opts.decodeEntities &&
7333 !(elem.parent && elem.parent.name in unencodedElements)
7334 ) {
7335 data = lib$1.encodeXML(data);
7336 }
7337
7338 return data;
7339}
7340
7341function renderCdata(elem) {
7342 return '<![CDATA[' + elem.children[0].data + ']]>';
7343}
7344
7345function renderComment(elem) {
7346 return '<!--' + elem.data + '-->';
7347}
7348});
7349
7350var isTag = domelementtype.isTag;
7351
7352var stringify = {
7353 getInnerHTML: getInnerHTML,
7354 getOuterHTML: domSerializer,
7355 getText: getText
7356};
7357
7358function getInnerHTML(elem, opts){
7359 return elem.children ? elem.children.map(function(elem){
7360 return domSerializer(elem, opts);
7361 }).join("") : "";
7362}
7363
7364function getText(elem){
7365 if(Array.isArray(elem)) return elem.map(getText).join("");
7366 if(isTag(elem) || elem.type === domelementtype.CDATA) return getText(elem.children);
7367 if(elem.type === domelementtype.Text) return elem.data;
7368 return "";
7369}
7370
7371var traversal = createCommonjsModule(function (module, exports) {
7372var getChildren = exports.getChildren = function(elem){
7373 return elem.children;
7374};
7375
7376var getParent = exports.getParent = function(elem){
7377 return elem.parent;
7378};
7379
7380exports.getSiblings = function(elem){
7381 var parent = getParent(elem);
7382 return parent ? getChildren(parent) : [elem];
7383};
7384
7385exports.getAttributeValue = function(elem, name){
7386 return elem.attribs && elem.attribs[name];
7387};
7388
7389exports.hasAttrib = function(elem, name){
7390 return !!elem.attribs && hasOwnProperty.call(elem.attribs, name);
7391};
7392
7393exports.getName = function(elem){
7394 return elem.name;
7395};
7396});
7397
7398var removeElement = function(elem){
7399 if(elem.prev) elem.prev.next = elem.next;
7400 if(elem.next) elem.next.prev = elem.prev;
7401
7402 if(elem.parent){
7403 var childs = elem.parent.children;
7404 childs.splice(childs.lastIndexOf(elem), 1);
7405 }
7406};
7407
7408var replaceElement = function(elem, replacement){
7409 var prev = replacement.prev = elem.prev;
7410 if(prev){
7411 prev.next = replacement;
7412 }
7413
7414 var next = replacement.next = elem.next;
7415 if(next){
7416 next.prev = replacement;
7417 }
7418
7419 var parent = replacement.parent = elem.parent;
7420 if(parent){
7421 var childs = parent.children;
7422 childs[childs.lastIndexOf(elem)] = replacement;
7423 }
7424};
7425
7426var appendChild = function(elem, child){
7427 child.parent = elem;
7428
7429 if(elem.children.push(child) !== 1){
7430 var sibling = elem.children[elem.children.length - 2];
7431 sibling.next = child;
7432 child.prev = sibling;
7433 child.next = null;
7434 }
7435};
7436
7437var append = function(elem, next){
7438 var parent = elem.parent,
7439 currNext = elem.next;
7440
7441 next.next = currNext;
7442 next.prev = elem;
7443 elem.next = next;
7444 next.parent = parent;
7445
7446 if(currNext){
7447 currNext.prev = next;
7448 if(parent){
7449 var childs = parent.children;
7450 childs.splice(childs.lastIndexOf(currNext), 0, next);
7451 }
7452 } else if(parent){
7453 parent.children.push(next);
7454 }
7455};
7456
7457var prepend = function(elem, prev){
7458 var parent = elem.parent;
7459 if(parent){
7460 var childs = parent.children;
7461 childs.splice(childs.lastIndexOf(elem), 0, prev);
7462 }
7463
7464 if(elem.prev){
7465 elem.prev.next = prev;
7466 }
7467
7468 prev.parent = parent;
7469 prev.prev = elem.prev;
7470 prev.next = elem;
7471 elem.prev = prev;
7472};
7473
7474var manipulation = {
7475 removeElement: removeElement,
7476 replaceElement: replaceElement,
7477 appendChild: appendChild,
7478 append: append,
7479 prepend: prepend
7480};
7481
7482var isTag$1 = domelementtype.isTag;
7483
7484var querying = {
7485 filter: filter,
7486 find: find,
7487 findOneChild: findOneChild,
7488 findOne: findOne,
7489 existsOne: existsOne,
7490 findAll: findAll
7491};
7492
7493function filter(test, element, recurse, limit){
7494 if(!Array.isArray(element)) element = [element];
7495
7496 if(typeof limit !== "number" || !isFinite(limit)){
7497 limit = Infinity;
7498 }
7499 return find(test, element, recurse !== false, limit);
7500}
7501
7502function find(test, elems, recurse, limit){
7503 var result = [], childs;
7504
7505 for(var i = 0, j = elems.length; i < j; i++){
7506 if(test(elems[i])){
7507 result.push(elems[i]);
7508 if(--limit <= 0) break;
7509 }
7510
7511 childs = elems[i].children;
7512 if(recurse && childs && childs.length > 0){
7513 childs = find(test, childs, recurse, limit);
7514 result = result.concat(childs);
7515 limit -= childs.length;
7516 if(limit <= 0) break;
7517 }
7518 }
7519
7520 return result;
7521}
7522
7523function findOneChild(test, elems){
7524 for(var i = 0, l = elems.length; i < l; i++){
7525 if(test(elems[i])) return elems[i];
7526 }
7527
7528 return null;
7529}
7530
7531function findOne(test, elems){
7532 var elem = null;
7533
7534 for(var i = 0, l = elems.length; i < l && !elem; i++){
7535 if(!isTag$1(elems[i])){
7536 continue;
7537 } else if(test(elems[i])){
7538 elem = elems[i];
7539 } else if(elems[i].children.length > 0){
7540 elem = findOne(test, elems[i].children);
7541 }
7542 }
7543
7544 return elem;
7545}
7546
7547function existsOne(test, elems){
7548 for(var i = 0, l = elems.length; i < l; i++){
7549 if(
7550 isTag$1(elems[i]) && (
7551 test(elems[i]) || (
7552 elems[i].children.length > 0 &&
7553 existsOne(test, elems[i].children)
7554 )
7555 )
7556 ){
7557 return true;
7558 }
7559 }
7560
7561 return false;
7562}
7563
7564function findAll(test, elems){
7565 var result = [];
7566 for(var i = 0, j = elems.length; i < j; i++){
7567 if(!isTag$1(elems[i])) continue;
7568 if(test(elems[i])) result.push(elems[i]);
7569
7570 if(elems[i].children.length > 0){
7571 result = result.concat(findAll(test, elems[i].children));
7572 }
7573 }
7574 return result;
7575}
7576
7577var legacy$2 = createCommonjsModule(function (module, exports) {
7578var isTag = exports.isTag = domelementtype.isTag;
7579
7580exports.testElement = function(options, element){
7581 for(var key in options){
7582 if(!options.hasOwnProperty(key));
7583 else if(key === "tag_name"){
7584 if(!isTag(element) || !options.tag_name(element.name)){
7585 return false;
7586 }
7587 } else if(key === "tag_type"){
7588 if(!options.tag_type(element.type)) return false;
7589 } else if(key === "tag_contains"){
7590 if(isTag(element) || !options.tag_contains(element.data)){
7591 return false;
7592 }
7593 } else if(!element.attribs || !options[key](element.attribs[key])){
7594 return false;
7595 }
7596 }
7597 return true;
7598};
7599
7600var Checks = {
7601 tag_name: function(name){
7602 if(typeof name === "function"){
7603 return function(elem){ return isTag(elem) && name(elem.name); };
7604 } else if(name === "*"){
7605 return isTag;
7606 } else {
7607 return function(elem){ return isTag(elem) && elem.name === name; };
7608 }
7609 },
7610 tag_type: function(type){
7611 if(typeof type === "function"){
7612 return function(elem){ return type(elem.type); };
7613 } else {
7614 return function(elem){ return elem.type === type; };
7615 }
7616 },
7617 tag_contains: function(data){
7618 if(typeof data === "function"){
7619 return function(elem){ return !isTag(elem) && data(elem.data); };
7620 } else {
7621 return function(elem){ return !isTag(elem) && elem.data === data; };
7622 }
7623 }
7624};
7625
7626function getAttribCheck(attrib, value){
7627 if(typeof value === "function"){
7628 return function(elem){ return elem.attribs && value(elem.attribs[attrib]); };
7629 } else {
7630 return function(elem){ return elem.attribs && elem.attribs[attrib] === value; };
7631 }
7632}
7633
7634function combineFuncs(a, b){
7635 return function(elem){
7636 return a(elem) || b(elem);
7637 };
7638}
7639
7640exports.getElements = function(options, element, recurse, limit){
7641 var funcs = Object.keys(options).map(function(key){
7642 var value = options[key];
7643 return key in Checks ? Checks[key](value) : getAttribCheck(key, value);
7644 });
7645
7646 return funcs.length === 0 ? [] : this.filter(
7647 funcs.reduce(combineFuncs),
7648 element, recurse, limit
7649 );
7650};
7651
7652exports.getElementById = function(id, element, recurse){
7653 if(!Array.isArray(element)) element = [element];
7654 return this.findOne(getAttribCheck("id", id), element, recurse !== false);
7655};
7656
7657exports.getElementsByTagName = function(name, element, recurse, limit){
7658 return this.filter(Checks.tag_name(name), element, recurse, limit);
7659};
7660
7661exports.getElementsByTagType = function(type, element, recurse, limit){
7662 return this.filter(Checks.tag_type(type), element, recurse, limit);
7663};
7664});
7665
7666var helpers = createCommonjsModule(function (module, exports) {
7667// removeSubsets
7668// Given an array of nodes, remove any member that is contained by another.
7669exports.removeSubsets = function(nodes) {
7670 var idx = nodes.length, node, ancestor, replace;
7671
7672 // Check if each node (or one of its ancestors) is already contained in the
7673 // array.
7674 while (--idx > -1) {
7675 node = ancestor = nodes[idx];
7676
7677 // Temporarily remove the node under consideration
7678 nodes[idx] = null;
7679 replace = true;
7680
7681 while (ancestor) {
7682 if (nodes.indexOf(ancestor) > -1) {
7683 replace = false;
7684 nodes.splice(idx, 1);
7685 break;
7686 }
7687 ancestor = ancestor.parent;
7688 }
7689
7690 // If the node has been found to be unique, re-insert it.
7691 if (replace) {
7692 nodes[idx] = node;
7693 }
7694 }
7695
7696 return nodes;
7697};
7698
7699// Source: http://dom.spec.whatwg.org/#dom-node-comparedocumentposition
7700var POSITION = {
7701 DISCONNECTED: 1,
7702 PRECEDING: 2,
7703 FOLLOWING: 4,
7704 CONTAINS: 8,
7705 CONTAINED_BY: 16
7706};
7707
7708// Compare the position of one node against another node in any other document.
7709// The return value is a bitmask with the following values:
7710//
7711// document order:
7712// > There is an ordering, document order, defined on all the nodes in the
7713// > document corresponding to the order in which the first character of the
7714// > XML representation of each node occurs in the XML representation of the
7715// > document after expansion of general entities. Thus, the document element
7716// > node will be the first node. Element nodes occur before their children.
7717// > Thus, document order orders element nodes in order of the occurrence of
7718// > their start-tag in the XML (after expansion of entities). The attribute
7719// > nodes of an element occur after the element and before its children. The
7720// > relative order of attribute nodes is implementation-dependent./
7721// Source:
7722// http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order
7723//
7724// @argument {Node} nodaA The first node to use in the comparison
7725// @argument {Node} nodeB The second node to use in the comparison
7726//
7727// @return {Number} A bitmask describing the input nodes' relative position.
7728// See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for
7729// a description of these values.
7730var comparePos = exports.compareDocumentPosition = function(nodeA, nodeB) {
7731 var aParents = [];
7732 var bParents = [];
7733 var current, sharedParent, siblings, aSibling, bSibling, idx;
7734
7735 if (nodeA === nodeB) {
7736 return 0;
7737 }
7738
7739 current = nodeA;
7740 while (current) {
7741 aParents.unshift(current);
7742 current = current.parent;
7743 }
7744 current = nodeB;
7745 while (current) {
7746 bParents.unshift(current);
7747 current = current.parent;
7748 }
7749
7750 idx = 0;
7751 while (aParents[idx] === bParents[idx]) {
7752 idx++;
7753 }
7754
7755 if (idx === 0) {
7756 return POSITION.DISCONNECTED;
7757 }
7758
7759 sharedParent = aParents[idx - 1];
7760 siblings = sharedParent.children;
7761 aSibling = aParents[idx];
7762 bSibling = bParents[idx];
7763
7764 if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {
7765 if (sharedParent === nodeB) {
7766 return POSITION.FOLLOWING | POSITION.CONTAINED_BY;
7767 }
7768 return POSITION.FOLLOWING;
7769 } else {
7770 if (sharedParent === nodeA) {
7771 return POSITION.PRECEDING | POSITION.CONTAINS;
7772 }
7773 return POSITION.PRECEDING;
7774 }
7775};
7776
7777// Sort an array of nodes based on their relative position in the document and
7778// remove any duplicate nodes. If the array contains nodes that do not belong
7779// to the same document, sort order is unspecified.
7780//
7781// @argument {Array} nodes Array of DOM nodes
7782//
7783// @returns {Array} collection of unique nodes, sorted in document order
7784exports.uniqueSort = function(nodes) {
7785 var idx = nodes.length, node, position;
7786
7787 nodes = nodes.slice();
7788
7789 while (--idx > -1) {
7790 node = nodes[idx];
7791 position = nodes.indexOf(node);
7792 if (position > -1 && position < idx) {
7793 nodes.splice(idx, 1);
7794 }
7795 }
7796 nodes.sort(function(a, b) {
7797 var relative = comparePos(a, b);
7798 if (relative & POSITION.PRECEDING) {
7799 return -1;
7800 } else if (relative & POSITION.FOLLOWING) {
7801 return 1;
7802 }
7803 return 0;
7804 });
7805
7806 return nodes;
7807};
7808});
7809
7810var domutils = createCommonjsModule(function (module) {
7811var DomUtils = module.exports;
7812
7813[
7814 stringify,
7815 traversal,
7816 manipulation,
7817 querying,
7818 legacy$2,
7819 helpers
7820].forEach(function(ext){
7821 Object.keys(ext).forEach(function(key){
7822 DomUtils[key] = ext[key].bind(DomUtils);
7823 });
7824});
7825});
7826
7827var parse_1 = parse;
7828
7829//following http://www.w3.org/TR/css3-selectors/#nth-child-pseudo
7830
7831//[ ['-'|'+']? INTEGER? {N} [ S* ['-'|'+'] S* INTEGER ]?
7832var re_nthElement = /^([+\-]?\d*n)?\s*(?:([+\-]?)\s*(\d+))?$/;
7833
7834/*
7835 parses a nth-check formula, returns an array of two numbers
7836*/
7837function parse(formula){
7838 formula = formula.trim().toLowerCase();
7839
7840 if(formula === "even"){
7841 return [2, 0];
7842 } else if(formula === "odd"){
7843 return [2, 1];
7844 } else {
7845 var parsed = formula.match(re_nthElement);
7846
7847 if(!parsed){
7848 throw new SyntaxError("n-th rule couldn't be parsed ('" + formula + "')");
7849 }
7850
7851 var a;
7852
7853 if(parsed[1]){
7854 a = parseInt(parsed[1], 10);
7855 if(isNaN(a)){
7856 if(parsed[1].charAt(0) === "-") a = -1;
7857 else a = 1;
7858 }
7859 } else a = 0;
7860
7861 return [
7862 a,
7863 parsed[3] ? parseInt((parsed[2] || "") + parsed[3], 10) : 0
7864 ];
7865 }
7866}
7867
7868var boolbase = {
7869 trueFunc: function trueFunc(){
7870 return true;
7871 },
7872 falseFunc: function falseFunc(){
7873 return false;
7874 }
7875};
7876
7877var compile_1 = compile;
7878
7879var trueFunc = boolbase.trueFunc,
7880 falseFunc = boolbase.falseFunc;
7881
7882/*
7883 returns a function that checks if an elements index matches the given rule
7884 highly optimized to return the fastest solution
7885*/
7886function compile(parsed){
7887 var a = parsed[0],
7888 b = parsed[1] - 1;
7889
7890 //when b <= 0, a*n won't be possible for any matches when a < 0
7891 //besides, the specification says that no element is matched when a and b are 0
7892 if(b < 0 && a <= 0) return falseFunc;
7893
7894 //when a is in the range -1..1, it matches any element (so only b is checked)
7895 if(a ===-1) return function(pos){ return pos <= b; };
7896 if(a === 0) return function(pos){ return pos === b; };
7897 //when b <= 0 and a === 1, they match any element
7898 if(a === 1) return b < 0 ? trueFunc : function(pos){ return pos >= b; };
7899
7900 //when a > 0, modulo can be used to check if there is a match
7901 var bMod = b % a;
7902 if(bMod < 0) bMod += a;
7903
7904 if(a > 1){
7905 return function(pos){
7906 return pos >= b && pos % a === bMod;
7907 };
7908 }
7909
7910 a *= -1; //make `a` positive
7911
7912 return function(pos){
7913 return pos <= b && pos % a === bMod;
7914 };
7915}
7916
7917var nthCheck = function nthCheck(formula){
7918 return compile_1(parse_1(formula));
7919};
7920
7921var parse_1$1 = parse_1;
7922var compile_1$1 = compile_1;
7923nthCheck.parse = parse_1$1;
7924nthCheck.compile = compile_1$1;
7925
7926var hasAttrib = domutils.hasAttrib,
7927 getAttributeValue = domutils.getAttributeValue,
7928 falseFunc$1 = boolbase.falseFunc;
7929
7930//https://github.com/slevithan/XRegExp/blob/master/src/xregexp.js#L469
7931var reChars = /[-[\]{}()*+?.,\\^$|#\s]/g;
7932
7933/*
7934 attribute selectors
7935*/
7936
7937var attributeRules = {
7938 __proto__: null,
7939 equals: function(next, data){
7940 var name = data.name,
7941 value = data.value;
7942
7943 if(data.ignoreCase){
7944 value = value.toLowerCase();
7945
7946 return function equalsIC(elem){
7947 var attr = getAttributeValue(elem, name);
7948 return attr != null && attr.toLowerCase() === value && next(elem);
7949 };
7950 }
7951
7952 return function equals(elem){
7953 return getAttributeValue(elem, name) === value && next(elem);
7954 };
7955 },
7956 hyphen: function(next, data){
7957 var name = data.name,
7958 value = data.value,
7959 len = value.length;
7960
7961 if(data.ignoreCase){
7962 value = value.toLowerCase();
7963
7964 return function hyphenIC(elem){
7965 var attr = getAttributeValue(elem, name);
7966 return attr != null &&
7967 (attr.length === len || attr.charAt(len) === "-") &&
7968 attr.substr(0, len).toLowerCase() === value &&
7969 next(elem);
7970 };
7971 }
7972
7973 return function hyphen(elem){
7974 var attr = getAttributeValue(elem, name);
7975 return attr != null &&
7976 attr.substr(0, len) === value &&
7977 (attr.length === len || attr.charAt(len) === "-") &&
7978 next(elem);
7979 };
7980 },
7981 element: function(next, data){
7982 var name = data.name,
7983 value = data.value;
7984
7985 if(/\s/.test(value)){
7986 return falseFunc$1;
7987 }
7988
7989 value = value.replace(reChars, "\\$&");
7990
7991 var pattern = "(?:^|\\s)" + value + "(?:$|\\s)",
7992 flags = data.ignoreCase ? "i" : "",
7993 regex = new RegExp(pattern, flags);
7994
7995 return function element(elem){
7996 var attr = getAttributeValue(elem, name);
7997 return attr != null && regex.test(attr) && next(elem);
7998 };
7999 },
8000 exists: function(next, data){
8001 var name = data.name;
8002 return function exists(elem){
8003 return hasAttrib(elem, name) && next(elem);
8004 };
8005 },
8006 start: function(next, data){
8007 var name = data.name,
8008 value = data.value,
8009 len = value.length;
8010
8011 if(len === 0){
8012 return falseFunc$1;
8013 }
8014
8015 if(data.ignoreCase){
8016 value = value.toLowerCase();
8017
8018 return function startIC(elem){
8019 var attr = getAttributeValue(elem, name);
8020 return attr != null && attr.substr(0, len).toLowerCase() === value && next(elem);
8021 };
8022 }
8023
8024 return function start(elem){
8025 var attr = getAttributeValue(elem, name);
8026 return attr != null && attr.substr(0, len) === value && next(elem);
8027 };
8028 },
8029 end: function(next, data){
8030 var name = data.name,
8031 value = data.value,
8032 len = -value.length;
8033
8034 if(len === 0){
8035 return falseFunc$1;
8036 }
8037
8038 if(data.ignoreCase){
8039 value = value.toLowerCase();
8040
8041 return function endIC(elem){
8042 var attr = getAttributeValue(elem, name);
8043 return attr != null && attr.substr(len).toLowerCase() === value && next(elem);
8044 };
8045 }
8046
8047 return function end(elem){
8048 var attr = getAttributeValue(elem, name);
8049 return attr != null && attr.substr(len) === value && next(elem);
8050 };
8051 },
8052 any: function(next, data){
8053 var name = data.name,
8054 value = data.value;
8055
8056 if(value === ""){
8057 return falseFunc$1;
8058 }
8059
8060 if(data.ignoreCase){
8061 var regex = new RegExp(value.replace(reChars, "\\$&"), "i");
8062
8063 return function anyIC(elem){
8064 var attr = getAttributeValue(elem, name);
8065 return attr != null && regex.test(attr) && next(elem);
8066 };
8067 }
8068
8069 return function any(elem){
8070 var attr = getAttributeValue(elem, name);
8071 return attr != null && attr.indexOf(value) >= 0 && next(elem);
8072 };
8073 },
8074 not: function(next, data){
8075 var name = data.name,
8076 value = data.value;
8077
8078 if(value === ""){
8079 return function notEmpty(elem){
8080 return !!getAttributeValue(elem, name) && next(elem);
8081 };
8082 } else if(data.ignoreCase){
8083 value = value.toLowerCase();
8084
8085 return function notIC(elem){
8086 var attr = getAttributeValue(elem, name);
8087 return attr != null && attr.toLowerCase() !== value && next(elem);
8088 };
8089 }
8090
8091 return function not(elem){
8092 return getAttributeValue(elem, name) !== value && next(elem);
8093 };
8094 }
8095};
8096
8097var attributes = {
8098 compile: function(next, data, options){
8099 if(options && options.strict && (
8100 data.ignoreCase || data.action === "not"
8101 )) throw SyntaxError("Unsupported attribute selector");
8102 return attributeRules[data.action](next, data);
8103 },
8104 rules: attributeRules
8105};
8106
8107/*
8108 pseudo selectors
8109
8110 ---
8111
8112 they are available in two forms:
8113 * filters called when the selector
8114 is compiled and return a function
8115 that needs to return next()
8116 * pseudos get called on execution
8117 they need to return a boolean
8118*/
8119
8120var isTag$2 = domutils.isTag,
8121 getText$1 = domutils.getText,
8122 getParent = domutils.getParent,
8123 getChildren = domutils.getChildren,
8124 getSiblings = domutils.getSiblings,
8125 hasAttrib$1 = domutils.hasAttrib,
8126 getName = domutils.getName,
8127 getAttribute= domutils.getAttributeValue,
8128 checkAttrib = attributes.rules.equals,
8129 trueFunc$1 = boolbase.trueFunc,
8130 falseFunc$2 = boolbase.falseFunc;
8131
8132//helper methods
8133function getFirstElement(elems){
8134 for(var i = 0; elems && i < elems.length; i++){
8135 if(isTag$2(elems[i])) return elems[i];
8136 }
8137}
8138
8139function getAttribFunc(name, value){
8140 var data = {name: name, value: value};
8141 return function attribFunc(next){
8142 return checkAttrib(next, data);
8143 };
8144}
8145
8146function getChildFunc(next){
8147 return function(elem){
8148 return !!getParent(elem) && next(elem);
8149 };
8150}
8151
8152var filters = {
8153 contains: function(next, text){
8154 return function contains(elem){
8155 return next(elem) && getText$1(elem).indexOf(text) >= 0;
8156 };
8157 },
8158 icontains: function(next, text){
8159 var itext = text.toLowerCase();
8160 return function icontains(elem){
8161 return next(elem) &&
8162 getText$1(elem).toLowerCase().indexOf(itext) >= 0;
8163 };
8164 },
8165
8166 //location specific methods
8167 "nth-child": function(next, rule){
8168 var func = nthCheck(rule);
8169
8170 if(func === falseFunc$2) return func;
8171 if(func === trueFunc$1) return getChildFunc(next);
8172
8173 return function nthChild(elem){
8174 var siblings = getSiblings(elem);
8175
8176 for(var i = 0, pos = 0; i < siblings.length; i++){
8177 if(isTag$2(siblings[i])){
8178 if(siblings[i] === elem) break;
8179 else pos++;
8180 }
8181 }
8182
8183 return func(pos) && next(elem);
8184 };
8185 },
8186 "nth-last-child": function(next, rule){
8187 var func = nthCheck(rule);
8188
8189 if(func === falseFunc$2) return func;
8190 if(func === trueFunc$1) return getChildFunc(next);
8191
8192 return function nthLastChild(elem){
8193 var siblings = getSiblings(elem);
8194
8195 for(var pos = 0, i = siblings.length - 1; i >= 0; i--){
8196 if(isTag$2(siblings[i])){
8197 if(siblings[i] === elem) break;
8198 else pos++;
8199 }
8200 }
8201
8202 return func(pos) && next(elem);
8203 };
8204 },
8205 "nth-of-type": function(next, rule){
8206 var func = nthCheck(rule);
8207
8208 if(func === falseFunc$2) return func;
8209 if(func === trueFunc$1) return getChildFunc(next);
8210
8211 return function nthOfType(elem){
8212 var siblings = getSiblings(elem);
8213
8214 for(var pos = 0, i = 0; i < siblings.length; i++){
8215 if(isTag$2(siblings[i])){
8216 if(siblings[i] === elem) break;
8217 if(getName(siblings[i]) === getName(elem)) pos++;
8218 }
8219 }
8220
8221 return func(pos) && next(elem);
8222 };
8223 },
8224 "nth-last-of-type": function(next, rule){
8225 var func = nthCheck(rule);
8226
8227 if(func === falseFunc$2) return func;
8228 if(func === trueFunc$1) return getChildFunc(next);
8229
8230 return function nthLastOfType(elem){
8231 var siblings = getSiblings(elem);
8232
8233 for(var pos = 0, i = siblings.length - 1; i >= 0; i--){
8234 if(isTag$2(siblings[i])){
8235 if(siblings[i] === elem) break;
8236 if(getName(siblings[i]) === getName(elem)) pos++;
8237 }
8238 }
8239
8240 return func(pos) && next(elem);
8241 };
8242 },
8243
8244 //TODO determine the actual root element
8245 root: function(next){
8246 return function(elem){
8247 return !getParent(elem) && next(elem);
8248 };
8249 },
8250
8251 scope: function(next, rule, options, context){
8252 if(!context || context.length === 0){
8253 //equivalent to :root
8254 return filters.root(next);
8255 }
8256
8257 if(context.length === 1){
8258 //NOTE: can't be unpacked, as :has uses this for side-effects
8259 return function(elem){
8260 return context[0] === elem && next(elem);
8261 };
8262 }
8263
8264 return function(elem){
8265 return context.indexOf(elem) >= 0 && next(elem);
8266 };
8267 },
8268
8269 //jQuery extensions (others follow as pseudos)
8270 checkbox: getAttribFunc("type", "checkbox"),
8271 file: getAttribFunc("type", "file"),
8272 password: getAttribFunc("type", "password"),
8273 radio: getAttribFunc("type", "radio"),
8274 reset: getAttribFunc("type", "reset"),
8275 image: getAttribFunc("type", "image"),
8276 submit: getAttribFunc("type", "submit")
8277};
8278
8279//while filters are precompiled, pseudos get called when they are needed
8280var pseudos = {
8281 empty: function(elem){
8282 return !getChildren(elem).some(function(elem){
8283 return isTag$2(elem) || elem.type === "text";
8284 });
8285 },
8286
8287 "first-child": function(elem){
8288 return getFirstElement(getSiblings(elem)) === elem;
8289 },
8290 "last-child": function(elem){
8291 var siblings = getSiblings(elem);
8292
8293 for(var i = siblings.length - 1; i >= 0; i--){
8294 if(siblings[i] === elem) return true;
8295 if(isTag$2(siblings[i])) break;
8296 }
8297
8298 return false;
8299 },
8300 "first-of-type": function(elem){
8301 var siblings = getSiblings(elem);
8302
8303 for(var i = 0; i < siblings.length; i++){
8304 if(isTag$2(siblings[i])){
8305 if(siblings[i] === elem) return true;
8306 if(getName(siblings[i]) === getName(elem)) break;
8307 }
8308 }
8309
8310 return false;
8311 },
8312 "last-of-type": function(elem){
8313 var siblings = getSiblings(elem);
8314
8315 for(var i = siblings.length-1; i >= 0; i--){
8316 if(isTag$2(siblings[i])){
8317 if(siblings[i] === elem) return true;
8318 if(getName(siblings[i]) === getName(elem)) break;
8319 }
8320 }
8321
8322 return false;
8323 },
8324 "only-of-type": function(elem){
8325 var siblings = getSiblings(elem);
8326
8327 for(var i = 0, j = siblings.length; i < j; i++){
8328 if(isTag$2(siblings[i])){
8329 if(siblings[i] === elem) continue;
8330 if(getName(siblings[i]) === getName(elem)) return false;
8331 }
8332 }
8333
8334 return true;
8335 },
8336 "only-child": function(elem){
8337 var siblings = getSiblings(elem);
8338
8339 for(var i = 0; i < siblings.length; i++){
8340 if(isTag$2(siblings[i]) && siblings[i] !== elem) return false;
8341 }
8342
8343 return true;
8344 },
8345
8346 //:matches(a, area, link)[href]
8347 link: function(elem){
8348 return hasAttrib$1(elem, "href");
8349 },
8350 visited: falseFunc$2, //seems to be a valid implementation
8351 //TODO: :any-link once the name is finalized (as an alias of :link)
8352
8353 //forms
8354 //to consider: :target
8355
8356 //:matches([selected], select:not([multiple]):not(> option[selected]) > option:first-of-type)
8357 selected: function(elem){
8358 if(hasAttrib$1(elem, "selected")) return true;
8359 else if(getName(elem) !== "option") return false;
8360
8361 //the first <option> in a <select> is also selected
8362 var parent = getParent(elem);
8363
8364 if(
8365 !parent ||
8366 getName(parent) !== "select" ||
8367 hasAttrib$1(parent, "multiple")
8368 ) return false;
8369
8370 var siblings = getChildren(parent),
8371 sawElem = false;
8372
8373 for(var i = 0; i < siblings.length; i++){
8374 if(isTag$2(siblings[i])){
8375 if(siblings[i] === elem){
8376 sawElem = true;
8377 } else if(!sawElem){
8378 return false;
8379 } else if(hasAttrib$1(siblings[i], "selected")){
8380 return false;
8381 }
8382 }
8383 }
8384
8385 return sawElem;
8386 },
8387 //https://html.spec.whatwg.org/multipage/scripting.html#disabled-elements
8388 //:matches(
8389 // :matches(button, input, select, textarea, menuitem, optgroup, option)[disabled],
8390 // optgroup[disabled] > option),
8391 // fieldset[disabled] * //TODO not child of first <legend>
8392 //)
8393 disabled: function(elem){
8394 return hasAttrib$1(elem, "disabled");
8395 },
8396 enabled: function(elem){
8397 return !hasAttrib$1(elem, "disabled");
8398 },
8399 //:matches(:matches(:radio, :checkbox)[checked], :selected) (TODO menuitem)
8400 checked: function(elem){
8401 return hasAttrib$1(elem, "checked") || pseudos.selected(elem);
8402 },
8403 //:matches(input, select, textarea)[required]
8404 required: function(elem){
8405 return hasAttrib$1(elem, "required");
8406 },
8407 //:matches(input, select, textarea):not([required])
8408 optional: function(elem){
8409 return !hasAttrib$1(elem, "required");
8410 },
8411
8412 //jQuery extensions
8413
8414 //:not(:empty)
8415 parent: function(elem){
8416 return !pseudos.empty(elem);
8417 },
8418 //:matches(h1, h2, h3, h4, h5, h6)
8419 header: function(elem){
8420 var name = getName(elem);
8421 return name === "h1" ||
8422 name === "h2" ||
8423 name === "h3" ||
8424 name === "h4" ||
8425 name === "h5" ||
8426 name === "h6";
8427 },
8428
8429 //:matches(button, input[type=button])
8430 button: function(elem){
8431 var name = getName(elem);
8432 return name === "button" ||
8433 name === "input" &&
8434 getAttribute(elem, "type") === "button";
8435 },
8436 //:matches(input, textarea, select, button)
8437 input: function(elem){
8438 var name = getName(elem);
8439 return name === "input" ||
8440 name === "textarea" ||
8441 name === "select" ||
8442 name === "button";
8443 },
8444 //input:matches(:not([type!='']), [type='text' i])
8445 text: function(elem){
8446 var attr;
8447 return getName(elem) === "input" && (
8448 !(attr = getAttribute(elem, "type")) ||
8449 attr.toLowerCase() === "text"
8450 );
8451 }
8452};
8453
8454function verifyArgs(func, name, subselect){
8455 if(subselect === null){
8456 if(func.length > 1 && name !== "scope"){
8457 throw new SyntaxError("pseudo-selector :" + name + " requires an argument");
8458 }
8459 } else {
8460 if(func.length === 1){
8461 throw new SyntaxError("pseudo-selector :" + name + " doesn't have any arguments");
8462 }
8463 }
8464}
8465
8466//FIXME this feels hacky
8467var re_CSS3 = /^(?:(?:nth|last|first|only)-(?:child|of-type)|root|empty|(?:en|dis)abled|checked|not)$/;
8468
8469var pseudos_1 = {
8470 compile: function(next, data, options, context){
8471 var name = data.name,
8472 subselect = data.data;
8473
8474 if(options && options.strict && !re_CSS3.test(name)){
8475 throw SyntaxError(":" + name + " isn't part of CSS3");
8476 }
8477
8478 if(typeof filters[name] === "function"){
8479 verifyArgs(filters[name], name, subselect);
8480 return filters[name](next, subselect, options, context);
8481 } else if(typeof pseudos[name] === "function"){
8482 var func = pseudos[name];
8483 verifyArgs(func, name, subselect);
8484
8485 if(next === trueFunc$1) return func;
8486
8487 return function pseudoArgs(elem){
8488 return func(elem, subselect) && next(elem);
8489 };
8490 } else {
8491 throw new SyntaxError("unmatched pseudo-class :" + name);
8492 }
8493 },
8494 filters: filters,
8495 pseudos: pseudos
8496};
8497
8498var cssWhat = parse$1;
8499
8500var re_name = /^(?:\\.|[\w\-\u00b0-\uFFFF])+/,
8501 re_escape = /\\([\da-f]{1,6}\s?|(\s)|.)/ig,
8502 //modified version of https://github.com/jquery/sizzle/blob/master/src/sizzle.js#L87
8503 re_attr = /^\s*((?:\\.|[\w\u00b0-\uFFFF\-])+)\s*(?:(\S?)=\s*(?:(['"])([^]*?)\3|(#?(?:\\.|[\w\u00b0-\uFFFF\-])*)|)|)\s*(i)?\]/;
8504
8505var actionTypes = {
8506 __proto__: null,
8507 "undefined": "exists",
8508 "": "equals",
8509 "~": "element",
8510 "^": "start",
8511 "$": "end",
8512 "*": "any",
8513 "!": "not",
8514 "|": "hyphen"
8515};
8516
8517var simpleSelectors = {
8518 __proto__: null,
8519 ">": "child",
8520 "<": "parent",
8521 "~": "sibling",
8522 "+": "adjacent"
8523};
8524
8525var attribSelectors = {
8526 __proto__: null,
8527 "#": ["id", "equals"],
8528 ".": ["class", "element"]
8529};
8530
8531//pseudos, whose data-property is parsed as well
8532var unpackPseudos = {
8533 __proto__: null,
8534 "has": true,
8535 "not": true,
8536 "matches": true
8537};
8538
8539var stripQuotesFromPseudos = {
8540 __proto__: null,
8541 "contains": true,
8542 "icontains": true
8543};
8544
8545var quotes = {
8546 __proto__: null,
8547 "\"": true,
8548 "'": true
8549};
8550
8551//unescape function taken from https://github.com/jquery/sizzle/blob/master/src/sizzle.js#L139
8552function funescape( _, escaped, escapedWhitespace ) {
8553 var high = "0x" + escaped - 0x10000;
8554 // NaN means non-codepoint
8555 // Support: Firefox
8556 // Workaround erroneous numeric interpretation of +"0x"
8557 return high !== high || escapedWhitespace ?
8558 escaped :
8559 // BMP codepoint
8560 high < 0 ?
8561 String.fromCharCode( high + 0x10000 ) :
8562 // Supplemental Plane codepoint (surrogate pair)
8563 String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
8564}
8565
8566function unescapeCSS(str){
8567 return str.replace(re_escape, funescape);
8568}
8569
8570function isWhitespace(c){
8571 return c === " " || c === "\n" || c === "\t" || c === "\f" || c === "\r";
8572}
8573
8574function parse$1(selector, options){
8575 var subselects = [];
8576
8577 selector = parseSelector(subselects, selector + "", options);
8578
8579 if(selector !== ""){
8580 throw new SyntaxError("Unmatched selector: " + selector);
8581 }
8582
8583 return subselects;
8584}
8585
8586function parseSelector(subselects, selector, options){
8587 var tokens = [],
8588 sawWS = false,
8589 data, firstChar, name, quot;
8590
8591 function getName(){
8592 var sub = selector.match(re_name)[0];
8593 selector = selector.substr(sub.length);
8594 return unescapeCSS(sub);
8595 }
8596
8597 function stripWhitespace(start){
8598 while(isWhitespace(selector.charAt(start))) start++;
8599 selector = selector.substr(start);
8600 }
8601
8602 function isEscaped(pos) {
8603 var slashCount = 0;
8604
8605 while (selector.charAt(--pos) === "\\") slashCount++;
8606 return (slashCount & 1) === 1;
8607 }
8608
8609 stripWhitespace(0);
8610
8611 while(selector !== ""){
8612 firstChar = selector.charAt(0);
8613
8614 if(isWhitespace(firstChar)){
8615 sawWS = true;
8616 stripWhitespace(1);
8617 } else if(firstChar in simpleSelectors){
8618 tokens.push({type: simpleSelectors[firstChar]});
8619 sawWS = false;
8620
8621 stripWhitespace(1);
8622 } else if(firstChar === ","){
8623 if(tokens.length === 0){
8624 throw new SyntaxError("empty sub-selector");
8625 }
8626 subselects.push(tokens);
8627 tokens = [];
8628 sawWS = false;
8629 stripWhitespace(1);
8630 } else {
8631 if(sawWS){
8632 if(tokens.length > 0){
8633 tokens.push({type: "descendant"});
8634 }
8635 sawWS = false;
8636 }
8637
8638 if(firstChar === "*"){
8639 selector = selector.substr(1);
8640 tokens.push({type: "universal"});
8641 } else if(firstChar in attribSelectors){
8642 selector = selector.substr(1);
8643 tokens.push({
8644 type: "attribute",
8645 name: attribSelectors[firstChar][0],
8646 action: attribSelectors[firstChar][1],
8647 value: getName(),
8648 ignoreCase: false
8649 });
8650 } else if(firstChar === "["){
8651 selector = selector.substr(1);
8652 data = selector.match(re_attr);
8653 if(!data){
8654 throw new SyntaxError("Malformed attribute selector: " + selector);
8655 }
8656 selector = selector.substr(data[0].length);
8657 name = unescapeCSS(data[1]);
8658
8659 if(
8660 !options || (
8661 "lowerCaseAttributeNames" in options ?
8662 options.lowerCaseAttributeNames :
8663 !options.xmlMode
8664 )
8665 ){
8666 name = name.toLowerCase();
8667 }
8668
8669 tokens.push({
8670 type: "attribute",
8671 name: name,
8672 action: actionTypes[data[2]],
8673 value: unescapeCSS(data[4] || data[5] || ""),
8674 ignoreCase: !!data[6]
8675 });
8676
8677 } else if(firstChar === ":"){
8678 if(selector.charAt(1) === ":"){
8679 selector = selector.substr(2);
8680 tokens.push({type: "pseudo-element", name: getName().toLowerCase()});
8681 continue;
8682 }
8683
8684 selector = selector.substr(1);
8685
8686 name = getName().toLowerCase();
8687 data = null;
8688
8689 if(selector.charAt(0) === "("){
8690 if(name in unpackPseudos){
8691 quot = selector.charAt(1);
8692 var quoted = quot in quotes;
8693
8694 selector = selector.substr(quoted + 1);
8695
8696 data = [];
8697 selector = parseSelector(data, selector, options);
8698
8699 if(quoted){
8700 if(selector.charAt(0) !== quot){
8701 throw new SyntaxError("unmatched quotes in :" + name);
8702 } else {
8703 selector = selector.substr(1);
8704 }
8705 }
8706
8707 if(selector.charAt(0) !== ")"){
8708 throw new SyntaxError("missing closing parenthesis in :" + name + " " + selector);
8709 }
8710
8711 selector = selector.substr(1);
8712 } else {
8713 var pos = 1, counter = 1;
8714
8715 for(; counter > 0 && pos < selector.length; pos++){
8716 if(selector.charAt(pos) === "(" && !isEscaped(pos)) counter++;
8717 else if(selector.charAt(pos) === ")" && !isEscaped(pos)) counter--;
8718 }
8719
8720 if(counter){
8721 throw new SyntaxError("parenthesis not matched");
8722 }
8723
8724 data = selector.substr(1, pos - 2);
8725 selector = selector.substr(pos);
8726
8727 if(name in stripQuotesFromPseudos){
8728 quot = data.charAt(0);
8729
8730 if(quot === data.slice(-1) && quot in quotes){
8731 data = data.slice(1, -1);
8732 }
8733
8734 data = unescapeCSS(data);
8735 }
8736 }
8737 }
8738
8739 tokens.push({type: "pseudo", name: name, data: data});
8740 } else if(re_name.test(selector)){
8741 name = getName();
8742
8743 if(!options || ("lowerCaseTags" in options ? options.lowerCaseTags : !options.xmlMode)){
8744 name = name.toLowerCase();
8745 }
8746
8747 tokens.push({type: "tag", name: name});
8748 } else {
8749 if(tokens.length && tokens[tokens.length - 1].type === "descendant"){
8750 tokens.pop();
8751 }
8752 addToken(subselects, tokens);
8753 return selector;
8754 }
8755 }
8756 }
8757
8758 addToken(subselects, tokens);
8759
8760 return selector;
8761}
8762
8763function addToken(subselects, tokens){
8764 if(subselects.length > 0 && tokens.length === 0){
8765 throw new SyntaxError("empty sub-selector");
8766 }
8767
8768 subselects.push(tokens);
8769}
8770
8771var isTag$3 = domutils.isTag,
8772 getParent$1 = domutils.getParent,
8773 getChildren$1 = domutils.getChildren,
8774 getSiblings$1 = domutils.getSiblings,
8775 getName$1 = domutils.getName;
8776
8777/*
8778 all available rules
8779*/
8780var general = {
8781 __proto__: null,
8782
8783 attribute: attributes.compile,
8784 pseudo: pseudos_1.compile,
8785
8786 //tags
8787 tag: function(next, data){
8788 var name = data.name;
8789 return function tag(elem){
8790 return getName$1(elem) === name && next(elem);
8791 };
8792 },
8793
8794 //traversal
8795 descendant: function(next, rule, options, context, acceptSelf){
8796 return function descendant(elem){
8797
8798 if (acceptSelf && next(elem)) return true;
8799
8800 var found = false;
8801
8802 while(!found && (elem = getParent$1(elem))){
8803 found = next(elem);
8804 }
8805
8806 return found;
8807 };
8808 },
8809 parent: function(next, data, options){
8810 if(options && options.strict) throw SyntaxError("Parent selector isn't part of CSS3");
8811
8812 return function parent(elem){
8813 return getChildren$1(elem).some(test);
8814 };
8815
8816 function test(elem){
8817 return isTag$3(elem) && next(elem);
8818 }
8819 },
8820 child: function(next){
8821 return function child(elem){
8822 var parent = getParent$1(elem);
8823 return !!parent && next(parent);
8824 };
8825 },
8826 sibling: function(next){
8827 return function sibling(elem){
8828 var siblings = getSiblings$1(elem);
8829
8830 for(var i = 0; i < siblings.length; i++){
8831 if(isTag$3(siblings[i])){
8832 if(siblings[i] === elem) break;
8833 if(next(siblings[i])) return true;
8834 }
8835 }
8836
8837 return false;
8838 };
8839 },
8840 adjacent: function(next){
8841 return function adjacent(elem){
8842 var siblings = getSiblings$1(elem),
8843 lastElement;
8844
8845 for(var i = 0; i < siblings.length; i++){
8846 if(isTag$3(siblings[i])){
8847 if(siblings[i] === elem) break;
8848 lastElement = siblings[i];
8849 }
8850 }
8851
8852 return !!lastElement && next(lastElement);
8853 };
8854 },
8855 universal: function(next){
8856 return next;
8857 }
8858};
8859
8860var universal = 50;
8861var tag = 30;
8862var attribute = 1;
8863var pseudo = 0;
8864var descendant = -1;
8865var child = -1;
8866var parent = -1;
8867var sibling = -1;
8868var adjacent = -1;
8869var procedure = {
8870 universal: universal,
8871 tag: tag,
8872 attribute: attribute,
8873 pseudo: pseudo,
8874 descendant: descendant,
8875 child: child,
8876 parent: parent,
8877 sibling: sibling,
8878 adjacent: adjacent
8879};
8880
8881var procedure$1 = {
8882 __proto__: null,
8883 universal: universal,
8884 tag: tag,
8885 attribute: attribute,
8886 pseudo: pseudo,
8887 descendant: descendant,
8888 child: child,
8889 parent: parent,
8890 sibling: sibling,
8891 adjacent: adjacent,
8892 'default': procedure
8893};
8894
8895var procedure$2 = getCjsExportFromNamespace(procedure$1);
8896
8897var sort = sortByProcedure;
8898
8899/*
8900 sort the parts of the passed selector,
8901 as there is potential for optimization
8902 (some types of selectors are faster than others)
8903*/
8904
8905
8906
8907var attributes$1 = {
8908 __proto__: null,
8909 exists: 10,
8910 equals: 8,
8911 not: 7,
8912 start: 6,
8913 end: 6,
8914 any: 5,
8915 hyphen: 4,
8916 element: 4
8917};
8918
8919function sortByProcedure(arr){
8920 var procs = arr.map(getProcedure);
8921 for(var i = 1; i < arr.length; i++){
8922 var procNew = procs[i];
8923
8924 if(procNew < 0) continue;
8925
8926 for(var j = i - 1; j >= 0 && procNew < procs[j]; j--){
8927 var token = arr[j + 1];
8928 arr[j + 1] = arr[j];
8929 arr[j] = token;
8930 procs[j + 1] = procs[j];
8931 procs[j] = procNew;
8932 }
8933 }
8934}
8935
8936function getProcedure(token){
8937 var proc = procedure$2[token.type];
8938
8939 if(proc === procedure$2.attribute){
8940 proc = attributes$1[token.action];
8941
8942 if(proc === attributes$1.equals && token.name === "id"){
8943 //prefer ID selectors (eg. #ID)
8944 proc = 9;
8945 }
8946
8947 if(token.ignoreCase){
8948 //ignoreCase adds some overhead, prefer "normal" token
8949 //this is a binary operation, to ensure it's still an int
8950 proc >>= 1;
8951 }
8952 } else if(proc === procedure$2.pseudo){
8953 if(!token.data){
8954 proc = 3;
8955 } else if(token.name === "has" || token.name === "contains"){
8956 proc = 0; //expensive in any case
8957 } else if(token.name === "matches" || token.name === "not"){
8958 proc = 0;
8959 for(var i = 0; i < token.data.length; i++){
8960 //TODO better handling of complex selectors
8961 if(token.data[i].length !== 1) continue;
8962 var cur = getProcedure(token.data[i][0]);
8963 //avoid executing :has or :contains
8964 if(cur === 0){
8965 proc = 0;
8966 break;
8967 }
8968 if(cur > proc) proc = cur;
8969 }
8970 if(token.data.length > 1 && proc > 0) proc -= 1;
8971 } else {
8972 proc = 1;
8973 }
8974 }
8975 return proc;
8976}
8977
8978/*
8979 compiles a selector to an executable function
8980*/
8981
8982var compile_1$2 = compile$1;
8983var compileUnsafe_1 = compileUnsafe;
8984var compileToken_1 = compileToken;
8985
8986var isTag$4 = domutils.isTag,
8987 trueFunc$2 = boolbase.trueFunc,
8988 falseFunc$3 = boolbase.falseFunc;
8989
8990function compile$1(selector, options, context){
8991 var next = compileUnsafe(selector, options, context);
8992 return wrap(next);
8993}
8994
8995function wrap(next){
8996 return function base(elem){
8997 return isTag$4(elem) && next(elem);
8998 };
8999}
9000
9001function compileUnsafe(selector, options, context){
9002 var token = cssWhat(selector, options);
9003 return compileToken(token, options, context);
9004}
9005
9006function includesScopePseudo(t){
9007 return t.type === "pseudo" && (
9008 t.name === "scope" || (
9009 Array.isArray(t.data) &&
9010 t.data.some(function(data){
9011 return data.some(includesScopePseudo);
9012 })
9013 )
9014 );
9015}
9016
9017var DESCENDANT_TOKEN = {type: "descendant"},
9018 SCOPE_TOKEN = {type: "pseudo", name: "scope"},
9019 PLACEHOLDER_ELEMENT = {},
9020 getParent$2 = domutils.getParent;
9021
9022//CSS 4 Spec (Draft): 3.3.1. Absolutizing a Scope-relative Selector
9023//http://www.w3.org/TR/selectors4/#absolutizing
9024function absolutize(token, context){
9025 //TODO better check if context is document
9026 var hasContext = !!context && !!context.length && context.every(function(e){
9027 return e === PLACEHOLDER_ELEMENT || !!getParent$2(e);
9028 });
9029
9030
9031 token.forEach(function(t){
9032 if(t.length > 0 && isTraversal(t[0]) && t[0].type !== "descendant"); else if(hasContext && !includesScopePseudo(t)){
9033 t.unshift(DESCENDANT_TOKEN);
9034 } else {
9035 return;
9036 }
9037
9038 t.unshift(SCOPE_TOKEN);
9039 });
9040}
9041
9042function compileToken(token, options, context){
9043 token = token.filter(function(t){ return t.length > 0; });
9044
9045 token.forEach(sort);
9046
9047 var isArrayContext = Array.isArray(context);
9048
9049 context = (options && options.context) || context;
9050
9051 if(context && !isArrayContext) context = [context];
9052
9053 absolutize(token, context);
9054
9055 return token
9056 .map(function(rules){ return compileRules(rules, options, context, isArrayContext); })
9057 .reduce(reduceRules, falseFunc$3);
9058}
9059
9060function isTraversal(t){
9061 return procedure$2[t.type] < 0;
9062}
9063
9064function compileRules(rules, options, context, isArrayContext){
9065 var acceptSelf = (isArrayContext && rules[0].name === "scope" && rules[1].type === "descendant");
9066 return rules.reduce(function(func, rule, index){
9067 if(func === falseFunc$3) return func;
9068 return general[rule.type](func, rule, options, context, acceptSelf && index === 1);
9069 }, options && options.rootFunc || trueFunc$2);
9070}
9071
9072function reduceRules(a, b){
9073 if(b === falseFunc$3 || a === trueFunc$2){
9074 return a;
9075 }
9076 if(a === falseFunc$3 || b === trueFunc$2){
9077 return b;
9078 }
9079
9080 return function combine(elem){
9081 return a(elem) || b(elem);
9082 };
9083}
9084
9085//:not, :has and :matches have to compile selectors
9086//doing this in lib/pseudos.js would lead to circular dependencies,
9087//so we add them here
9088
9089var filters$1 = pseudos_1.filters,
9090 existsOne$1 = domutils.existsOne,
9091 isTag$4 = domutils.isTag,
9092 getChildren$2 = domutils.getChildren;
9093
9094
9095function containsTraversal(t){
9096 return t.some(isTraversal);
9097}
9098
9099filters$1.not = function(next, token, options, context){
9100 var opts = {
9101 xmlMode: !!(options && options.xmlMode),
9102 strict: !!(options && options.strict)
9103 };
9104
9105 if(opts.strict){
9106 if(token.length > 1 || token.some(containsTraversal)){
9107 throw new SyntaxError("complex selectors in :not aren't allowed in strict mode");
9108 }
9109 }
9110
9111 var func = compileToken(token, opts, context);
9112
9113 if(func === falseFunc$3) return next;
9114 if(func === trueFunc$2) return falseFunc$3;
9115
9116 return function(elem){
9117 return !func(elem) && next(elem);
9118 };
9119};
9120
9121filters$1.has = function(next, token, options){
9122 var opts = {
9123 xmlMode: !!(options && options.xmlMode),
9124 strict: !!(options && options.strict)
9125 };
9126
9127 //FIXME: Uses an array as a pointer to the current element (side effects)
9128 var context = token.some(containsTraversal) ? [PLACEHOLDER_ELEMENT] : null;
9129
9130 var func = compileToken(token, opts, context);
9131
9132 if(func === falseFunc$3) return falseFunc$3;
9133 if(func === trueFunc$2) return function(elem){
9134 return getChildren$2(elem).some(isTag$4) && next(elem);
9135 };
9136
9137 func = wrap(func);
9138
9139 if(context){
9140 return function has(elem){
9141 return next(elem) && (
9142 (context[0] = elem), existsOne$1(func, getChildren$2(elem))
9143 );
9144 };
9145 }
9146
9147 return function has(elem){
9148 return next(elem) && existsOne$1(func, getChildren$2(elem));
9149 };
9150};
9151
9152filters$1.matches = function(next, token, options, context){
9153 var opts = {
9154 xmlMode: !!(options && options.xmlMode),
9155 strict: !!(options && options.strict),
9156 rootFunc: next
9157 };
9158
9159 return compileToken(token, opts, context);
9160};
9161compile_1$2.compileUnsafe = compileUnsafe_1;
9162compile_1$2.compileToken = compileToken_1;
9163
9164var cssSelect = CSSselect;
9165
9166var findOne$1 = domutils.findOne,
9167 findAll$1 = domutils.findAll,
9168 getChildren$3 = domutils.getChildren,
9169 removeSubsets = domutils.removeSubsets,
9170 falseFunc$4 = boolbase.falseFunc,
9171 compileUnsafe$1 = compile_1$2.compileUnsafe,
9172 compileToken$1 = compile_1$2.compileToken;
9173
9174function getSelectorFunc(searchFunc){
9175 return function select(query, elems, options){
9176 if(typeof query !== "function") query = compileUnsafe$1(query, options, elems);
9177 if(!Array.isArray(elems)) elems = getChildren$3(elems);
9178 else elems = removeSubsets(elems);
9179 return searchFunc(query, elems);
9180 };
9181}
9182
9183var selectAll = getSelectorFunc(function selectAll(query, elems){
9184 return (query === falseFunc$4 || !elems || elems.length === 0) ? [] : findAll$1(query, elems);
9185});
9186
9187var selectOne = getSelectorFunc(function selectOne(query, elems){
9188 return (query === falseFunc$4 || !elems || elems.length === 0) ? null : findOne$1(query, elems);
9189});
9190
9191function is(elem, query, options){
9192 return (typeof query === "function" ? query : compile_1$2(query, options))(elem);
9193}
9194
9195/*
9196 the exported interface
9197*/
9198function CSSselect(query, elems, options){
9199 return selectAll(query, elems, options);
9200}
9201
9202CSSselect.compile = compile_1$2;
9203CSSselect.filters = pseudos_1.filters;
9204CSSselect.pseudos = pseudos_1.pseudos;
9205
9206CSSselect.selectAll = selectAll;
9207CSSselect.selectOne = selectOne;
9208
9209CSSselect.is = is;
9210
9211//legacy methods (might be removed)
9212CSSselect.parse = compile_1$2;
9213CSSselect.iterate = selectAll;
9214
9215//hooks
9216CSSselect._compileUnsafe = compileUnsafe$1;
9217CSSselect._compileToken = compileToken$1;
9218
9219/**
9220 * Copyright 2018 Google LLC
9221 *
9222 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
9223 * use this file except in compliance with the License. You may obtain a copy of
9224 * the License at
9225 *
9226 * http://www.apache.org/licenses/LICENSE-2.0
9227 *
9228 * Unless required by applicable law or agreed to in writing, software
9229 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
9230 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
9231 * License for the specific language governing permissions and limitations under
9232 * the License.
9233 */
9234
9235const treeAdapter = require('parse5-htmlparser2-tree-adapter');
9236
9237const PARSE5_OPTS = {
9238 treeAdapter
9239};
9240/**
9241 * Parse HTML into a mutable, serializable DOM Document.
9242 * The DOM implementation is an htmlparser2 DOM enhanced with basic DOM mutation methods.
9243 * @param {String} html HTML to parse into a Document instance
9244 */
9245
9246function createDocument(html) {
9247 const document = parse5.parse(html, PARSE5_OPTS);
9248 defineProperties(document, DocumentExtensions); // Extend Element.prototype with DOM manipulation methods.
9249
9250 const scratch = document.createElement('div'); // Get a reference to the base Node class - used by createTextNode()
9251
9252 document.$$Node = scratch.constructor;
9253 const elementProto = Object.getPrototypeOf(scratch);
9254 defineProperties(elementProto, ElementExtensions);
9255 elementProto.ownerDocument = document;
9256 return document;
9257}
9258/**
9259 * Serialize a Document to an HTML String
9260 * @param {Document} document A Document, such as one created via `createDocument()`
9261 */
9262
9263function serializeDocument(document) {
9264 return parse5.serialize(document, PARSE5_OPTS);
9265}
9266/**
9267 * Methods and descriptors to mix into Element.prototype
9268 */
9269
9270const ElementExtensions = {
9271 /** @extends htmlparser2.Element.prototype */
9272 nodeName: {
9273 get() {
9274 return this.tagName.toUpperCase();
9275 }
9276
9277 },
9278 id: reflectedProperty('id'),
9279 className: reflectedProperty('class'),
9280
9281 insertBefore(child, referenceNode) {
9282 if (!referenceNode) return this.appendChild(child);
9283 treeAdapter.insertBefore(this, child, referenceNode);
9284 return child;
9285 },
9286
9287 appendChild(child) {
9288 treeAdapter.appendChild(this, child);
9289 return child;
9290 },
9291
9292 removeChild(child) {
9293 treeAdapter.detachNode(child);
9294 },
9295
9296 remove() {
9297 treeAdapter.detachNode(this);
9298 },
9299
9300 textContent: {
9301 get() {
9302 return getText$2(this);
9303 },
9304
9305 set(text) {
9306 this.children = [];
9307 treeAdapter.insertText(this, text);
9308 }
9309
9310 },
9311
9312 setAttribute(name, value) {
9313 if (this.attribs == null) this.attribs = {};
9314 if (value == null) value = '';
9315 this.attribs[name] = value;
9316 },
9317
9318 removeAttribute(name) {
9319 if (this.attribs != null) {
9320 delete this.attribs[name];
9321 }
9322 },
9323
9324 getAttribute(name) {
9325 return this.attribs != null && this.attribs[name];
9326 },
9327
9328 hasAttribute(name) {
9329 return this.attribs != null && this.attribs[name] != null;
9330 },
9331
9332 getAttributeNode(name) {
9333 const value = this.getAttribute(name);
9334 if (value != null) return {
9335 specified: true,
9336 value
9337 };
9338 }
9339
9340};
9341/**
9342 * Methods and descriptors to mix into the global document instance
9343 * @private
9344 */
9345
9346const DocumentExtensions = {
9347 /** @extends htmlparser2.Document.prototype */
9348 // document is just an Element in htmlparser2, giving it a nodeType of ELEMENT_NODE.
9349 // TODO: verify if these are needed for css-select
9350 nodeType: {
9351 get() {
9352 return 9;
9353 }
9354
9355 },
9356 contentType: {
9357 get() {
9358 return 'text/html';
9359 }
9360
9361 },
9362 nodeName: {
9363 get() {
9364 return '#document';
9365 }
9366
9367 },
9368 documentElement: {
9369 get() {
9370 // Find the first <html> element within the document
9371 return this.childNodes.filter(child => String(child.tagName).toLowerCase() === 'html');
9372 }
9373
9374 },
9375 compatMode: {
9376 get() {
9377 const compatMode = {
9378 'no-quirks': 'CSS1Compat',
9379 quirks: 'BackCompat',
9380 'limited-quirks': 'CSS1Compat'
9381 };
9382 return compatMode[treeAdapter.getDocumentMode(this)];
9383 }
9384
9385 },
9386 body: {
9387 get() {
9388 return this.querySelector('body');
9389 }
9390
9391 },
9392
9393 createElement(name) {
9394 return treeAdapter.createElement(name, null, []);
9395 },
9396
9397 createTextNode(text) {
9398 // there is no dedicated createTextNode equivalent exposed in htmlparser2's DOM
9399 const Node = this.$$Node;
9400 return new Node({
9401 type: 'text',
9402 data: text,
9403 parent: null,
9404 prev: null,
9405 next: null
9406 });
9407 },
9408
9409 querySelector(sel) {
9410 return cssSelect.selectOne(sel, this.documentElement);
9411 },
9412
9413 querySelectorAll(sel) {
9414 if (sel === ':root') {
9415 return this;
9416 }
9417
9418 return cssSelect(sel, this.documentElement);
9419 }
9420
9421};
9422/**
9423 * Essentially `Object.defineProperties()`, except function values are assigned as value descriptors for convenience.
9424 * @private
9425 */
9426
9427function defineProperties(obj, properties) {
9428 for (const i in properties) {
9429 const value = properties[i];
9430 Object.defineProperty(obj, i, typeof value === 'function' ? {
9431 value
9432 } : value);
9433 }
9434}
9435/**
9436 * Create a property descriptor defining a getter/setter pair alias for a named attribute.
9437 * @private
9438 */
9439
9440
9441function reflectedProperty(attributeName) {
9442 return {
9443 get() {
9444 return this.getAttribute(attributeName);
9445 },
9446
9447 set(value) {
9448 this.setAttribute(attributeName, value);
9449 }
9450
9451 };
9452}
9453/**
9454 * Helper to get the text content of a node
9455 * https://github.com/fb55/domutils/blob/master/src/stringify.ts#L21
9456 * @private
9457 */
9458
9459
9460function getText$2(node) {
9461 if (Array.isArray(node)) return node.map(getText$2).join('');
9462 if (treeAdapter.isElementNode(node)) return node.name === 'br' ? '\n' : getText$2(node.children);
9463 if (treeAdapter.isTextNode(node)) return node.data;
9464 return '';
9465}
9466
9467/**
9468 * Copyright 2018 Google LLC
9469 *
9470 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
9471 * use this file except in compliance with the License. You may obtain a copy of
9472 * the License at
9473 *
9474 * http://www.apache.org/licenses/LICENSE-2.0
9475 *
9476 * Unless required by applicable law or agreed to in writing, software
9477 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
9478 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
9479 * License for the specific language governing permissions and limitations under
9480 * the License.
9481 */
9482/**
9483 * Parse a textual CSS Stylesheet into a Stylesheet instance.
9484 * Stylesheet is a mutable ReworkCSS AST with format similar to CSSOM.
9485 * @see https://github.com/reworkcss/css
9486 * @private
9487 * @param {String} stylesheet
9488 * @returns {css.Stylesheet} ast
9489 */
9490
9491function parseStylesheet(stylesheet) {
9492 return css.parse(stylesheet);
9493}
9494/**
9495 * Serialize a ReworkCSS Stylesheet to a String of CSS.
9496 * @private
9497 * @param {css.Stylesheet} ast A Stylesheet to serialize, such as one returned from `parseStylesheet()`
9498 * @param {Object} options Options to pass to `css.stringify()`
9499 * @param {Boolean} [options.compress] Compress CSS output (removes comments, whitespace, etc)
9500 */
9501
9502function serializeStylesheet(ast, options) {
9503 return css.stringify(ast, options);
9504}
9505/**
9506 * Converts a walkStyleRules() iterator to mark nodes with `.$$remove=true` instead of actually removing them.
9507 * This means they can be removed in a second pass, allowing the first pass to be nondestructive (eg: to preserve mirrored sheets).
9508 * @private
9509 * @param {Function} iterator Invoked on each node in the tree. Return `false` to remove that node.
9510 * @returns {(rule) => void} nonDestructiveIterator
9511 */
9512
9513function markOnly(predicate) {
9514 return rule => {
9515 const sel = rule.selectors;
9516
9517 if (predicate(rule) === false) {
9518 rule.$$remove = true;
9519 }
9520
9521 rule.$$markedSelectors = rule.selectors;
9522
9523 if (rule._other) {
9524 rule._other.$$markedSelectors = rule._other.selectors;
9525 }
9526
9527 rule.selectors = sel;
9528 };
9529}
9530/**
9531 * Apply filtered selectors to a rule from a previous markOnly run.
9532 * @private
9533 * @param {css.Rule} rule The Rule to apply marked selectors to (if they exist).
9534*/
9535
9536function applyMarkedSelectors(rule) {
9537 if (rule.$$markedSelectors) {
9538 rule.selectors = rule.$$markedSelectors;
9539 }
9540
9541 if (rule._other) {
9542 applyMarkedSelectors(rule._other);
9543 }
9544}
9545/**
9546 * Recursively walk all rules in a stylesheet.
9547 * @private
9548 * @param {css.Rule} node A Stylesheet or Rule to descend into.
9549 * @param {Function} iterator Invoked on each node in the tree. Return `false` to remove that node.
9550 */
9551
9552function walkStyleRules(node, iterator) {
9553 if (node.stylesheet) return walkStyleRules(node.stylesheet, iterator);
9554 node.rules = node.rules.filter(rule => {
9555 if (rule.rules) {
9556 walkStyleRules(rule, iterator);
9557 }
9558
9559 rule._other = undefined;
9560 rule.filterSelectors = filterSelectors;
9561 return iterator(rule) !== false;
9562 });
9563}
9564/**
9565 * Recursively walk all rules in two identical stylesheets, filtering nodes into one or the other based on a predicate.
9566 * @private
9567 * @param {css.Rule} node A Stylesheet or Rule to descend into.
9568 * @param {css.Rule} node2 A second tree identical to `node`
9569 * @param {Function} iterator Invoked on each node in the tree. Return `false` to remove that node from the first tree, true to remove it from the second.
9570 */
9571
9572function walkStyleRulesWithReverseMirror(node, node2, iterator) {
9573 if (node2 === null) return walkStyleRules(node, iterator);
9574 if (node.stylesheet) return walkStyleRulesWithReverseMirror(node.stylesheet, node2.stylesheet, iterator);
9575 [node.rules, node2.rules] = splitFilter(node.rules, node2.rules, (rule, index, rules, rules2) => {
9576 const rule2 = rules2[index];
9577
9578 if (rule.rules) {
9579 walkStyleRulesWithReverseMirror(rule, rule2, iterator);
9580 }
9581
9582 rule._other = rule2;
9583 rule.filterSelectors = filterSelectors;
9584 return iterator(rule) !== false;
9585 });
9586} // Like [].filter(), but applies the opposite filtering result to a second copy of the Array without a second pass.
9587// This is just a quicker version of generating the compliment of the set returned from a filter operation.
9588
9589function splitFilter(a, b, predicate) {
9590 const aOut = [];
9591 const bOut = [];
9592
9593 for (let index = 0; index < a.length; index++) {
9594 if (predicate(a[index], index, a, b)) {
9595 aOut.push(a[index]);
9596 } else {
9597 bOut.push(a[index]);
9598 }
9599 }
9600
9601 return [aOut, bOut];
9602} // can be invoked on a style rule to subset its selectors (with reverse mirroring)
9603
9604
9605function filterSelectors(predicate) {
9606 if (this._other) {
9607 const [a, b] = splitFilter(this.selectors, this._other.selectors, predicate);
9608 this.selectors = a;
9609 this._other.selectors = b;
9610 } else {
9611 this.selectors = this.selectors.filter(predicate);
9612 }
9613}
9614
9615const LOG_LEVELS = ['trace', 'debug', 'info', 'warn', 'error', 'silent'];
9616const defaultLogger = {
9617 trace(msg) {
9618 console.trace(msg);
9619 },
9620
9621 debug(msg) {
9622 console.debug(msg);
9623 },
9624
9625 warn(msg) {
9626 console.warn(chalk.yellow(msg));
9627 },
9628
9629 error(msg) {
9630 console.error(chalk.bold.red(msg));
9631 },
9632
9633 info(msg) {
9634 console.info(chalk.bold.blue(msg));
9635 },
9636
9637 silent() {}
9638
9639};
9640function createLogger(logLevel) {
9641 const logLevelIdx = LOG_LEVELS.indexOf(logLevel);
9642 return LOG_LEVELS.reduce((logger, type, index) => {
9643 if (index >= logLevelIdx) {
9644 logger[type] = defaultLogger[type];
9645 } else {
9646 logger[type] = defaultLogger.silent;
9647 }
9648
9649 return logger;
9650 }, {});
9651}
9652
9653/**
9654 * Copyright 2018 Google LLC
9655 *
9656 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
9657 * use this file except in compliance with the License. You may obtain a copy of
9658 * the License at
9659 *
9660 * http://www.apache.org/licenses/LICENSE-2.0
9661 *
9662 * Unless required by applicable law or agreed to in writing, software
9663 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
9664 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
9665 * License for the specific language governing permissions and limitations under
9666 * the License.
9667 */
9668/**
9669 * The mechanism to use for lazy-loading stylesheets.
9670 * Note: <kbd>JS</kbd> indicates a strategy requiring JavaScript (falls back to `<noscript>` unless disabled).
9671 *
9672 * - **default:** Move stylesheet links to the end of the document and insert preload meta tags in their place.
9673 * - **"body":** Move all external stylesheet links to the end of the document.
9674 * - **"media":** Load stylesheets asynchronously by adding `media="not x"` and removing once loaded. <kbd>JS</kbd>
9675 * - **"swap":** Convert stylesheet links to preloads that swap to `rel="stylesheet"` once loaded ([details](https://www.filamentgroup.com/lab/load-css-simpler/#the-code)). <kbd>JS</kbd>
9676 * - **"swap-high":** Use `<link rel="alternate stylesheet preload">` and swap to `rel="stylesheet"` once loaded ([details](http://filamentgroup.github.io/loadCSS/test/new-high.html)). <kbd>JS</kbd>
9677 * - **"js":** Inject an asynchronous CSS loader similar to [LoadCSS](https://github.com/filamentgroup/loadCSS) and use it to load stylesheets. <kbd>JS</kbd>
9678 * - **"js-lazy":** Like `"js"`, but the stylesheet is disabled until fully loaded.
9679 * @typedef {(default|'body'|'media'|'swap'|'swap-high'|'js'|'js-lazy')} PreloadStrategy
9680 * @public
9681 */
9682
9683/**
9684 * Controls which keyframes rules are inlined.
9685 *
9686 * - **"critical":** _(default)_ inline keyframes rules that are used by the critical CSS.
9687 * - **"all":** Inline all keyframes rules.
9688 * - **"none":** Remove all keyframes rules.
9689 * @typedef {('critical'|'all'|'none')} KeyframeStrategy
9690 * @private
9691 * @property {String} keyframes Which {@link KeyframeStrategy keyframe strategy} to use (default: `critical`)_
9692 */
9693
9694/**
9695 * Controls log level of the plugin. Specifies the level the logger should use. A logger will
9696 * not produce output for any log level beneath the specified level. Available levels and order
9697 * are:
9698 *
9699 * - **"info"** _(default)_
9700 * - **"warn"**
9701 * - **"error"**
9702 * - **"trace"**
9703 * - **"debug"**
9704 * - **"silent"**
9705 * @typedef {('info'|'warn'|'error'|'trace'|'debug'|'silent')} LogLevel
9706 * @public
9707 */
9708
9709/**
9710 * Custom logger interface:
9711 * @typedef {object} Logger
9712 * @public
9713 * @property {function(String)} trace - Prints a trace message
9714 * @property {function(String)} debug - Prints a debug message
9715 * @property {function(String)} info - Prints an information message
9716 * @property {function(String)} warn - Prints a warning message
9717 * @property {function(String)} error - Prints an error message
9718 */
9719
9720/**
9721 * All optional. Pass them to `new Critters({ ... })`.
9722 * @public
9723 * @typedef Options
9724 * @property {String} path Base path location of the CSS files _(default: `''`)_
9725 * @property {String} publicPath Public path of the CSS resources. This prefix is removed from the href _(default: `''`)_
9726 * @property {Boolean} external Inline styles from external stylesheets _(default: `true`)_
9727 * @property {Number} inlineThreshold Inline external stylesheets smaller than a given size _(default: `0`)_
9728 * @property {Number} minimumExternalSize If the non-critical external stylesheet would be below this size, just inline it _(default: `0`)_
9729 * @property {Boolean} pruneSource Remove inlined rules from the external stylesheet _(default: `false`)_
9730 * @property {Boolean} mergeStylesheets Merged inlined stylesheets into a single <style> tag _(default: `true`)_
9731 * @property {String[]} additionalStylesheets Glob for matching other stylesheets to be used while looking for critical CSS _(default: ``)_.
9732 * @property {String} preload Which {@link PreloadStrategy preload strategy} to use
9733 * @property {Boolean} noscriptFallback Add `<noscript>` fallback to JS-based strategies
9734 * @property {Boolean} inlineFonts Inline critical font-face rules _(default: `false`)_
9735 * @property {Boolean} preloadFonts Preloads critical fonts _(default: `true`)_
9736 * @property {Boolean} fonts Shorthand for setting `inlineFonts`+`preloadFonts`
9737 * - Values:
9738 * - `true` to inline critical font-face rules and preload the fonts
9739 * - `false` to don't inline any font-face rules and don't preload fonts
9740 * @property {String} keyframes Controls which keyframes rules are inlined.
9741 * - Values:
9742 * - `"critical"`: _(default)_ inline keyframes rules used by the critical CSS
9743 * - `"all"` inline all keyframes rules
9744 * - `"none"` remove all keyframes rules
9745 * @property {Boolean} compress Compress resulting critical CSS _(default: `true`)_
9746 * @property {String} logLevel Controls {@link LogLevel log level} of the plugin _(default: `"info"`)_
9747 * @property {object} logger Provide a custom logger interface {@link Logger logger}
9748 */
9749
9750function _catch(body, recover) {
9751 try {
9752 var result = body();
9753 } catch (e) {
9754 return recover(e);
9755 }
9756
9757 if (result && result.then) {
9758 return result.then(void 0, recover);
9759 }
9760
9761 return result;
9762}
9763
9764class Critters {
9765 /** @private */
9766 constructor(options) {
9767 this.options = Object.assign({
9768 logLevel: 'info',
9769 path: '',
9770 publicPath: '',
9771 reduceInlineStyles: true,
9772 pruneSource: false,
9773 additionalStylesheets: []
9774 }, options || {});
9775 this.urlFilter = this.options.filter;
9776
9777 if (this.urlFilter instanceof RegExp) {
9778 this.urlFilter = this.urlFilter.test.bind(this.urlFilter);
9779 }
9780
9781 this.logger = this.options.logger || createLogger(this.options.logLevel);
9782 }
9783 /**
9784 * Read the contents of a file from the specified filesystem or disk
9785 */
9786
9787
9788 readFile(filename) {
9789 const fs = this.fs;
9790 return new Promise((resolve, reject) => {
9791 const callback = (err, data) => {
9792 if (err) reject(err);else resolve(data);
9793 };
9794
9795 if (fs && fs.readFile) {
9796 fs.readFile(filename, callback);
9797 } else {
9798 require('fs').readFile(filename, 'utf8', callback);
9799 }
9800 });
9801 }
9802 /**
9803 * Apply critical CSS processing to the html
9804 */
9805
9806
9807 process(html) {
9808 try {
9809 const _this = this;
9810
9811 function _temp4() {
9812 // go through all the style tags in the document and reduce them to only critical CSS
9813 const styles = _this.getAffectedStyleTags(document);
9814
9815 return Promise.resolve(Promise.all(styles.map(style => _this.processStyle(style, document)))).then(function () {
9816 function _temp2() {
9817 // serialize the document back to HTML and we're done
9818 const output = serializeDocument(document);
9819 const end = process.hrtime.bigint();
9820
9821 _this.logger.info('Time ' + parseFloat(end - start) / 1000000.0);
9822
9823 return output;
9824 }
9825
9826 const _temp = function () {
9827 if (_this.options.mergeStylesheets !== false && styles.length !== 0) {
9828 return Promise.resolve(_this.mergeStylesheets(document)).then(function () {});
9829 }
9830 }();
9831
9832 return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
9833 });
9834 }
9835
9836 const start = process.hrtime.bigint(); // Parse the generated HTML in a DOM we can mutate
9837
9838 const document = createDocument(html);
9839
9840 if (_this.options.additionalStylesheets.length > 0) {
9841 _this.embedAdditionalStylesheet(document);
9842 } // `external:false` skips processing of external sheets
9843
9844
9845 const _temp3 = function () {
9846 if (_this.options.external !== false) {
9847 const externalSheets = [].slice.call(document.querySelectorAll('link[rel="stylesheet"]'));
9848 return Promise.resolve(Promise.all(externalSheets.map(link => _this.embedLinkedStylesheet(link, document)))).then(function () {});
9849 }
9850 }();
9851
9852 return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
9853 } catch (e) {
9854 return Promise.reject(e);
9855 }
9856 }
9857 /**
9858 * Get the style tags that need processing
9859 */
9860
9861
9862 getAffectedStyleTags(document) {
9863 const styles = [].slice.call(document.querySelectorAll('style')); // `inline:false` skips processing of inline stylesheets
9864
9865 if (this.options.reduceInlineStyles === false) {
9866 return styles.filter(style => style.$$external);
9867 }
9868
9869 return styles;
9870 }
9871
9872 mergeStylesheets(document) {
9873 try {
9874 const _this2 = this;
9875
9876 const styles = _this2.getAffectedStyleTags(document);
9877
9878 if (styles.length === 0) {
9879 _this2.logger.warn('Merging inline stylesheets into a single <style> tag skipped, no inline stylesheets to merge');
9880
9881 return Promise.resolve();
9882 }
9883
9884 const first = styles[0];
9885 let sheet = first.textContent;
9886
9887 for (let i = 1; i < styles.length; i++) {
9888 const node = styles[i];
9889 sheet += node.textContent;
9890 node.remove();
9891 }
9892
9893 first.textContent = sheet;
9894 return Promise.resolve();
9895 } catch (e) {
9896 return Promise.reject(e);
9897 }
9898 }
9899 /**
9900 * Given href, find the corresponding CSS asset
9901 */
9902
9903
9904 getCssAsset(href) {
9905 try {
9906 const _this3 = this;
9907
9908 const outputPath = _this3.options.path;
9909 const publicPath = _this3.options.publicPath; // CHECK - the output path
9910 // path on disk (with output.publicPath removed)
9911
9912 let normalizedPath = href.replace(/^\//, '');
9913 const pathPrefix = (publicPath || '').replace(/(^\/|\/$)/g, '') + '/';
9914
9915 if (normalizedPath.indexOf(pathPrefix) === 0) {
9916 normalizedPath = normalizedPath.substring(pathPrefix.length).replace(/^\//, '');
9917 }
9918
9919 const filename = path.resolve(outputPath, normalizedPath);
9920 let sheet;
9921
9922 const _temp5 = _catch(function () {
9923 return Promise.resolve(_this3.readFile(filename)).then(function (_this3$readFile) {
9924 sheet = _this3$readFile;
9925 });
9926 }, function () {
9927 _this3.logger.warn(`Unable to locate stylesheet: ${filename}`);
9928 });
9929
9930 return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(function () {
9931 return sheet;
9932 }) : sheet);
9933 } catch (e) {
9934 return Promise.reject(e);
9935 }
9936 }
9937
9938 checkInlineThreshold(link, style, sheet) {
9939 if (this.options.inlineThreshold && sheet.length < this.options.inlineThreshold) {
9940 const href = style.$$name;
9941 style.$$reduce = false;
9942 this.logger.info(`\u001b[32mInlined all of ${href} (${sheet.length} was below the threshold of ${this.options.inlineThreshold})\u001b[39m`);
9943 link.remove();
9944 return true;
9945 }
9946
9947 return false;
9948 }
9949 /**
9950 * Inline the stylesheets from options.additionalStylesheets (assuming it passes `options.filter`)
9951 */
9952
9953
9954 embedAdditionalStylesheet(document) {
9955 try {
9956 const _this4 = this;
9957
9958 const styleSheetsIncluded = [];
9959 return Promise.resolve(Promise.all(_this4.options.additionalStylesheets.map(cssFile => {
9960 if (styleSheetsIncluded.includes(cssFile)) {
9961 return;
9962 }
9963
9964 styleSheetsIncluded.push(cssFile);
9965 const style = document.createElement('style');
9966 style.$$external = true;
9967 return _this4.getCssAsset(cssFile, style).then(sheet => [sheet, style]);
9968 }))).then(function (sources) {
9969 sources.forEach(([sheet, style]) => {
9970 if (!sheet) return;
9971 style.textContent = sheet;
9972 document.head.appendChild(style);
9973 });
9974 });
9975 } catch (e) {
9976 return Promise.reject(e);
9977 }
9978 }
9979 /**
9980 * Inline the target stylesheet referred to by a <link rel="stylesheet"> (assuming it passes `options.filter`)
9981 */
9982
9983
9984 embedLinkedStylesheet(link, document) {
9985 try {
9986 const _this5 = this;
9987
9988 const href = link.getAttribute('href');
9989 const media = link.getAttribute('media');
9990 const preloadMode = _this5.options.preload; // skip filtered resources, or network resources if no filter is provided
9991
9992 if (_this5.urlFilter ? _this5.urlFilter(href) : !(href || '').match(/\.css$/)) {
9993 return Promise.resolve();
9994 } // the reduced critical CSS gets injected into a new <style> tag
9995
9996
9997 const style = document.createElement('style');
9998 style.$$external = true;
9999 return Promise.resolve(_this5.getCssAsset(href, style)).then(function (sheet) {
10000 if (!sheet) {
10001 return;
10002 }
10003
10004 style.textContent = sheet;
10005 style.$$name = href;
10006 style.$$links = [link];
10007 link.parentNode.insertBefore(style, link);
10008
10009 if (_this5.checkInlineThreshold(link, style, sheet)) {
10010 return;
10011 } // CSS loader is only injected for the first sheet, then this becomes an empty string
10012
10013
10014 let cssLoaderPreamble = "function $loadcss(u,m,l){(l=document.createElement('link')).rel='stylesheet';l.href=u;document.head.appendChild(l)}";
10015 const lazy = preloadMode === 'js-lazy';
10016
10017 if (lazy) {
10018 cssLoaderPreamble = cssLoaderPreamble.replace('l.href', "l.media='print';l.onload=function(){l.media=m};l.href");
10019 } // Allow disabling any mutation of the stylesheet link:
10020
10021
10022 if (preloadMode === false) return;
10023 let noscriptFallback = false;
10024
10025 if (preloadMode === 'body') {
10026 document.body.appendChild(link);
10027 } else {
10028 link.setAttribute('rel', 'preload');
10029 link.setAttribute('as', 'style');
10030
10031 if (preloadMode === 'js' || preloadMode === 'js-lazy') {
10032 const script = document.createElement('script');
10033 const js = `${cssLoaderPreamble}$loadcss(${JSON.stringify(href)}${lazy ? ',' + JSON.stringify(media || 'all') : ''})`; // script.appendChild(document.createTextNode(js));
10034
10035 script.textContent = js;
10036 link.parentNode.insertBefore(script, link.nextSibling);
10037 style.$$links.push(script);
10038 cssLoaderPreamble = '';
10039 noscriptFallback = true;
10040 } else if (preloadMode === 'media') {
10041 // @see https://github.com/filamentgroup/loadCSS/blob/af1106cfe0bf70147e22185afa7ead96c01dec48/src/loadCSS.js#L26
10042 link.setAttribute('rel', 'stylesheet');
10043 link.removeAttribute('as');
10044 link.setAttribute('media', 'print');
10045 link.setAttribute('onload', `this.media='${media || 'all'}'`);
10046 noscriptFallback = true;
10047 } else if (preloadMode === 'swap-high') {
10048 // @see http://filamentgroup.github.io/loadCSS/test/new-high.html
10049 link.setAttribute('rel', 'alternate stylesheet preload');
10050 link.setAttribute('title', 'styles');
10051 link.setAttribute('onload', `this.title='';this.rel='stylesheet'`);
10052 noscriptFallback = true;
10053 } else if (preloadMode === 'swap') {
10054 link.setAttribute('onload', "this.rel='stylesheet'");
10055 noscriptFallback = true;
10056 } else {
10057 const bodyLink = document.createElement('link');
10058 bodyLink.setAttribute('rel', 'stylesheet');
10059 if (media) bodyLink.setAttribute('media', media);
10060 bodyLink.setAttribute('href', href);
10061 document.body.appendChild(bodyLink);
10062 style.$$links.push(bodyLink);
10063 }
10064 }
10065
10066 if (_this5.options.noscriptFallback !== false && noscriptFallback) {
10067 const noscript = document.createElement('noscript');
10068 const noscriptLink = document.createElement('link');
10069 noscriptLink.setAttribute('rel', 'stylesheet');
10070 noscriptLink.setAttribute('href', href);
10071 if (media) noscriptLink.setAttribute('media', media);
10072 noscript.appendChild(noscriptLink);
10073 link.parentNode.insertBefore(noscript, link.nextSibling);
10074 style.$$links.push(noscript);
10075 }
10076 });
10077 } catch (e) {
10078 return Promise.reject(e);
10079 }
10080 }
10081 /**
10082 * Prune the source CSS files
10083 */
10084
10085
10086 pruneSource(style, before, sheetInverse) {
10087 // if external stylesheet would be below minimum size, just inline everything
10088 const minSize = this.options.minimumExternalSize;
10089 const name = style.$$name;
10090
10091 if (minSize && sheetInverse.length < minSize) {
10092 this.logger.info(`\u001b[32mInlined all of ${name} (non-critical external stylesheet would have been ${sheetInverse.length}b, which was below the threshold of ${minSize})\u001b[39m`);
10093 style.textContent = before; // remove any associated external resources/loaders:
10094
10095 if (style.$$links) {
10096 for (const link of style.$$links) {
10097 const parent = link.parentNode;
10098 if (parent) parent.removeChild(link);
10099 }
10100 }
10101
10102 return true;
10103 }
10104
10105 return false;
10106 }
10107 /**
10108 * Parse the stylesheet within a <style> element, then reduce it to contain only rules used by the document.
10109 */
10110
10111
10112 processStyle(style, document) {
10113 try {
10114 const _this6 = this;
10115
10116 if (style.$$reduce === false) return Promise.resolve();
10117 const name = style.$$name ? style.$$name.replace(/^\//, '') : 'inline CSS';
10118 const options = _this6.options; // const document = style.ownerDocument;
10119
10120 const head = document.querySelector('head');
10121 let keyframesMode = options.keyframes || 'critical'; // we also accept a boolean value for options.keyframes
10122
10123 if (keyframesMode === true) keyframesMode = 'all';
10124 if (keyframesMode === false) keyframesMode = 'none';
10125 let sheet = style.textContent; // store a reference to the previous serialized stylesheet for reporting stats
10126
10127 const before = sheet; // Skip empty stylesheets
10128
10129 if (!sheet) return Promise.resolve();
10130 const ast = parseStylesheet(sheet);
10131 const astInverse = options.pruneSource ? parseStylesheet(sheet) : null; // a string to search for font names (very loose)
10132
10133 let criticalFonts = '';
10134 const failedSelectors = [];
10135 const criticalKeyframeNames = []; // Walk all CSS rules, marking unused rules with `.$$remove=true` for removal in the second pass.
10136 // This first pass is also used to collect font and keyframe usage used in the second pass.
10137
10138 walkStyleRules(ast, markOnly(rule => {
10139 if (rule.type === 'rule') {
10140 // Filter the selector list down to only those match
10141 rule.filterSelectors(sel => {
10142 // Strip pseudo-elements and pseudo-classes, since we only care that their associated elements exist.
10143 // This means any selector for a pseudo-element or having a pseudo-class will be inlined if the rest of the selector matches.
10144 if (sel === ':root' || sel.match(/^::?(before|after)$/)) {
10145 return true;
10146 }
10147
10148 sel = sel.replace(/(?<!\\)::?[a-z-]+(?![a-z-(])/gi, '').replace(/::?not\(\s*\)/g, '').trim();
10149 if (!sel) return false;
10150
10151 try {
10152 return document.querySelector(sel) != null;
10153 } catch (e) {
10154 failedSelectors.push(sel + ' -> ' + e.message);
10155 return false;
10156 }
10157 }); // If there are no matched selectors, remove the rule:
10158
10159 if (rule.selectors.length === 0) {
10160 return false;
10161 }
10162
10163 if (rule.declarations) {
10164 for (let i = 0; i < rule.declarations.length; i++) {
10165 const decl = rule.declarations[i]; // detect used fonts
10166
10167 if (decl.property && decl.property.match(/\bfont(-family)?\b/i)) {
10168 criticalFonts += ' ' + decl.value;
10169 } // detect used keyframes
10170
10171
10172 if (decl.property === 'animation' || decl.property === 'animation-name') {
10173 // @todo: parse animation declarations and extract only the name. for now we'll do a lazy match.
10174 const names = decl.value.split(/\s+/);
10175
10176 for (let j = 0; j < names.length; j++) {
10177 const name = names[j].trim();
10178 if (name) criticalKeyframeNames.push(name);
10179 }
10180 }
10181 }
10182 }
10183 } // keep font rules, they're handled in the second pass:
10184
10185
10186 if (rule.type === 'font-face') return; // If there are no remaining rules, remove the whole rule:
10187
10188 const rules = rule.rules && rule.rules.filter(rule => !rule.$$remove);
10189 return !rules || rules.length !== 0;
10190 }));
10191
10192 if (failedSelectors.length !== 0) {
10193 _this6.logger.warn(`${failedSelectors.length} rules skipped due to selector errors:\n ${failedSelectors.join('\n ')}`);
10194 }
10195
10196 const shouldPreloadFonts = options.fonts === true || options.preloadFonts === true;
10197 const shouldInlineFonts = options.fonts !== false && options.inlineFonts === true;
10198 const preloadedFonts = []; // Second pass, using data picked up from the first
10199
10200 walkStyleRulesWithReverseMirror(ast, astInverse, rule => {
10201 // remove any rules marked in the first pass
10202 if (rule.$$remove === true) return false;
10203 applyMarkedSelectors(rule); // prune @keyframes rules
10204
10205 if (rule.type === 'keyframes') {
10206 if (keyframesMode === 'none') return false;
10207 if (keyframesMode === 'all') return true;
10208 return criticalKeyframeNames.indexOf(rule.name) !== -1;
10209 } // prune @font-face rules
10210
10211
10212 if (rule.type === 'font-face') {
10213 let family, src;
10214
10215 for (let i = 0; i < rule.declarations.length; i++) {
10216 const decl = rule.declarations[i];
10217
10218 if (decl.property === 'src') {
10219 // @todo parse this properly and generate multiple preloads with type="font/woff2" etc
10220 src = (decl.value.match(/url\s*\(\s*(['"]?)(.+?)\1\s*\)/) || [])[2];
10221 } else if (decl.property === 'font-family') {
10222 family = decl.value;
10223 }
10224 }
10225
10226 if (src && shouldPreloadFonts && preloadedFonts.indexOf(src) === -1) {
10227 preloadedFonts.push(src);
10228 const preload = document.createElement('link');
10229 preload.setAttribute('rel', 'preload');
10230 preload.setAttribute('as', 'font');
10231 preload.setAttribute('crossorigin', 'anonymous');
10232 preload.setAttribute('href', src.trim());
10233 head.appendChild(preload);
10234 } // if we're missing info, if the font is unused, or if critical font inlining is disabled, remove the rule:
10235
10236
10237 if (!family || !src || criticalFonts.indexOf(family) === -1 || !shouldInlineFonts) {
10238 return false;
10239 }
10240 }
10241 });
10242 sheet = serializeStylesheet(ast, {
10243 compress: _this6.options.compress !== false
10244 }).trim(); // If all rules were removed, get rid of the style element entirely
10245
10246 if (sheet.trim().length === 0) {
10247 if (style.parentNode) {
10248 style.remove();
10249 }
10250
10251 return Promise.resolve();
10252 }
10253
10254 let afterText = '';
10255 let styleInlinedCompletely = false;
10256
10257 if (options.pruneSource) {
10258 const sheetInverse = serializeStylesheet(astInverse, {
10259 compress: _this6.options.compress !== false
10260 });
10261 styleInlinedCompletely = _this6.pruneSource(style, before, sheetInverse);
10262
10263 if (styleInlinedCompletely) {
10264 const percent = sheetInverse.length / before.length * 100;
10265 afterText = `, reducing non-inlined size ${percent | 0}% to ${prettyBytes(sheetInverse.length)}`;
10266 }
10267 } // replace the inline stylesheet with its critical'd counterpart
10268
10269
10270 if (!styleInlinedCompletely) {
10271 style.textContent = sheet;
10272 } // output stats
10273
10274
10275 const percent = sheet.length / before.length * 100 | 0;
10276
10277 _this6.logger.info('\u001b[32mInlined ' + prettyBytes(sheet.length) + ' (' + percent + '% of original ' + prettyBytes(before.length) + ') of ' + name + afterText + '.\u001b[39m');
10278
10279 return Promise.resolve();
10280 } catch (e) {
10281 return Promise.reject(e);
10282 }
10283 }
10284
10285}
10286
10287export default Critters;
10288//# sourceMappingURL=critters.esm.js.map
Note: See TracBrowser for help on using the repository browser.