source: trip-planner-front/node_modules/critters/dist/critters.js@ eed0bf8

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

initial commit

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