diff --git a/lib/docs/commonmark.js b/lib/docs/commonmark.js
new file mode 100644
index 0000000000..c1b33d7571
--- /dev/null
+++ b/lib/docs/commonmark.js
@@ -0,0 +1,10255 @@
+/* commonmark 0.30.0 https://github.com/commonmark/commonmark.js @license BSD3 */
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
+ (global = global || self, factory(global.commonmark = {}));
+}(this, (function (exports) { 'use strict';
+
+ function isContainer(node) {
+ switch (node._type) {
+ case "document":
+ case "block_quote":
+ case "list":
+ case "item":
+ case "paragraph":
+ case "heading":
+ case "emph":
+ case "strong":
+ case "link":
+ case "image":
+ case "custom_inline":
+ case "custom_block":
+ return true;
+ default:
+ return false;
+ }
+ }
+
+ var resumeAt = function(node, entering) {
+ this.current = node;
+ this.entering = entering === true;
+ };
+
+ var next = function() {
+ var cur = this.current;
+ var entering = this.entering;
+
+ if (cur === null) {
+ return null;
+ }
+
+ var container = isContainer(cur);
+
+ if (entering && container) {
+ if (cur._firstChild) {
+ this.current = cur._firstChild;
+ this.entering = true;
+ } else {
+ // stay on node but exit
+ this.entering = false;
+ }
+ } else if (cur === this.root) {
+ this.current = null;
+ } else if (cur._next === null) {
+ this.current = cur._parent;
+ this.entering = false;
+ } else {
+ this.current = cur._next;
+ this.entering = true;
+ }
+
+ return { entering: entering, node: cur };
+ };
+
+ var NodeWalker = function(root) {
+ return {
+ current: root,
+ root: root,
+ entering: true,
+ next: next,
+ resumeAt: resumeAt
+ };
+ };
+
+ var Node = function(nodeType, sourcepos) {
+ this._type = nodeType;
+ this._parent = null;
+ this._firstChild = null;
+ this._lastChild = null;
+ this._prev = null;
+ this._next = null;
+ this._sourcepos = sourcepos;
+ this._lastLineBlank = false;
+ this._lastLineChecked = false;
+ this._open = true;
+ this._string_content = null;
+ this._literal = null;
+ this._listData = {};
+ this._info = null;
+ this._destination = null;
+ this._title = null;
+ this._isFenced = false;
+ this._fenceChar = null;
+ this._fenceLength = 0;
+ this._fenceOffset = null;
+ this._level = null;
+ this._onEnter = null;
+ this._onExit = null;
+ };
+
+ var proto = Node.prototype;
+
+ Object.defineProperty(proto, "isContainer", {
+ get: function() {
+ return isContainer(this);
+ }
+ });
+
+ Object.defineProperty(proto, "type", {
+ get: function() {
+ return this._type;
+ }
+ });
+
+ Object.defineProperty(proto, "firstChild", {
+ get: function() {
+ return this._firstChild;
+ }
+ });
+
+ Object.defineProperty(proto, "lastChild", {
+ get: function() {
+ return this._lastChild;
+ }
+ });
+
+ Object.defineProperty(proto, "next", {
+ get: function() {
+ return this._next;
+ }
+ });
+
+ Object.defineProperty(proto, "prev", {
+ get: function() {
+ return this._prev;
+ }
+ });
+
+ Object.defineProperty(proto, "parent", {
+ get: function() {
+ return this._parent;
+ }
+ });
+
+ Object.defineProperty(proto, "sourcepos", {
+ get: function() {
+ return this._sourcepos;
+ }
+ });
+
+ Object.defineProperty(proto, "literal", {
+ get: function() {
+ return this._literal;
+ },
+ set: function(s) {
+ this._literal = s;
+ }
+ });
+
+ Object.defineProperty(proto, "destination", {
+ get: function() {
+ return this._destination;
+ },
+ set: function(s) {
+ this._destination = s;
+ }
+ });
+
+ Object.defineProperty(proto, "title", {
+ get: function() {
+ return this._title;
+ },
+ set: function(s) {
+ this._title = s;
+ }
+ });
+
+ Object.defineProperty(proto, "info", {
+ get: function() {
+ return this._info;
+ },
+ set: function(s) {
+ this._info = s;
+ }
+ });
+
+ Object.defineProperty(proto, "level", {
+ get: function() {
+ return this._level;
+ },
+ set: function(s) {
+ this._level = s;
+ }
+ });
+
+ Object.defineProperty(proto, "listType", {
+ get: function() {
+ return this._listData.type;
+ },
+ set: function(t) {
+ this._listData.type = t;
+ }
+ });
+
+ Object.defineProperty(proto, "listTight", {
+ get: function() {
+ return this._listData.tight;
+ },
+ set: function(t) {
+ this._listData.tight = t;
+ }
+ });
+
+ Object.defineProperty(proto, "listStart", {
+ get: function() {
+ return this._listData.start;
+ },
+ set: function(n) {
+ this._listData.start = n;
+ }
+ });
+
+ Object.defineProperty(proto, "listDelimiter", {
+ get: function() {
+ return this._listData.delimiter;
+ },
+ set: function(delim) {
+ this._listData.delimiter = delim;
+ }
+ });
+
+ Object.defineProperty(proto, "onEnter", {
+ get: function() {
+ return this._onEnter;
+ },
+ set: function(s) {
+ this._onEnter = s;
+ }
+ });
+
+ Object.defineProperty(proto, "onExit", {
+ get: function() {
+ return this._onExit;
+ },
+ set: function(s) {
+ this._onExit = s;
+ }
+ });
+
+ Node.prototype.appendChild = function(child) {
+ child.unlink();
+ child._parent = this;
+ if (this._lastChild) {
+ this._lastChild._next = child;
+ child._prev = this._lastChild;
+ this._lastChild = child;
+ } else {
+ this._firstChild = child;
+ this._lastChild = child;
+ }
+ };
+
+ Node.prototype.prependChild = function(child) {
+ child.unlink();
+ child._parent = this;
+ if (this._firstChild) {
+ this._firstChild._prev = child;
+ child._next = this._firstChild;
+ this._firstChild = child;
+ } else {
+ this._firstChild = child;
+ this._lastChild = child;
+ }
+ };
+
+ Node.prototype.unlink = function() {
+ if (this._prev) {
+ this._prev._next = this._next;
+ } else if (this._parent) {
+ this._parent._firstChild = this._next;
+ }
+ if (this._next) {
+ this._next._prev = this._prev;
+ } else if (this._parent) {
+ this._parent._lastChild = this._prev;
+ }
+ this._parent = null;
+ this._next = null;
+ this._prev = null;
+ };
+
+ Node.prototype.insertAfter = function(sibling) {
+ sibling.unlink();
+ sibling._next = this._next;
+ if (sibling._next) {
+ sibling._next._prev = sibling;
+ }
+ sibling._prev = this;
+ this._next = sibling;
+ sibling._parent = this._parent;
+ if (!sibling._next) {
+ sibling._parent._lastChild = sibling;
+ }
+ };
+
+ Node.prototype.insertBefore = function(sibling) {
+ sibling.unlink();
+ sibling._prev = this._prev;
+ if (sibling._prev) {
+ sibling._prev._next = sibling;
+ }
+ sibling._next = this;
+ this._prev = sibling;
+ sibling._parent = this._parent;
+ if (!sibling._prev) {
+ sibling._parent._firstChild = sibling;
+ }
+ };
+
+ Node.prototype.walker = function() {
+ var walker = new NodeWalker(this);
+ return walker;
+ };
+
+ /* Example of use of walker:
+
+ var walker = w.walker();
+ var event;
+
+ while (event = walker.next()) {
+ console.log(event.entering, event.node.type);
+ }
+
+ */
+
+ var encodeCache = {};
+
+
+ // Create a lookup array where anything but characters in `chars` string
+ // and alphanumeric chars is percent-encoded.
+ //
+ function getEncodeCache(exclude) {
+ var i, ch, cache = encodeCache[exclude];
+ if (cache) { return cache; }
+
+ cache = encodeCache[exclude] = [];
+
+ for (i = 0; i < 128; i++) {
+ ch = String.fromCharCode(i);
+
+ if (/^[0-9a-z]$/i.test(ch)) {
+ // always allow unencoded alphanumeric characters
+ cache.push(ch);
+ } else {
+ cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));
+ }
+ }
+
+ for (i = 0; i < exclude.length; i++) {
+ cache[exclude.charCodeAt(i)] = exclude[i];
+ }
+
+ return cache;
+ }
+
+
+ // Encode unsafe characters with percent-encoding, skipping already
+ // encoded sequences.
+ //
+ // - string - string to encode
+ // - exclude - list of characters to ignore (in addition to a-zA-Z0-9)
+ // - keepEscaped - don't encode '%' in a correct escape sequence (default: true)
+ //
+ function encode(string, exclude, keepEscaped) {
+ var i, l, code, nextCode, cache,
+ result = '';
+
+ if (typeof exclude !== 'string') {
+ // encode(string, keepEscaped)
+ keepEscaped = exclude;
+ exclude = encode.defaultChars;
+ }
+
+ if (typeof keepEscaped === 'undefined') {
+ keepEscaped = true;
+ }
+
+ cache = getEncodeCache(exclude);
+
+ for (i = 0, l = string.length; i < l; i++) {
+ code = string.charCodeAt(i);
+
+ if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {
+ if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {
+ result += string.slice(i, i + 3);
+ i += 2;
+ continue;
+ }
+ }
+
+ if (code < 128) {
+ result += cache[code];
+ continue;
+ }
+
+ if (code >= 0xD800 && code <= 0xDFFF) {
+ if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {
+ nextCode = string.charCodeAt(i + 1);
+ if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {
+ result += encodeURIComponent(string[i] + string[i + 1]);
+ i++;
+ continue;
+ }
+ }
+ result += '%EF%BF%BD';
+ continue;
+ }
+
+ result += encodeURIComponent(string[i]);
+ }
+
+ return result;
+ }
+
+ encode.defaultChars = ";/?:@&=+$,-_.!~*'()#";
+ encode.componentChars = "-_.!~*'()";
+
+
+ var encode_1 = encode;
+
+ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
+
+ function unwrapExports (x) {
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
+ }
+
+ function createCommonjsModule(fn, module) {
+ return module = { exports: {} }, fn(module, module.exports), module.exports;
+ }
+
+ function getCjsExportFromNamespace (n) {
+ return n && n['default'] || n;
+ }
+
+ var Aacute = "Á";
+ var aacute = "á";
+ var Abreve = "Ă";
+ var abreve = "ă";
+ var ac = "∾";
+ var acd = "∿";
+ var acE = "∾̳";
+ var Acirc = "Â";
+ var acirc = "â";
+ var acute = "´";
+ var Acy = "А";
+ var acy = "а";
+ var AElig = "Æ";
+ var aelig = "æ";
+ var af = "";
+ var Afr = "𝔄";
+ var afr = "𝔞";
+ var Agrave = "À";
+ var agrave = "à";
+ var alefsym = "ℵ";
+ var aleph = "ℵ";
+ var Alpha = "Α";
+ var alpha = "α";
+ var Amacr = "Ā";
+ var amacr = "ā";
+ var amalg = "⨿";
+ var amp = "&";
+ var AMP = "&";
+ var andand = "⩕";
+ var And = "⩓";
+ var and = "∧";
+ var andd = "⩜";
+ var andslope = "⩘";
+ var andv = "⩚";
+ var ang = "∠";
+ var ange = "⦤";
+ var angle = "∠";
+ var angmsdaa = "⦨";
+ var angmsdab = "⦩";
+ var angmsdac = "⦪";
+ var angmsdad = "⦫";
+ var angmsdae = "⦬";
+ var angmsdaf = "⦭";
+ var angmsdag = "⦮";
+ var angmsdah = "⦯";
+ var angmsd = "∡";
+ var angrt = "∟";
+ var angrtvb = "⊾";
+ var angrtvbd = "⦝";
+ var angsph = "∢";
+ var angst = "Å";
+ var angzarr = "⍼";
+ var Aogon = "Ą";
+ var aogon = "ą";
+ var Aopf = "𝔸";
+ var aopf = "𝕒";
+ var apacir = "⩯";
+ var ap = "≈";
+ var apE = "⩰";
+ var ape = "≊";
+ var apid = "≋";
+ var apos = "'";
+ var ApplyFunction = "";
+ var approx = "≈";
+ var approxeq = "≊";
+ var Aring = "Å";
+ var aring = "å";
+ var Ascr = "𝒜";
+ var ascr = "𝒶";
+ var Assign = "≔";
+ var ast = "*";
+ var asymp = "≈";
+ var asympeq = "≍";
+ var Atilde = "Ã";
+ var atilde = "ã";
+ var Auml = "Ä";
+ var auml = "ä";
+ var awconint = "∳";
+ var awint = "⨑";
+ var backcong = "≌";
+ var backepsilon = "϶";
+ var backprime = "‵";
+ var backsim = "∽";
+ var backsimeq = "⋍";
+ var Backslash = "∖";
+ var Barv = "⫧";
+ var barvee = "⊽";
+ var barwed = "⌅";
+ var Barwed = "⌆";
+ var barwedge = "⌅";
+ var bbrk = "⎵";
+ var bbrktbrk = "⎶";
+ var bcong = "≌";
+ var Bcy = "Б";
+ var bcy = "б";
+ var bdquo = "„";
+ var becaus = "∵";
+ var because = "∵";
+ var Because = "∵";
+ var bemptyv = "⦰";
+ var bepsi = "϶";
+ var bernou = "ℬ";
+ var Bernoullis = "ℬ";
+ var Beta = "Β";
+ var beta = "β";
+ var beth = "ℶ";
+ var between = "≬";
+ var Bfr = "𝔅";
+ var bfr = "𝔟";
+ var bigcap = "⋂";
+ var bigcirc = "◯";
+ var bigcup = "⋃";
+ var bigodot = "⨀";
+ var bigoplus = "⨁";
+ var bigotimes = "⨂";
+ var bigsqcup = "⨆";
+ var bigstar = "★";
+ var bigtriangledown = "▽";
+ var bigtriangleup = "△";
+ var biguplus = "⨄";
+ var bigvee = "⋁";
+ var bigwedge = "⋀";
+ var bkarow = "⤍";
+ var blacklozenge = "⧫";
+ var blacksquare = "▪";
+ var blacktriangle = "▴";
+ var blacktriangledown = "▾";
+ var blacktriangleleft = "◂";
+ var blacktriangleright = "▸";
+ var blank = "␣";
+ var blk12 = "▒";
+ var blk14 = "░";
+ var blk34 = "▓";
+ var block = "█";
+ var bne = "=⃥";
+ var bnequiv = "≡⃥";
+ var bNot = "⫭";
+ var bnot = "⌐";
+ var Bopf = "𝔹";
+ var bopf = "𝕓";
+ var bot = "⊥";
+ var bottom = "⊥";
+ var bowtie = "⋈";
+ var boxbox = "⧉";
+ var boxdl = "┐";
+ var boxdL = "╕";
+ var boxDl = "╖";
+ var boxDL = "╗";
+ var boxdr = "┌";
+ var boxdR = "╒";
+ var boxDr = "╓";
+ var boxDR = "╔";
+ var boxh = "─";
+ var boxH = "═";
+ var boxhd = "┬";
+ var boxHd = "╤";
+ var boxhD = "╥";
+ var boxHD = "╦";
+ var boxhu = "┴";
+ var boxHu = "╧";
+ var boxhU = "╨";
+ var boxHU = "╩";
+ var boxminus = "⊟";
+ var boxplus = "⊞";
+ var boxtimes = "⊠";
+ var boxul = "┘";
+ var boxuL = "╛";
+ var boxUl = "╜";
+ var boxUL = "╝";
+ var boxur = "└";
+ var boxuR = "╘";
+ var boxUr = "╙";
+ var boxUR = "╚";
+ var boxv = "│";
+ var boxV = "║";
+ var boxvh = "┼";
+ var boxvH = "╪";
+ var boxVh = "╫";
+ var boxVH = "╬";
+ var boxvl = "┤";
+ var boxvL = "╡";
+ var boxVl = "╢";
+ var boxVL = "╣";
+ var boxvr = "├";
+ var boxvR = "╞";
+ var boxVr = "╟";
+ var boxVR = "╠";
+ var bprime = "‵";
+ var breve = "˘";
+ var Breve = "˘";
+ var brvbar = "¦";
+ var bscr = "𝒷";
+ var Bscr = "ℬ";
+ var bsemi = "⁏";
+ var bsim = "∽";
+ var bsime = "⋍";
+ var bsolb = "⧅";
+ var bsol = "\\";
+ var bsolhsub = "⟈";
+ var bull = "•";
+ var bullet = "•";
+ var bump = "≎";
+ var bumpE = "⪮";
+ var bumpe = "≏";
+ var Bumpeq = "≎";
+ var bumpeq = "≏";
+ var Cacute = "Ć";
+ var cacute = "ć";
+ var capand = "⩄";
+ var capbrcup = "⩉";
+ var capcap = "⩋";
+ var cap = "∩";
+ var Cap = "⋒";
+ var capcup = "⩇";
+ var capdot = "⩀";
+ var CapitalDifferentialD = "ⅅ";
+ var caps = "∩︀";
+ var caret = "⁁";
+ var caron = "ˇ";
+ var Cayleys = "ℭ";
+ var ccaps = "⩍";
+ var Ccaron = "Č";
+ var ccaron = "č";
+ var Ccedil = "Ç";
+ var ccedil = "ç";
+ var Ccirc = "Ĉ";
+ var ccirc = "ĉ";
+ var Cconint = "∰";
+ var ccups = "⩌";
+ var ccupssm = "⩐";
+ var Cdot = "Ċ";
+ var cdot = "ċ";
+ var cedil = "¸";
+ var Cedilla = "¸";
+ var cemptyv = "⦲";
+ var cent = "¢";
+ var centerdot = "·";
+ var CenterDot = "·";
+ var cfr = "𝔠";
+ var Cfr = "ℭ";
+ var CHcy = "Ч";
+ var chcy = "ч";
+ var check = "✓";
+ var checkmark = "✓";
+ var Chi = "Χ";
+ var chi = "χ";
+ var circ = "ˆ";
+ var circeq = "≗";
+ var circlearrowleft = "↺";
+ var circlearrowright = "↻";
+ var circledast = "⊛";
+ var circledcirc = "⊚";
+ var circleddash = "⊝";
+ var CircleDot = "⊙";
+ var circledR = "®";
+ var circledS = "Ⓢ";
+ var CircleMinus = "⊖";
+ var CirclePlus = "⊕";
+ var CircleTimes = "⊗";
+ var cir = "○";
+ var cirE = "⧃";
+ var cire = "≗";
+ var cirfnint = "⨐";
+ var cirmid = "⫯";
+ var cirscir = "⧂";
+ var ClockwiseContourIntegral = "∲";
+ var CloseCurlyDoubleQuote = "”";
+ var CloseCurlyQuote = "’";
+ var clubs = "♣";
+ var clubsuit = "♣";
+ var colon = ":";
+ var Colon = "∷";
+ var Colone = "⩴";
+ var colone = "≔";
+ var coloneq = "≔";
+ var comma = ",";
+ var commat = "@";
+ var comp = "∁";
+ var compfn = "∘";
+ var complement = "∁";
+ var complexes = "ℂ";
+ var cong = "≅";
+ var congdot = "⩭";
+ var Congruent = "≡";
+ var conint = "∮";
+ var Conint = "∯";
+ var ContourIntegral = "∮";
+ var copf = "𝕔";
+ var Copf = "ℂ";
+ var coprod = "∐";
+ var Coproduct = "∐";
+ var copy = "©";
+ var COPY = "©";
+ var copysr = "℗";
+ var CounterClockwiseContourIntegral = "∳";
+ var crarr = "↵";
+ var cross = "✗";
+ var Cross = "⨯";
+ var Cscr = "𝒞";
+ var cscr = "𝒸";
+ var csub = "⫏";
+ var csube = "⫑";
+ var csup = "⫐";
+ var csupe = "⫒";
+ var ctdot = "⋯";
+ var cudarrl = "⤸";
+ var cudarrr = "⤵";
+ var cuepr = "⋞";
+ var cuesc = "⋟";
+ var cularr = "↶";
+ var cularrp = "⤽";
+ var cupbrcap = "⩈";
+ var cupcap = "⩆";
+ var CupCap = "≍";
+ var cup = "∪";
+ var Cup = "⋓";
+ var cupcup = "⩊";
+ var cupdot = "⊍";
+ var cupor = "⩅";
+ var cups = "∪︀";
+ var curarr = "↷";
+ var curarrm = "⤼";
+ var curlyeqprec = "⋞";
+ var curlyeqsucc = "⋟";
+ var curlyvee = "⋎";
+ var curlywedge = "⋏";
+ var curren = "¤";
+ var curvearrowleft = "↶";
+ var curvearrowright = "↷";
+ var cuvee = "⋎";
+ var cuwed = "⋏";
+ var cwconint = "∲";
+ var cwint = "∱";
+ var cylcty = "⌭";
+ var dagger = "†";
+ var Dagger = "‡";
+ var daleth = "ℸ";
+ var darr = "↓";
+ var Darr = "↡";
+ var dArr = "⇓";
+ var dash = "‐";
+ var Dashv = "⫤";
+ var dashv = "⊣";
+ var dbkarow = "⤏";
+ var dblac = "˝";
+ var Dcaron = "Ď";
+ var dcaron = "ď";
+ var Dcy = "Д";
+ var dcy = "д";
+ var ddagger = "‡";
+ var ddarr = "⇊";
+ var DD = "ⅅ";
+ var dd = "ⅆ";
+ var DDotrahd = "⤑";
+ var ddotseq = "⩷";
+ var deg = "°";
+ var Del = "∇";
+ var Delta = "Δ";
+ var delta = "δ";
+ var demptyv = "⦱";
+ var dfisht = "⥿";
+ var Dfr = "𝔇";
+ var dfr = "𝔡";
+ var dHar = "⥥";
+ var dharl = "⇃";
+ var dharr = "⇂";
+ var DiacriticalAcute = "´";
+ var DiacriticalDot = "˙";
+ var DiacriticalDoubleAcute = "˝";
+ var DiacriticalGrave = "`";
+ var DiacriticalTilde = "˜";
+ var diam = "⋄";
+ var diamond = "⋄";
+ var Diamond = "⋄";
+ var diamondsuit = "♦";
+ var diams = "♦";
+ var die = "¨";
+ var DifferentialD = "ⅆ";
+ var digamma = "ϝ";
+ var disin = "⋲";
+ var div = "÷";
+ var divide = "÷";
+ var divideontimes = "⋇";
+ var divonx = "⋇";
+ var DJcy = "Ђ";
+ var djcy = "ђ";
+ var dlcorn = "⌞";
+ var dlcrop = "⌍";
+ var dollar = "$";
+ var Dopf = "𝔻";
+ var dopf = "𝕕";
+ var Dot = "¨";
+ var dot = "˙";
+ var DotDot = "⃜";
+ var doteq = "≐";
+ var doteqdot = "≑";
+ var DotEqual = "≐";
+ var dotminus = "∸";
+ var dotplus = "∔";
+ var dotsquare = "⊡";
+ var doublebarwedge = "⌆";
+ var DoubleContourIntegral = "∯";
+ var DoubleDot = "¨";
+ var DoubleDownArrow = "⇓";
+ var DoubleLeftArrow = "⇐";
+ var DoubleLeftRightArrow = "⇔";
+ var DoubleLeftTee = "⫤";
+ var DoubleLongLeftArrow = "⟸";
+ var DoubleLongLeftRightArrow = "⟺";
+ var DoubleLongRightArrow = "⟹";
+ var DoubleRightArrow = "⇒";
+ var DoubleRightTee = "⊨";
+ var DoubleUpArrow = "⇑";
+ var DoubleUpDownArrow = "⇕";
+ var DoubleVerticalBar = "∥";
+ var DownArrowBar = "⤓";
+ var downarrow = "↓";
+ var DownArrow = "↓";
+ var Downarrow = "⇓";
+ var DownArrowUpArrow = "⇵";
+ var DownBreve = "̑";
+ var downdownarrows = "⇊";
+ var downharpoonleft = "⇃";
+ var downharpoonright = "⇂";
+ var DownLeftRightVector = "⥐";
+ var DownLeftTeeVector = "⥞";
+ var DownLeftVectorBar = "⥖";
+ var DownLeftVector = "↽";
+ var DownRightTeeVector = "⥟";
+ var DownRightVectorBar = "⥗";
+ var DownRightVector = "⇁";
+ var DownTeeArrow = "↧";
+ var DownTee = "⊤";
+ var drbkarow = "⤐";
+ var drcorn = "⌟";
+ var drcrop = "⌌";
+ var Dscr = "𝒟";
+ var dscr = "𝒹";
+ var DScy = "Ѕ";
+ var dscy = "ѕ";
+ var dsol = "⧶";
+ var Dstrok = "Đ";
+ var dstrok = "đ";
+ var dtdot = "⋱";
+ var dtri = "▿";
+ var dtrif = "▾";
+ var duarr = "⇵";
+ var duhar = "⥯";
+ var dwangle = "⦦";
+ var DZcy = "Џ";
+ var dzcy = "џ";
+ var dzigrarr = "⟿";
+ var Eacute = "É";
+ var eacute = "é";
+ var easter = "⩮";
+ var Ecaron = "Ě";
+ var ecaron = "ě";
+ var Ecirc = "Ê";
+ var ecirc = "ê";
+ var ecir = "≖";
+ var ecolon = "≕";
+ var Ecy = "Э";
+ var ecy = "э";
+ var eDDot = "⩷";
+ var Edot = "Ė";
+ var edot = "ė";
+ var eDot = "≑";
+ var ee = "ⅇ";
+ var efDot = "≒";
+ var Efr = "𝔈";
+ var efr = "𝔢";
+ var eg = "⪚";
+ var Egrave = "È";
+ var egrave = "è";
+ var egs = "⪖";
+ var egsdot = "⪘";
+ var el = "⪙";
+ var Element = "∈";
+ var elinters = "⏧";
+ var ell = "ℓ";
+ var els = "⪕";
+ var elsdot = "⪗";
+ var Emacr = "Ē";
+ var emacr = "ē";
+ var empty = "∅";
+ var emptyset = "∅";
+ var EmptySmallSquare = "◻";
+ var emptyv = "∅";
+ var EmptyVerySmallSquare = "▫";
+ var emsp13 = " ";
+ var emsp14 = " ";
+ var emsp = " ";
+ var ENG = "Ŋ";
+ var eng = "ŋ";
+ var ensp = " ";
+ var Eogon = "Ę";
+ var eogon = "ę";
+ var Eopf = "𝔼";
+ var eopf = "𝕖";
+ var epar = "⋕";
+ var eparsl = "⧣";
+ var eplus = "⩱";
+ var epsi = "ε";
+ var Epsilon = "Ε";
+ var epsilon = "ε";
+ var epsiv = "ϵ";
+ var eqcirc = "≖";
+ var eqcolon = "≕";
+ var eqsim = "≂";
+ var eqslantgtr = "⪖";
+ var eqslantless = "⪕";
+ var Equal = "⩵";
+ var equals = "=";
+ var EqualTilde = "≂";
+ var equest = "≟";
+ var Equilibrium = "⇌";
+ var equiv = "≡";
+ var equivDD = "⩸";
+ var eqvparsl = "⧥";
+ var erarr = "⥱";
+ var erDot = "≓";
+ var escr = "ℯ";
+ var Escr = "ℰ";
+ var esdot = "≐";
+ var Esim = "⩳";
+ var esim = "≂";
+ var Eta = "Η";
+ var eta = "η";
+ var ETH = "Ð";
+ var eth = "ð";
+ var Euml = "Ë";
+ var euml = "ë";
+ var euro = "€";
+ var excl = "!";
+ var exist = "∃";
+ var Exists = "∃";
+ var expectation = "ℰ";
+ var exponentiale = "ⅇ";
+ var ExponentialE = "ⅇ";
+ var fallingdotseq = "≒";
+ var Fcy = "Ф";
+ var fcy = "ф";
+ var female = "♀";
+ var ffilig = "ffi";
+ var fflig = "ff";
+ var ffllig = "ffl";
+ var Ffr = "𝔉";
+ var ffr = "𝔣";
+ var filig = "fi";
+ var FilledSmallSquare = "◼";
+ var FilledVerySmallSquare = "▪";
+ var fjlig = "fj";
+ var flat = "♭";
+ var fllig = "fl";
+ var fltns = "▱";
+ var fnof = "ƒ";
+ var Fopf = "𝔽";
+ var fopf = "𝕗";
+ var forall = "∀";
+ var ForAll = "∀";
+ var fork = "⋔";
+ var forkv = "⫙";
+ var Fouriertrf = "ℱ";
+ var fpartint = "⨍";
+ var frac12 = "½";
+ var frac13 = "⅓";
+ var frac14 = "¼";
+ var frac15 = "⅕";
+ var frac16 = "⅙";
+ var frac18 = "⅛";
+ var frac23 = "⅔";
+ var frac25 = "⅖";
+ var frac34 = "¾";
+ var frac35 = "⅗";
+ var frac38 = "⅜";
+ var frac45 = "⅘";
+ var frac56 = "⅚";
+ var frac58 = "⅝";
+ var frac78 = "⅞";
+ var frasl = "⁄";
+ var frown = "⌢";
+ var fscr = "𝒻";
+ var Fscr = "ℱ";
+ var gacute = "ǵ";
+ var Gamma = "Γ";
+ var gamma = "γ";
+ var Gammad = "Ϝ";
+ var gammad = "ϝ";
+ var gap = "⪆";
+ var Gbreve = "Ğ";
+ var gbreve = "ğ";
+ var Gcedil = "Ģ";
+ var Gcirc = "Ĝ";
+ var gcirc = "ĝ";
+ var Gcy = "Г";
+ var gcy = "г";
+ var Gdot = "Ġ";
+ var gdot = "ġ";
+ var ge = "≥";
+ var gE = "≧";
+ var gEl = "⪌";
+ var gel = "⋛";
+ var geq = "≥";
+ var geqq = "≧";
+ var geqslant = "⩾";
+ var gescc = "⪩";
+ var ges = "⩾";
+ var gesdot = "⪀";
+ var gesdoto = "⪂";
+ var gesdotol = "⪄";
+ var gesl = "⋛︀";
+ var gesles = "⪔";
+ var Gfr = "𝔊";
+ var gfr = "𝔤";
+ var gg = "≫";
+ var Gg = "⋙";
+ var ggg = "⋙";
+ var gimel = "ℷ";
+ var GJcy = "Ѓ";
+ var gjcy = "ѓ";
+ var gla = "⪥";
+ var gl = "≷";
+ var glE = "⪒";
+ var glj = "⪤";
+ var gnap = "⪊";
+ var gnapprox = "⪊";
+ var gne = "⪈";
+ var gnE = "≩";
+ var gneq = "⪈";
+ var gneqq = "≩";
+ var gnsim = "⋧";
+ var Gopf = "𝔾";
+ var gopf = "𝕘";
+ var grave = "`";
+ var GreaterEqual = "≥";
+ var GreaterEqualLess = "⋛";
+ var GreaterFullEqual = "≧";
+ var GreaterGreater = "⪢";
+ var GreaterLess = "≷";
+ var GreaterSlantEqual = "⩾";
+ var GreaterTilde = "≳";
+ var Gscr = "𝒢";
+ var gscr = "ℊ";
+ var gsim = "≳";
+ var gsime = "⪎";
+ var gsiml = "⪐";
+ var gtcc = "⪧";
+ var gtcir = "⩺";
+ var gt = ">";
+ var GT = ">";
+ var Gt = "≫";
+ var gtdot = "⋗";
+ var gtlPar = "⦕";
+ var gtquest = "⩼";
+ var gtrapprox = "⪆";
+ var gtrarr = "⥸";
+ var gtrdot = "⋗";
+ var gtreqless = "⋛";
+ var gtreqqless = "⪌";
+ var gtrless = "≷";
+ var gtrsim = "≳";
+ var gvertneqq = "≩︀";
+ var gvnE = "≩︀";
+ var Hacek = "ˇ";
+ var hairsp = " ";
+ var half = "½";
+ var hamilt = "ℋ";
+ var HARDcy = "Ъ";
+ var hardcy = "ъ";
+ var harrcir = "⥈";
+ var harr = "↔";
+ var hArr = "⇔";
+ var harrw = "↭";
+ var Hat = "^";
+ var hbar = "ℏ";
+ var Hcirc = "Ĥ";
+ var hcirc = "ĥ";
+ var hearts = "♥";
+ var heartsuit = "♥";
+ var hellip = "…";
+ var hercon = "⊹";
+ var hfr = "𝔥";
+ var Hfr = "ℌ";
+ var HilbertSpace = "ℋ";
+ var hksearow = "⤥";
+ var hkswarow = "⤦";
+ var hoarr = "⇿";
+ var homtht = "∻";
+ var hookleftarrow = "↩";
+ var hookrightarrow = "↪";
+ var hopf = "𝕙";
+ var Hopf = "ℍ";
+ var horbar = "―";
+ var HorizontalLine = "─";
+ var hscr = "𝒽";
+ var Hscr = "ℋ";
+ var hslash = "ℏ";
+ var Hstrok = "Ħ";
+ var hstrok = "ħ";
+ var HumpDownHump = "≎";
+ var HumpEqual = "≏";
+ var hybull = "⁃";
+ var hyphen = "‐";
+ var Iacute = "Í";
+ var iacute = "í";
+ var ic = "";
+ var Icirc = "Î";
+ var icirc = "î";
+ var Icy = "И";
+ var icy = "и";
+ var Idot = "İ";
+ var IEcy = "Е";
+ var iecy = "е";
+ var iexcl = "¡";
+ var iff = "⇔";
+ var ifr = "𝔦";
+ var Ifr = "ℑ";
+ var Igrave = "Ì";
+ var igrave = "ì";
+ var ii = "ⅈ";
+ var iiiint = "⨌";
+ var iiint = "∭";
+ var iinfin = "⧜";
+ var iiota = "℩";
+ var IJlig = "IJ";
+ var ijlig = "ij";
+ var Imacr = "Ī";
+ var imacr = "ī";
+ var image = "ℑ";
+ var ImaginaryI = "ⅈ";
+ var imagline = "ℐ";
+ var imagpart = "ℑ";
+ var imath = "ı";
+ var Im = "ℑ";
+ var imof = "⊷";
+ var imped = "Ƶ";
+ var Implies = "⇒";
+ var incare = "℅";
+ var infin = "∞";
+ var infintie = "⧝";
+ var inodot = "ı";
+ var intcal = "⊺";
+ var int = "∫";
+ var Int = "∬";
+ var integers = "ℤ";
+ var Integral = "∫";
+ var intercal = "⊺";
+ var Intersection = "⋂";
+ var intlarhk = "⨗";
+ var intprod = "⨼";
+ var InvisibleComma = "";
+ var InvisibleTimes = "";
+ var IOcy = "Ё";
+ var iocy = "ё";
+ var Iogon = "Į";
+ var iogon = "į";
+ var Iopf = "𝕀";
+ var iopf = "𝕚";
+ var Iota = "Ι";
+ var iota = "ι";
+ var iprod = "⨼";
+ var iquest = "¿";
+ var iscr = "𝒾";
+ var Iscr = "ℐ";
+ var isin = "∈";
+ var isindot = "⋵";
+ var isinE = "⋹";
+ var isins = "⋴";
+ var isinsv = "⋳";
+ var isinv = "∈";
+ var it = "";
+ var Itilde = "Ĩ";
+ var itilde = "ĩ";
+ var Iukcy = "І";
+ var iukcy = "і";
+ var Iuml = "Ï";
+ var iuml = "ï";
+ var Jcirc = "Ĵ";
+ var jcirc = "ĵ";
+ var Jcy = "Й";
+ var jcy = "й";
+ var Jfr = "𝔍";
+ var jfr = "𝔧";
+ var jmath = "ȷ";
+ var Jopf = "𝕁";
+ var jopf = "𝕛";
+ var Jscr = "𝒥";
+ var jscr = "𝒿";
+ var Jsercy = "Ј";
+ var jsercy = "ј";
+ var Jukcy = "Є";
+ var jukcy = "є";
+ var Kappa = "Κ";
+ var kappa = "κ";
+ var kappav = "ϰ";
+ var Kcedil = "Ķ";
+ var kcedil = "ķ";
+ var Kcy = "К";
+ var kcy = "к";
+ var Kfr = "𝔎";
+ var kfr = "𝔨";
+ var kgreen = "ĸ";
+ var KHcy = "Х";
+ var khcy = "х";
+ var KJcy = "Ќ";
+ var kjcy = "ќ";
+ var Kopf = "𝕂";
+ var kopf = "𝕜";
+ var Kscr = "𝒦";
+ var kscr = "𝓀";
+ var lAarr = "⇚";
+ var Lacute = "Ĺ";
+ var lacute = "ĺ";
+ var laemptyv = "⦴";
+ var lagran = "ℒ";
+ var Lambda = "Λ";
+ var lambda = "λ";
+ var lang = "⟨";
+ var Lang = "⟪";
+ var langd = "⦑";
+ var langle = "⟨";
+ var lap = "⪅";
+ var Laplacetrf = "ℒ";
+ var laquo = "«";
+ var larrb = "⇤";
+ var larrbfs = "⤟";
+ var larr = "←";
+ var Larr = "↞";
+ var lArr = "⇐";
+ var larrfs = "⤝";
+ var larrhk = "↩";
+ var larrlp = "↫";
+ var larrpl = "⤹";
+ var larrsim = "⥳";
+ var larrtl = "↢";
+ var latail = "⤙";
+ var lAtail = "⤛";
+ var lat = "⪫";
+ var late = "⪭";
+ var lates = "⪭︀";
+ var lbarr = "⤌";
+ var lBarr = "⤎";
+ var lbbrk = "❲";
+ var lbrace = "{";
+ var lbrack = "[";
+ var lbrke = "⦋";
+ var lbrksld = "⦏";
+ var lbrkslu = "⦍";
+ var Lcaron = "Ľ";
+ var lcaron = "ľ";
+ var Lcedil = "Ļ";
+ var lcedil = "ļ";
+ var lceil = "⌈";
+ var lcub = "{";
+ var Lcy = "Л";
+ var lcy = "л";
+ var ldca = "⤶";
+ var ldquo = "“";
+ var ldquor = "„";
+ var ldrdhar = "⥧";
+ var ldrushar = "⥋";
+ var ldsh = "↲";
+ var le = "≤";
+ var lE = "≦";
+ var LeftAngleBracket = "⟨";
+ var LeftArrowBar = "⇤";
+ var leftarrow = "←";
+ var LeftArrow = "←";
+ var Leftarrow = "⇐";
+ var LeftArrowRightArrow = "⇆";
+ var leftarrowtail = "↢";
+ var LeftCeiling = "⌈";
+ var LeftDoubleBracket = "⟦";
+ var LeftDownTeeVector = "⥡";
+ var LeftDownVectorBar = "⥙";
+ var LeftDownVector = "⇃";
+ var LeftFloor = "⌊";
+ var leftharpoondown = "↽";
+ var leftharpoonup = "↼";
+ var leftleftarrows = "⇇";
+ var leftrightarrow = "↔";
+ var LeftRightArrow = "↔";
+ var Leftrightarrow = "⇔";
+ var leftrightarrows = "⇆";
+ var leftrightharpoons = "⇋";
+ var leftrightsquigarrow = "↭";
+ var LeftRightVector = "⥎";
+ var LeftTeeArrow = "↤";
+ var LeftTee = "⊣";
+ var LeftTeeVector = "⥚";
+ var leftthreetimes = "⋋";
+ var LeftTriangleBar = "⧏";
+ var LeftTriangle = "⊲";
+ var LeftTriangleEqual = "⊴";
+ var LeftUpDownVector = "⥑";
+ var LeftUpTeeVector = "⥠";
+ var LeftUpVectorBar = "⥘";
+ var LeftUpVector = "↿";
+ var LeftVectorBar = "⥒";
+ var LeftVector = "↼";
+ var lEg = "⪋";
+ var leg = "⋚";
+ var leq = "≤";
+ var leqq = "≦";
+ var leqslant = "⩽";
+ var lescc = "⪨";
+ var les = "⩽";
+ var lesdot = "⩿";
+ var lesdoto = "⪁";
+ var lesdotor = "⪃";
+ var lesg = "⋚︀";
+ var lesges = "⪓";
+ var lessapprox = "⪅";
+ var lessdot = "⋖";
+ var lesseqgtr = "⋚";
+ var lesseqqgtr = "⪋";
+ var LessEqualGreater = "⋚";
+ var LessFullEqual = "≦";
+ var LessGreater = "≶";
+ var lessgtr = "≶";
+ var LessLess = "⪡";
+ var lesssim = "≲";
+ var LessSlantEqual = "⩽";
+ var LessTilde = "≲";
+ var lfisht = "⥼";
+ var lfloor = "⌊";
+ var Lfr = "𝔏";
+ var lfr = "𝔩";
+ var lg = "≶";
+ var lgE = "⪑";
+ var lHar = "⥢";
+ var lhard = "↽";
+ var lharu = "↼";
+ var lharul = "⥪";
+ var lhblk = "▄";
+ var LJcy = "Љ";
+ var ljcy = "љ";
+ var llarr = "⇇";
+ var ll = "≪";
+ var Ll = "⋘";
+ var llcorner = "⌞";
+ var Lleftarrow = "⇚";
+ var llhard = "⥫";
+ var lltri = "◺";
+ var Lmidot = "Ŀ";
+ var lmidot = "ŀ";
+ var lmoustache = "⎰";
+ var lmoust = "⎰";
+ var lnap = "⪉";
+ var lnapprox = "⪉";
+ var lne = "⪇";
+ var lnE = "≨";
+ var lneq = "⪇";
+ var lneqq = "≨";
+ var lnsim = "⋦";
+ var loang = "⟬";
+ var loarr = "⇽";
+ var lobrk = "⟦";
+ var longleftarrow = "⟵";
+ var LongLeftArrow = "⟵";
+ var Longleftarrow = "⟸";
+ var longleftrightarrow = "⟷";
+ var LongLeftRightArrow = "⟷";
+ var Longleftrightarrow = "⟺";
+ var longmapsto = "⟼";
+ var longrightarrow = "⟶";
+ var LongRightArrow = "⟶";
+ var Longrightarrow = "⟹";
+ var looparrowleft = "↫";
+ var looparrowright = "↬";
+ var lopar = "⦅";
+ var Lopf = "𝕃";
+ var lopf = "𝕝";
+ var loplus = "⨭";
+ var lotimes = "⨴";
+ var lowast = "∗";
+ var lowbar = "_";
+ var LowerLeftArrow = "↙";
+ var LowerRightArrow = "↘";
+ var loz = "◊";
+ var lozenge = "◊";
+ var lozf = "⧫";
+ var lpar = "(";
+ var lparlt = "⦓";
+ var lrarr = "⇆";
+ var lrcorner = "⌟";
+ var lrhar = "⇋";
+ var lrhard = "⥭";
+ var lrm = "";
+ var lrtri = "⊿";
+ var lsaquo = "‹";
+ var lscr = "𝓁";
+ var Lscr = "ℒ";
+ var lsh = "↰";
+ var Lsh = "↰";
+ var lsim = "≲";
+ var lsime = "⪍";
+ var lsimg = "⪏";
+ var lsqb = "[";
+ var lsquo = "‘";
+ var lsquor = "‚";
+ var Lstrok = "Ł";
+ var lstrok = "ł";
+ var ltcc = "⪦";
+ var ltcir = "⩹";
+ var lt = "<";
+ var LT = "<";
+ var Lt = "≪";
+ var ltdot = "⋖";
+ var lthree = "⋋";
+ var ltimes = "⋉";
+ var ltlarr = "⥶";
+ var ltquest = "⩻";
+ var ltri = "◃";
+ var ltrie = "⊴";
+ var ltrif = "◂";
+ var ltrPar = "⦖";
+ var lurdshar = "⥊";
+ var luruhar = "⥦";
+ var lvertneqq = "≨︀";
+ var lvnE = "≨︀";
+ var macr = "¯";
+ var male = "♂";
+ var malt = "✠";
+ var maltese = "✠";
+ var map = "↦";
+ var mapsto = "↦";
+ var mapstodown = "↧";
+ var mapstoleft = "↤";
+ var mapstoup = "↥";
+ var marker = "▮";
+ var mcomma = "⨩";
+ var Mcy = "М";
+ var mcy = "м";
+ var mdash = "—";
+ var mDDot = "∺";
+ var measuredangle = "∡";
+ var MediumSpace = " ";
+ var Mellintrf = "ℳ";
+ var Mfr = "𝔐";
+ var mfr = "𝔪";
+ var mho = "℧";
+ var micro = "µ";
+ var midast = "*";
+ var midcir = "⫰";
+ var mid = "∣";
+ var middot = "·";
+ var minusb = "⊟";
+ var minus = "−";
+ var minusd = "∸";
+ var minusdu = "⨪";
+ var MinusPlus = "∓";
+ var mlcp = "⫛";
+ var mldr = "…";
+ var mnplus = "∓";
+ var models = "⊧";
+ var Mopf = "𝕄";
+ var mopf = "𝕞";
+ var mp = "∓";
+ var mscr = "𝓂";
+ var Mscr = "ℳ";
+ var mstpos = "∾";
+ var Mu = "Μ";
+ var mu = "μ";
+ var multimap = "⊸";
+ var mumap = "⊸";
+ var nabla = "∇";
+ var Nacute = "Ń";
+ var nacute = "ń";
+ var nang = "∠⃒";
+ var nap = "≉";
+ var napE = "⩰̸";
+ var napid = "≋̸";
+ var napos = "ʼn";
+ var napprox = "≉";
+ var natural = "♮";
+ var naturals = "ℕ";
+ var natur = "♮";
+ var nbsp = " ";
+ var nbump = "≎̸";
+ var nbumpe = "≏̸";
+ var ncap = "⩃";
+ var Ncaron = "Ň";
+ var ncaron = "ň";
+ var Ncedil = "Ņ";
+ var ncedil = "ņ";
+ var ncong = "≇";
+ var ncongdot = "⩭̸";
+ var ncup = "⩂";
+ var Ncy = "Н";
+ var ncy = "н";
+ var ndash = "–";
+ var nearhk = "⤤";
+ var nearr = "↗";
+ var neArr = "⇗";
+ var nearrow = "↗";
+ var ne = "≠";
+ var nedot = "≐̸";
+ var NegativeMediumSpace = "";
+ var NegativeThickSpace = "";
+ var NegativeThinSpace = "";
+ var NegativeVeryThinSpace = "";
+ var nequiv = "≢";
+ var nesear = "⤨";
+ var nesim = "≂̸";
+ var NestedGreaterGreater = "≫";
+ var NestedLessLess = "≪";
+ var NewLine = "\n";
+ var nexist = "∄";
+ var nexists = "∄";
+ var Nfr = "𝔑";
+ var nfr = "𝔫";
+ var ngE = "≧̸";
+ var nge = "≱";
+ var ngeq = "≱";
+ var ngeqq = "≧̸";
+ var ngeqslant = "⩾̸";
+ var nges = "⩾̸";
+ var nGg = "⋙̸";
+ var ngsim = "≵";
+ var nGt = "≫⃒";
+ var ngt = "≯";
+ var ngtr = "≯";
+ var nGtv = "≫̸";
+ var nharr = "↮";
+ var nhArr = "⇎";
+ var nhpar = "⫲";
+ var ni = "∋";
+ var nis = "⋼";
+ var nisd = "⋺";
+ var niv = "∋";
+ var NJcy = "Њ";
+ var njcy = "њ";
+ var nlarr = "↚";
+ var nlArr = "⇍";
+ var nldr = "‥";
+ var nlE = "≦̸";
+ var nle = "≰";
+ var nleftarrow = "↚";
+ var nLeftarrow = "⇍";
+ var nleftrightarrow = "↮";
+ var nLeftrightarrow = "⇎";
+ var nleq = "≰";
+ var nleqq = "≦̸";
+ var nleqslant = "⩽̸";
+ var nles = "⩽̸";
+ var nless = "≮";
+ var nLl = "⋘̸";
+ var nlsim = "≴";
+ var nLt = "≪⃒";
+ var nlt = "≮";
+ var nltri = "⋪";
+ var nltrie = "⋬";
+ var nLtv = "≪̸";
+ var nmid = "∤";
+ var NoBreak = "";
+ var NonBreakingSpace = " ";
+ var nopf = "𝕟";
+ var Nopf = "ℕ";
+ var Not = "⫬";
+ var not = "¬";
+ var NotCongruent = "≢";
+ var NotCupCap = "≭";
+ var NotDoubleVerticalBar = "∦";
+ var NotElement = "∉";
+ var NotEqual = "≠";
+ var NotEqualTilde = "≂̸";
+ var NotExists = "∄";
+ var NotGreater = "≯";
+ var NotGreaterEqual = "≱";
+ var NotGreaterFullEqual = "≧̸";
+ var NotGreaterGreater = "≫̸";
+ var NotGreaterLess = "≹";
+ var NotGreaterSlantEqual = "⩾̸";
+ var NotGreaterTilde = "≵";
+ var NotHumpDownHump = "≎̸";
+ var NotHumpEqual = "≏̸";
+ var notin = "∉";
+ var notindot = "⋵̸";
+ var notinE = "⋹̸";
+ var notinva = "∉";
+ var notinvb = "⋷";
+ var notinvc = "⋶";
+ var NotLeftTriangleBar = "⧏̸";
+ var NotLeftTriangle = "⋪";
+ var NotLeftTriangleEqual = "⋬";
+ var NotLess = "≮";
+ var NotLessEqual = "≰";
+ var NotLessGreater = "≸";
+ var NotLessLess = "≪̸";
+ var NotLessSlantEqual = "⩽̸";
+ var NotLessTilde = "≴";
+ var NotNestedGreaterGreater = "⪢̸";
+ var NotNestedLessLess = "⪡̸";
+ var notni = "∌";
+ var notniva = "∌";
+ var notnivb = "⋾";
+ var notnivc = "⋽";
+ var NotPrecedes = "⊀";
+ var NotPrecedesEqual = "⪯̸";
+ var NotPrecedesSlantEqual = "⋠";
+ var NotReverseElement = "∌";
+ var NotRightTriangleBar = "⧐̸";
+ var NotRightTriangle = "⋫";
+ var NotRightTriangleEqual = "⋭";
+ var NotSquareSubset = "⊏̸";
+ var NotSquareSubsetEqual = "⋢";
+ var NotSquareSuperset = "⊐̸";
+ var NotSquareSupersetEqual = "⋣";
+ var NotSubset = "⊂⃒";
+ var NotSubsetEqual = "⊈";
+ var NotSucceeds = "⊁";
+ var NotSucceedsEqual = "⪰̸";
+ var NotSucceedsSlantEqual = "⋡";
+ var NotSucceedsTilde = "≿̸";
+ var NotSuperset = "⊃⃒";
+ var NotSupersetEqual = "⊉";
+ var NotTilde = "≁";
+ var NotTildeEqual = "≄";
+ var NotTildeFullEqual = "≇";
+ var NotTildeTilde = "≉";
+ var NotVerticalBar = "∤";
+ var nparallel = "∦";
+ var npar = "∦";
+ var nparsl = "⫽⃥";
+ var npart = "∂̸";
+ var npolint = "⨔";
+ var npr = "⊀";
+ var nprcue = "⋠";
+ var nprec = "⊀";
+ var npreceq = "⪯̸";
+ var npre = "⪯̸";
+ var nrarrc = "⤳̸";
+ var nrarr = "↛";
+ var nrArr = "⇏";
+ var nrarrw = "↝̸";
+ var nrightarrow = "↛";
+ var nRightarrow = "⇏";
+ var nrtri = "⋫";
+ var nrtrie = "⋭";
+ var nsc = "⊁";
+ var nsccue = "⋡";
+ var nsce = "⪰̸";
+ var Nscr = "𝒩";
+ var nscr = "𝓃";
+ var nshortmid = "∤";
+ var nshortparallel = "∦";
+ var nsim = "≁";
+ var nsime = "≄";
+ var nsimeq = "≄";
+ var nsmid = "∤";
+ var nspar = "∦";
+ var nsqsube = "⋢";
+ var nsqsupe = "⋣";
+ var nsub = "⊄";
+ var nsubE = "⫅̸";
+ var nsube = "⊈";
+ var nsubset = "⊂⃒";
+ var nsubseteq = "⊈";
+ var nsubseteqq = "⫅̸";
+ var nsucc = "⊁";
+ var nsucceq = "⪰̸";
+ var nsup = "⊅";
+ var nsupE = "⫆̸";
+ var nsupe = "⊉";
+ var nsupset = "⊃⃒";
+ var nsupseteq = "⊉";
+ var nsupseteqq = "⫆̸";
+ var ntgl = "≹";
+ var Ntilde = "Ñ";
+ var ntilde = "ñ";
+ var ntlg = "≸";
+ var ntriangleleft = "⋪";
+ var ntrianglelefteq = "⋬";
+ var ntriangleright = "⋫";
+ var ntrianglerighteq = "⋭";
+ var Nu = "Ν";
+ var nu = "ν";
+ var num = "#";
+ var numero = "№";
+ var numsp = " ";
+ var nvap = "≍⃒";
+ var nvdash = "⊬";
+ var nvDash = "⊭";
+ var nVdash = "⊮";
+ var nVDash = "⊯";
+ var nvge = "≥⃒";
+ var nvgt = ">⃒";
+ var nvHarr = "⤄";
+ var nvinfin = "⧞";
+ var nvlArr = "⤂";
+ var nvle = "≤⃒";
+ var nvlt = "<⃒";
+ var nvltrie = "⊴⃒";
+ var nvrArr = "⤃";
+ var nvrtrie = "⊵⃒";
+ var nvsim = "∼⃒";
+ var nwarhk = "⤣";
+ var nwarr = "↖";
+ var nwArr = "⇖";
+ var nwarrow = "↖";
+ var nwnear = "⤧";
+ var Oacute = "Ó";
+ var oacute = "ó";
+ var oast = "⊛";
+ var Ocirc = "Ô";
+ var ocirc = "ô";
+ var ocir = "⊚";
+ var Ocy = "О";
+ var ocy = "о";
+ var odash = "⊝";
+ var Odblac = "Ő";
+ var odblac = "ő";
+ var odiv = "⨸";
+ var odot = "⊙";
+ var odsold = "⦼";
+ var OElig = "Œ";
+ var oelig = "œ";
+ var ofcir = "⦿";
+ var Ofr = "𝔒";
+ var ofr = "𝔬";
+ var ogon = "˛";
+ var Ograve = "Ò";
+ var ograve = "ò";
+ var ogt = "⧁";
+ var ohbar = "⦵";
+ var ohm = "Ω";
+ var oint = "∮";
+ var olarr = "↺";
+ var olcir = "⦾";
+ var olcross = "⦻";
+ var oline = "‾";
+ var olt = "⧀";
+ var Omacr = "Ō";
+ var omacr = "ō";
+ var Omega = "Ω";
+ var omega = "ω";
+ var Omicron = "Ο";
+ var omicron = "ο";
+ var omid = "⦶";
+ var ominus = "⊖";
+ var Oopf = "𝕆";
+ var oopf = "𝕠";
+ var opar = "⦷";
+ var OpenCurlyDoubleQuote = "“";
+ var OpenCurlyQuote = "‘";
+ var operp = "⦹";
+ var oplus = "⊕";
+ var orarr = "↻";
+ var Or = "⩔";
+ var or = "∨";
+ var ord = "⩝";
+ var order = "ℴ";
+ var orderof = "ℴ";
+ var ordf = "ª";
+ var ordm = "º";
+ var origof = "⊶";
+ var oror = "⩖";
+ var orslope = "⩗";
+ var orv = "⩛";
+ var oS = "Ⓢ";
+ var Oscr = "𝒪";
+ var oscr = "ℴ";
+ var Oslash = "Ø";
+ var oslash = "ø";
+ var osol = "⊘";
+ var Otilde = "Õ";
+ var otilde = "õ";
+ var otimesas = "⨶";
+ var Otimes = "⨷";
+ var otimes = "⊗";
+ var Ouml = "Ö";
+ var ouml = "ö";
+ var ovbar = "⌽";
+ var OverBar = "‾";
+ var OverBrace = "⏞";
+ var OverBracket = "⎴";
+ var OverParenthesis = "⏜";
+ var para = "¶";
+ var parallel = "∥";
+ var par = "∥";
+ var parsim = "⫳";
+ var parsl = "⫽";
+ var part = "∂";
+ var PartialD = "∂";
+ var Pcy = "П";
+ var pcy = "п";
+ var percnt = "%";
+ var period = ".";
+ var permil = "‰";
+ var perp = "⊥";
+ var pertenk = "‱";
+ var Pfr = "𝔓";
+ var pfr = "𝔭";
+ var Phi = "Φ";
+ var phi = "φ";
+ var phiv = "ϕ";
+ var phmmat = "ℳ";
+ var phone = "☎";
+ var Pi = "Π";
+ var pi = "π";
+ var pitchfork = "⋔";
+ var piv = "ϖ";
+ var planck = "ℏ";
+ var planckh = "ℎ";
+ var plankv = "ℏ";
+ var plusacir = "⨣";
+ var plusb = "⊞";
+ var pluscir = "⨢";
+ var plus = "+";
+ var plusdo = "∔";
+ var plusdu = "⨥";
+ var pluse = "⩲";
+ var PlusMinus = "±";
+ var plusmn = "±";
+ var plussim = "⨦";
+ var plustwo = "⨧";
+ var pm = "±";
+ var Poincareplane = "ℌ";
+ var pointint = "⨕";
+ var popf = "𝕡";
+ var Popf = "ℙ";
+ var pound = "£";
+ var prap = "⪷";
+ var Pr = "⪻";
+ var pr = "≺";
+ var prcue = "≼";
+ var precapprox = "⪷";
+ var prec = "≺";
+ var preccurlyeq = "≼";
+ var Precedes = "≺";
+ var PrecedesEqual = "⪯";
+ var PrecedesSlantEqual = "≼";
+ var PrecedesTilde = "≾";
+ var preceq = "⪯";
+ var precnapprox = "⪹";
+ var precneqq = "⪵";
+ var precnsim = "⋨";
+ var pre = "⪯";
+ var prE = "⪳";
+ var precsim = "≾";
+ var prime = "′";
+ var Prime = "″";
+ var primes = "ℙ";
+ var prnap = "⪹";
+ var prnE = "⪵";
+ var prnsim = "⋨";
+ var prod = "∏";
+ var Product = "∏";
+ var profalar = "⌮";
+ var profline = "⌒";
+ var profsurf = "⌓";
+ var prop = "∝";
+ var Proportional = "∝";
+ var Proportion = "∷";
+ var propto = "∝";
+ var prsim = "≾";
+ var prurel = "⊰";
+ var Pscr = "𝒫";
+ var pscr = "𝓅";
+ var Psi = "Ψ";
+ var psi = "ψ";
+ var puncsp = " ";
+ var Qfr = "𝔔";
+ var qfr = "𝔮";
+ var qint = "⨌";
+ var qopf = "𝕢";
+ var Qopf = "ℚ";
+ var qprime = "⁗";
+ var Qscr = "𝒬";
+ var qscr = "𝓆";
+ var quaternions = "ℍ";
+ var quatint = "⨖";
+ var quest = "?";
+ var questeq = "≟";
+ var quot = "\"";
+ var QUOT = "\"";
+ var rAarr = "⇛";
+ var race = "∽̱";
+ var Racute = "Ŕ";
+ var racute = "ŕ";
+ var radic = "√";
+ var raemptyv = "⦳";
+ var rang = "⟩";
+ var Rang = "⟫";
+ var rangd = "⦒";
+ var range = "⦥";
+ var rangle = "⟩";
+ var raquo = "»";
+ var rarrap = "⥵";
+ var rarrb = "⇥";
+ var rarrbfs = "⤠";
+ var rarrc = "⤳";
+ var rarr = "→";
+ var Rarr = "↠";
+ var rArr = "⇒";
+ var rarrfs = "⤞";
+ var rarrhk = "↪";
+ var rarrlp = "↬";
+ var rarrpl = "⥅";
+ var rarrsim = "⥴";
+ var Rarrtl = "⤖";
+ var rarrtl = "↣";
+ var rarrw = "↝";
+ var ratail = "⤚";
+ var rAtail = "⤜";
+ var ratio = "∶";
+ var rationals = "ℚ";
+ var rbarr = "⤍";
+ var rBarr = "⤏";
+ var RBarr = "⤐";
+ var rbbrk = "❳";
+ var rbrace = "}";
+ var rbrack = "]";
+ var rbrke = "⦌";
+ var rbrksld = "⦎";
+ var rbrkslu = "⦐";
+ var Rcaron = "Ř";
+ var rcaron = "ř";
+ var Rcedil = "Ŗ";
+ var rcedil = "ŗ";
+ var rceil = "⌉";
+ var rcub = "}";
+ var Rcy = "Р";
+ var rcy = "р";
+ var rdca = "⤷";
+ var rdldhar = "⥩";
+ var rdquo = "”";
+ var rdquor = "”";
+ var rdsh = "↳";
+ var real = "ℜ";
+ var realine = "ℛ";
+ var realpart = "ℜ";
+ var reals = "ℝ";
+ var Re = "ℜ";
+ var rect = "▭";
+ var reg = "®";
+ var REG = "®";
+ var ReverseElement = "∋";
+ var ReverseEquilibrium = "⇋";
+ var ReverseUpEquilibrium = "⥯";
+ var rfisht = "⥽";
+ var rfloor = "⌋";
+ var rfr = "𝔯";
+ var Rfr = "ℜ";
+ var rHar = "⥤";
+ var rhard = "⇁";
+ var rharu = "⇀";
+ var rharul = "⥬";
+ var Rho = "Ρ";
+ var rho = "ρ";
+ var rhov = "ϱ";
+ var RightAngleBracket = "⟩";
+ var RightArrowBar = "⇥";
+ var rightarrow = "→";
+ var RightArrow = "→";
+ var Rightarrow = "⇒";
+ var RightArrowLeftArrow = "⇄";
+ var rightarrowtail = "↣";
+ var RightCeiling = "⌉";
+ var RightDoubleBracket = "⟧";
+ var RightDownTeeVector = "⥝";
+ var RightDownVectorBar = "⥕";
+ var RightDownVector = "⇂";
+ var RightFloor = "⌋";
+ var rightharpoondown = "⇁";
+ var rightharpoonup = "⇀";
+ var rightleftarrows = "⇄";
+ var rightleftharpoons = "⇌";
+ var rightrightarrows = "⇉";
+ var rightsquigarrow = "↝";
+ var RightTeeArrow = "↦";
+ var RightTee = "⊢";
+ var RightTeeVector = "⥛";
+ var rightthreetimes = "⋌";
+ var RightTriangleBar = "⧐";
+ var RightTriangle = "⊳";
+ var RightTriangleEqual = "⊵";
+ var RightUpDownVector = "⥏";
+ var RightUpTeeVector = "⥜";
+ var RightUpVectorBar = "⥔";
+ var RightUpVector = "↾";
+ var RightVectorBar = "⥓";
+ var RightVector = "⇀";
+ var ring = "˚";
+ var risingdotseq = "≓";
+ var rlarr = "⇄";
+ var rlhar = "⇌";
+ var rlm = "";
+ var rmoustache = "⎱";
+ var rmoust = "⎱";
+ var rnmid = "⫮";
+ var roang = "⟭";
+ var roarr = "⇾";
+ var robrk = "⟧";
+ var ropar = "⦆";
+ var ropf = "𝕣";
+ var Ropf = "ℝ";
+ var roplus = "⨮";
+ var rotimes = "⨵";
+ var RoundImplies = "⥰";
+ var rpar = ")";
+ var rpargt = "⦔";
+ var rppolint = "⨒";
+ var rrarr = "⇉";
+ var Rrightarrow = "⇛";
+ var rsaquo = "›";
+ var rscr = "𝓇";
+ var Rscr = "ℛ";
+ var rsh = "↱";
+ var Rsh = "↱";
+ var rsqb = "]";
+ var rsquo = "’";
+ var rsquor = "’";
+ var rthree = "⋌";
+ var rtimes = "⋊";
+ var rtri = "▹";
+ var rtrie = "⊵";
+ var rtrif = "▸";
+ var rtriltri = "⧎";
+ var RuleDelayed = "⧴";
+ var ruluhar = "⥨";
+ var rx = "℞";
+ var Sacute = "Ś";
+ var sacute = "ś";
+ var sbquo = "‚";
+ var scap = "⪸";
+ var Scaron = "Š";
+ var scaron = "š";
+ var Sc = "⪼";
+ var sc = "≻";
+ var sccue = "≽";
+ var sce = "⪰";
+ var scE = "⪴";
+ var Scedil = "Ş";
+ var scedil = "ş";
+ var Scirc = "Ŝ";
+ var scirc = "ŝ";
+ var scnap = "⪺";
+ var scnE = "⪶";
+ var scnsim = "⋩";
+ var scpolint = "⨓";
+ var scsim = "≿";
+ var Scy = "С";
+ var scy = "с";
+ var sdotb = "⊡";
+ var sdot = "⋅";
+ var sdote = "⩦";
+ var searhk = "⤥";
+ var searr = "↘";
+ var seArr = "⇘";
+ var searrow = "↘";
+ var sect = "§";
+ var semi = ";";
+ var seswar = "⤩";
+ var setminus = "∖";
+ var setmn = "∖";
+ var sext = "✶";
+ var Sfr = "𝔖";
+ var sfr = "𝔰";
+ var sfrown = "⌢";
+ var sharp = "♯";
+ var SHCHcy = "Щ";
+ var shchcy = "щ";
+ var SHcy = "Ш";
+ var shcy = "ш";
+ var ShortDownArrow = "↓";
+ var ShortLeftArrow = "←";
+ var shortmid = "∣";
+ var shortparallel = "∥";
+ var ShortRightArrow = "→";
+ var ShortUpArrow = "↑";
+ var shy = "";
+ var Sigma = "Σ";
+ var sigma = "σ";
+ var sigmaf = "ς";
+ var sigmav = "ς";
+ var sim = "∼";
+ var simdot = "⩪";
+ var sime = "≃";
+ var simeq = "≃";
+ var simg = "⪞";
+ var simgE = "⪠";
+ var siml = "⪝";
+ var simlE = "⪟";
+ var simne = "≆";
+ var simplus = "⨤";
+ var simrarr = "⥲";
+ var slarr = "←";
+ var SmallCircle = "∘";
+ var smallsetminus = "∖";
+ var smashp = "⨳";
+ var smeparsl = "⧤";
+ var smid = "∣";
+ var smile = "⌣";
+ var smt = "⪪";
+ var smte = "⪬";
+ var smtes = "⪬︀";
+ var SOFTcy = "Ь";
+ var softcy = "ь";
+ var solbar = "⌿";
+ var solb = "⧄";
+ var sol = "/";
+ var Sopf = "𝕊";
+ var sopf = "𝕤";
+ var spades = "♠";
+ var spadesuit = "♠";
+ var spar = "∥";
+ var sqcap = "⊓";
+ var sqcaps = "⊓︀";
+ var sqcup = "⊔";
+ var sqcups = "⊔︀";
+ var Sqrt = "√";
+ var sqsub = "⊏";
+ var sqsube = "⊑";
+ var sqsubset = "⊏";
+ var sqsubseteq = "⊑";
+ var sqsup = "⊐";
+ var sqsupe = "⊒";
+ var sqsupset = "⊐";
+ var sqsupseteq = "⊒";
+ var square = "□";
+ var Square = "□";
+ var SquareIntersection = "⊓";
+ var SquareSubset = "⊏";
+ var SquareSubsetEqual = "⊑";
+ var SquareSuperset = "⊐";
+ var SquareSupersetEqual = "⊒";
+ var SquareUnion = "⊔";
+ var squarf = "▪";
+ var squ = "□";
+ var squf = "▪";
+ var srarr = "→";
+ var Sscr = "𝒮";
+ var sscr = "𝓈";
+ var ssetmn = "∖";
+ var ssmile = "⌣";
+ var sstarf = "⋆";
+ var Star = "⋆";
+ var star = "☆";
+ var starf = "★";
+ var straightepsilon = "ϵ";
+ var straightphi = "ϕ";
+ var strns = "¯";
+ var sub = "⊂";
+ var Sub = "⋐";
+ var subdot = "⪽";
+ var subE = "⫅";
+ var sube = "⊆";
+ var subedot = "⫃";
+ var submult = "⫁";
+ var subnE = "⫋";
+ var subne = "⊊";
+ var subplus = "⪿";
+ var subrarr = "⥹";
+ var subset = "⊂";
+ var Subset = "⋐";
+ var subseteq = "⊆";
+ var subseteqq = "⫅";
+ var SubsetEqual = "⊆";
+ var subsetneq = "⊊";
+ var subsetneqq = "⫋";
+ var subsim = "⫇";
+ var subsub = "⫕";
+ var subsup = "⫓";
+ var succapprox = "⪸";
+ var succ = "≻";
+ var succcurlyeq = "≽";
+ var Succeeds = "≻";
+ var SucceedsEqual = "⪰";
+ var SucceedsSlantEqual = "≽";
+ var SucceedsTilde = "≿";
+ var succeq = "⪰";
+ var succnapprox = "⪺";
+ var succneqq = "⪶";
+ var succnsim = "⋩";
+ var succsim = "≿";
+ var SuchThat = "∋";
+ var sum = "∑";
+ var Sum = "∑";
+ var sung = "♪";
+ var sup1 = "¹";
+ var sup2 = "²";
+ var sup3 = "³";
+ var sup = "⊃";
+ var Sup = "⋑";
+ var supdot = "⪾";
+ var supdsub = "⫘";
+ var supE = "⫆";
+ var supe = "⊇";
+ var supedot = "⫄";
+ var Superset = "⊃";
+ var SupersetEqual = "⊇";
+ var suphsol = "⟉";
+ var suphsub = "⫗";
+ var suplarr = "⥻";
+ var supmult = "⫂";
+ var supnE = "⫌";
+ var supne = "⊋";
+ var supplus = "⫀";
+ var supset = "⊃";
+ var Supset = "⋑";
+ var supseteq = "⊇";
+ var supseteqq = "⫆";
+ var supsetneq = "⊋";
+ var supsetneqq = "⫌";
+ var supsim = "⫈";
+ var supsub = "⫔";
+ var supsup = "⫖";
+ var swarhk = "⤦";
+ var swarr = "↙";
+ var swArr = "⇙";
+ var swarrow = "↙";
+ var swnwar = "⤪";
+ var szlig = "ß";
+ var Tab = "\t";
+ var target = "⌖";
+ var Tau = "Τ";
+ var tau = "τ";
+ var tbrk = "⎴";
+ var Tcaron = "Ť";
+ var tcaron = "ť";
+ var Tcedil = "Ţ";
+ var tcedil = "ţ";
+ var Tcy = "Т";
+ var tcy = "т";
+ var tdot = "⃛";
+ var telrec = "⌕";
+ var Tfr = "𝔗";
+ var tfr = "𝔱";
+ var there4 = "∴";
+ var therefore = "∴";
+ var Therefore = "∴";
+ var Theta = "Θ";
+ var theta = "θ";
+ var thetasym = "ϑ";
+ var thetav = "ϑ";
+ var thickapprox = "≈";
+ var thicksim = "∼";
+ var ThickSpace = " ";
+ var ThinSpace = " ";
+ var thinsp = " ";
+ var thkap = "≈";
+ var thksim = "∼";
+ var THORN = "Þ";
+ var thorn = "þ";
+ var tilde = "˜";
+ var Tilde = "∼";
+ var TildeEqual = "≃";
+ var TildeFullEqual = "≅";
+ var TildeTilde = "≈";
+ var timesbar = "⨱";
+ var timesb = "⊠";
+ var times = "×";
+ var timesd = "⨰";
+ var tint = "∭";
+ var toea = "⤨";
+ var topbot = "⌶";
+ var topcir = "⫱";
+ var top = "⊤";
+ var Topf = "𝕋";
+ var topf = "𝕥";
+ var topfork = "⫚";
+ var tosa = "⤩";
+ var tprime = "‴";
+ var trade = "™";
+ var TRADE = "™";
+ var triangle = "▵";
+ var triangledown = "▿";
+ var triangleleft = "◃";
+ var trianglelefteq = "⊴";
+ var triangleq = "≜";
+ var triangleright = "▹";
+ var trianglerighteq = "⊵";
+ var tridot = "◬";
+ var trie = "≜";
+ var triminus = "⨺";
+ var TripleDot = "⃛";
+ var triplus = "⨹";
+ var trisb = "⧍";
+ var tritime = "⨻";
+ var trpezium = "⏢";
+ var Tscr = "𝒯";
+ var tscr = "𝓉";
+ var TScy = "Ц";
+ var tscy = "ц";
+ var TSHcy = "Ћ";
+ var tshcy = "ћ";
+ var Tstrok = "Ŧ";
+ var tstrok = "ŧ";
+ var twixt = "≬";
+ var twoheadleftarrow = "↞";
+ var twoheadrightarrow = "↠";
+ var Uacute = "Ú";
+ var uacute = "ú";
+ var uarr = "↑";
+ var Uarr = "↟";
+ var uArr = "⇑";
+ var Uarrocir = "⥉";
+ var Ubrcy = "Ў";
+ var ubrcy = "ў";
+ var Ubreve = "Ŭ";
+ var ubreve = "ŭ";
+ var Ucirc = "Û";
+ var ucirc = "û";
+ var Ucy = "У";
+ var ucy = "у";
+ var udarr = "⇅";
+ var Udblac = "Ű";
+ var udblac = "ű";
+ var udhar = "⥮";
+ var ufisht = "⥾";
+ var Ufr = "𝔘";
+ var ufr = "𝔲";
+ var Ugrave = "Ù";
+ var ugrave = "ù";
+ var uHar = "⥣";
+ var uharl = "↿";
+ var uharr = "↾";
+ var uhblk = "▀";
+ var ulcorn = "⌜";
+ var ulcorner = "⌜";
+ var ulcrop = "⌏";
+ var ultri = "◸";
+ var Umacr = "Ū";
+ var umacr = "ū";
+ var uml = "¨";
+ var UnderBar = "_";
+ var UnderBrace = "⏟";
+ var UnderBracket = "⎵";
+ var UnderParenthesis = "⏝";
+ var Union = "⋃";
+ var UnionPlus = "⊎";
+ var Uogon = "Ų";
+ var uogon = "ų";
+ var Uopf = "𝕌";
+ var uopf = "𝕦";
+ var UpArrowBar = "⤒";
+ var uparrow = "↑";
+ var UpArrow = "↑";
+ var Uparrow = "⇑";
+ var UpArrowDownArrow = "⇅";
+ var updownarrow = "↕";
+ var UpDownArrow = "↕";
+ var Updownarrow = "⇕";
+ var UpEquilibrium = "⥮";
+ var upharpoonleft = "↿";
+ var upharpoonright = "↾";
+ var uplus = "⊎";
+ var UpperLeftArrow = "↖";
+ var UpperRightArrow = "↗";
+ var upsi = "υ";
+ var Upsi = "ϒ";
+ var upsih = "ϒ";
+ var Upsilon = "Υ";
+ var upsilon = "υ";
+ var UpTeeArrow = "↥";
+ var UpTee = "⊥";
+ var upuparrows = "⇈";
+ var urcorn = "⌝";
+ var urcorner = "⌝";
+ var urcrop = "⌎";
+ var Uring = "Ů";
+ var uring = "ů";
+ var urtri = "◹";
+ var Uscr = "𝒰";
+ var uscr = "𝓊";
+ var utdot = "⋰";
+ var Utilde = "Ũ";
+ var utilde = "ũ";
+ var utri = "▵";
+ var utrif = "▴";
+ var uuarr = "⇈";
+ var Uuml = "Ü";
+ var uuml = "ü";
+ var uwangle = "⦧";
+ var vangrt = "⦜";
+ var varepsilon = "ϵ";
+ var varkappa = "ϰ";
+ var varnothing = "∅";
+ var varphi = "ϕ";
+ var varpi = "ϖ";
+ var varpropto = "∝";
+ var varr = "↕";
+ var vArr = "⇕";
+ var varrho = "ϱ";
+ var varsigma = "ς";
+ var varsubsetneq = "⊊︀";
+ var varsubsetneqq = "⫋︀";
+ var varsupsetneq = "⊋︀";
+ var varsupsetneqq = "⫌︀";
+ var vartheta = "ϑ";
+ var vartriangleleft = "⊲";
+ var vartriangleright = "⊳";
+ var vBar = "⫨";
+ var Vbar = "⫫";
+ var vBarv = "⫩";
+ var Vcy = "В";
+ var vcy = "в";
+ var vdash = "⊢";
+ var vDash = "⊨";
+ var Vdash = "⊩";
+ var VDash = "⊫";
+ var Vdashl = "⫦";
+ var veebar = "⊻";
+ var vee = "∨";
+ var Vee = "⋁";
+ var veeeq = "≚";
+ var vellip = "⋮";
+ var verbar = "|";
+ var Verbar = "‖";
+ var vert = "|";
+ var Vert = "‖";
+ var VerticalBar = "∣";
+ var VerticalLine = "|";
+ var VerticalSeparator = "❘";
+ var VerticalTilde = "≀";
+ var VeryThinSpace = " ";
+ var Vfr = "𝔙";
+ var vfr = "𝔳";
+ var vltri = "⊲";
+ var vnsub = "⊂⃒";
+ var vnsup = "⊃⃒";
+ var Vopf = "𝕍";
+ var vopf = "𝕧";
+ var vprop = "∝";
+ var vrtri = "⊳";
+ var Vscr = "𝒱";
+ var vscr = "𝓋";
+ var vsubnE = "⫋︀";
+ var vsubne = "⊊︀";
+ var vsupnE = "⫌︀";
+ var vsupne = "⊋︀";
+ var Vvdash = "⊪";
+ var vzigzag = "⦚";
+ var Wcirc = "Ŵ";
+ var wcirc = "ŵ";
+ var wedbar = "⩟";
+ var wedge = "∧";
+ var Wedge = "⋀";
+ var wedgeq = "≙";
+ var weierp = "℘";
+ var Wfr = "𝔚";
+ var wfr = "𝔴";
+ var Wopf = "𝕎";
+ var wopf = "𝕨";
+ var wp = "℘";
+ var wr = "≀";
+ var wreath = "≀";
+ var Wscr = "𝒲";
+ var wscr = "𝓌";
+ var xcap = "⋂";
+ var xcirc = "◯";
+ var xcup = "⋃";
+ var xdtri = "▽";
+ var Xfr = "𝔛";
+ var xfr = "𝔵";
+ var xharr = "⟷";
+ var xhArr = "⟺";
+ var Xi = "Ξ";
+ var xi = "ξ";
+ var xlarr = "⟵";
+ var xlArr = "⟸";
+ var xmap = "⟼";
+ var xnis = "⋻";
+ var xodot = "⨀";
+ var Xopf = "𝕏";
+ var xopf = "𝕩";
+ var xoplus = "⨁";
+ var xotime = "⨂";
+ var xrarr = "⟶";
+ var xrArr = "⟹";
+ var Xscr = "𝒳";
+ var xscr = "𝓍";
+ var xsqcup = "⨆";
+ var xuplus = "⨄";
+ var xutri = "△";
+ var xvee = "⋁";
+ var xwedge = "⋀";
+ var Yacute = "Ý";
+ var yacute = "ý";
+ var YAcy = "Я";
+ var yacy = "я";
+ var Ycirc = "Ŷ";
+ var ycirc = "ŷ";
+ var Ycy = "Ы";
+ var ycy = "ы";
+ var yen = "¥";
+ var Yfr = "𝔜";
+ var yfr = "𝔶";
+ var YIcy = "Ї";
+ var yicy = "ї";
+ var Yopf = "𝕐";
+ var yopf = "𝕪";
+ var Yscr = "𝒴";
+ var yscr = "𝓎";
+ var YUcy = "Ю";
+ var yucy = "ю";
+ var yuml = "ÿ";
+ var Yuml = "Ÿ";
+ var Zacute = "Ź";
+ var zacute = "ź";
+ var Zcaron = "Ž";
+ var zcaron = "ž";
+ var Zcy = "З";
+ var zcy = "з";
+ var Zdot = "Ż";
+ var zdot = "ż";
+ var zeetrf = "ℨ";
+ var ZeroWidthSpace = "";
+ var Zeta = "Ζ";
+ var zeta = "ζ";
+ var zfr = "𝔷";
+ var Zfr = "ℨ";
+ var ZHcy = "Ж";
+ var zhcy = "ж";
+ var zigrarr = "⇝";
+ var zopf = "𝕫";
+ var Zopf = "ℤ";
+ var Zscr = "𝒵";
+ var zscr = "𝓏";
+ var zwj = "";
+ var zwnj = "";
+ var entities = {
+ Aacute: Aacute,
+ aacute: aacute,
+ Abreve: Abreve,
+ abreve: abreve,
+ ac: ac,
+ acd: acd,
+ acE: acE,
+ Acirc: Acirc,
+ acirc: acirc,
+ acute: acute,
+ Acy: Acy,
+ acy: acy,
+ AElig: AElig,
+ aelig: aelig,
+ af: af,
+ Afr: Afr,
+ afr: afr,
+ Agrave: Agrave,
+ agrave: agrave,
+ alefsym: alefsym,
+ aleph: aleph,
+ Alpha: Alpha,
+ alpha: alpha,
+ Amacr: Amacr,
+ amacr: amacr,
+ amalg: amalg,
+ amp: amp,
+ AMP: AMP,
+ andand: andand,
+ And: And,
+ and: and,
+ andd: andd,
+ andslope: andslope,
+ andv: andv,
+ ang: ang,
+ ange: ange,
+ angle: angle,
+ angmsdaa: angmsdaa,
+ angmsdab: angmsdab,
+ angmsdac: angmsdac,
+ angmsdad: angmsdad,
+ angmsdae: angmsdae,
+ angmsdaf: angmsdaf,
+ angmsdag: angmsdag,
+ angmsdah: angmsdah,
+ angmsd: angmsd,
+ angrt: angrt,
+ angrtvb: angrtvb,
+ angrtvbd: angrtvbd,
+ angsph: angsph,
+ angst: angst,
+ angzarr: angzarr,
+ Aogon: Aogon,
+ aogon: aogon,
+ Aopf: Aopf,
+ aopf: aopf,
+ apacir: apacir,
+ ap: ap,
+ apE: apE,
+ ape: ape,
+ apid: apid,
+ apos: apos,
+ ApplyFunction: ApplyFunction,
+ approx: approx,
+ approxeq: approxeq,
+ Aring: Aring,
+ aring: aring,
+ Ascr: Ascr,
+ ascr: ascr,
+ Assign: Assign,
+ ast: ast,
+ asymp: asymp,
+ asympeq: asympeq,
+ Atilde: Atilde,
+ atilde: atilde,
+ Auml: Auml,
+ auml: auml,
+ awconint: awconint,
+ awint: awint,
+ backcong: backcong,
+ backepsilon: backepsilon,
+ backprime: backprime,
+ backsim: backsim,
+ backsimeq: backsimeq,
+ Backslash: Backslash,
+ Barv: Barv,
+ barvee: barvee,
+ barwed: barwed,
+ Barwed: Barwed,
+ barwedge: barwedge,
+ bbrk: bbrk,
+ bbrktbrk: bbrktbrk,
+ bcong: bcong,
+ Bcy: Bcy,
+ bcy: bcy,
+ bdquo: bdquo,
+ becaus: becaus,
+ because: because,
+ Because: Because,
+ bemptyv: bemptyv,
+ bepsi: bepsi,
+ bernou: bernou,
+ Bernoullis: Bernoullis,
+ Beta: Beta,
+ beta: beta,
+ beth: beth,
+ between: between,
+ Bfr: Bfr,
+ bfr: bfr,
+ bigcap: bigcap,
+ bigcirc: bigcirc,
+ bigcup: bigcup,
+ bigodot: bigodot,
+ bigoplus: bigoplus,
+ bigotimes: bigotimes,
+ bigsqcup: bigsqcup,
+ bigstar: bigstar,
+ bigtriangledown: bigtriangledown,
+ bigtriangleup: bigtriangleup,
+ biguplus: biguplus,
+ bigvee: bigvee,
+ bigwedge: bigwedge,
+ bkarow: bkarow,
+ blacklozenge: blacklozenge,
+ blacksquare: blacksquare,
+ blacktriangle: blacktriangle,
+ blacktriangledown: blacktriangledown,
+ blacktriangleleft: blacktriangleleft,
+ blacktriangleright: blacktriangleright,
+ blank: blank,
+ blk12: blk12,
+ blk14: blk14,
+ blk34: blk34,
+ block: block,
+ bne: bne,
+ bnequiv: bnequiv,
+ bNot: bNot,
+ bnot: bnot,
+ Bopf: Bopf,
+ bopf: bopf,
+ bot: bot,
+ bottom: bottom,
+ bowtie: bowtie,
+ boxbox: boxbox,
+ boxdl: boxdl,
+ boxdL: boxdL,
+ boxDl: boxDl,
+ boxDL: boxDL,
+ boxdr: boxdr,
+ boxdR: boxdR,
+ boxDr: boxDr,
+ boxDR: boxDR,
+ boxh: boxh,
+ boxH: boxH,
+ boxhd: boxhd,
+ boxHd: boxHd,
+ boxhD: boxhD,
+ boxHD: boxHD,
+ boxhu: boxhu,
+ boxHu: boxHu,
+ boxhU: boxhU,
+ boxHU: boxHU,
+ boxminus: boxminus,
+ boxplus: boxplus,
+ boxtimes: boxtimes,
+ boxul: boxul,
+ boxuL: boxuL,
+ boxUl: boxUl,
+ boxUL: boxUL,
+ boxur: boxur,
+ boxuR: boxuR,
+ boxUr: boxUr,
+ boxUR: boxUR,
+ boxv: boxv,
+ boxV: boxV,
+ boxvh: boxvh,
+ boxvH: boxvH,
+ boxVh: boxVh,
+ boxVH: boxVH,
+ boxvl: boxvl,
+ boxvL: boxvL,
+ boxVl: boxVl,
+ boxVL: boxVL,
+ boxvr: boxvr,
+ boxvR: boxvR,
+ boxVr: boxVr,
+ boxVR: boxVR,
+ bprime: bprime,
+ breve: breve,
+ Breve: Breve,
+ brvbar: brvbar,
+ bscr: bscr,
+ Bscr: Bscr,
+ bsemi: bsemi,
+ bsim: bsim,
+ bsime: bsime,
+ bsolb: bsolb,
+ bsol: bsol,
+ bsolhsub: bsolhsub,
+ bull: bull,
+ bullet: bullet,
+ bump: bump,
+ bumpE: bumpE,
+ bumpe: bumpe,
+ Bumpeq: Bumpeq,
+ bumpeq: bumpeq,
+ Cacute: Cacute,
+ cacute: cacute,
+ capand: capand,
+ capbrcup: capbrcup,
+ capcap: capcap,
+ cap: cap,
+ Cap: Cap,
+ capcup: capcup,
+ capdot: capdot,
+ CapitalDifferentialD: CapitalDifferentialD,
+ caps: caps,
+ caret: caret,
+ caron: caron,
+ Cayleys: Cayleys,
+ ccaps: ccaps,
+ Ccaron: Ccaron,
+ ccaron: ccaron,
+ Ccedil: Ccedil,
+ ccedil: ccedil,
+ Ccirc: Ccirc,
+ ccirc: ccirc,
+ Cconint: Cconint,
+ ccups: ccups,
+ ccupssm: ccupssm,
+ Cdot: Cdot,
+ cdot: cdot,
+ cedil: cedil,
+ Cedilla: Cedilla,
+ cemptyv: cemptyv,
+ cent: cent,
+ centerdot: centerdot,
+ CenterDot: CenterDot,
+ cfr: cfr,
+ Cfr: Cfr,
+ CHcy: CHcy,
+ chcy: chcy,
+ check: check,
+ checkmark: checkmark,
+ Chi: Chi,
+ chi: chi,
+ circ: circ,
+ circeq: circeq,
+ circlearrowleft: circlearrowleft,
+ circlearrowright: circlearrowright,
+ circledast: circledast,
+ circledcirc: circledcirc,
+ circleddash: circleddash,
+ CircleDot: CircleDot,
+ circledR: circledR,
+ circledS: circledS,
+ CircleMinus: CircleMinus,
+ CirclePlus: CirclePlus,
+ CircleTimes: CircleTimes,
+ cir: cir,
+ cirE: cirE,
+ cire: cire,
+ cirfnint: cirfnint,
+ cirmid: cirmid,
+ cirscir: cirscir,
+ ClockwiseContourIntegral: ClockwiseContourIntegral,
+ CloseCurlyDoubleQuote: CloseCurlyDoubleQuote,
+ CloseCurlyQuote: CloseCurlyQuote,
+ clubs: clubs,
+ clubsuit: clubsuit,
+ colon: colon,
+ Colon: Colon,
+ Colone: Colone,
+ colone: colone,
+ coloneq: coloneq,
+ comma: comma,
+ commat: commat,
+ comp: comp,
+ compfn: compfn,
+ complement: complement,
+ complexes: complexes,
+ cong: cong,
+ congdot: congdot,
+ Congruent: Congruent,
+ conint: conint,
+ Conint: Conint,
+ ContourIntegral: ContourIntegral,
+ copf: copf,
+ Copf: Copf,
+ coprod: coprod,
+ Coproduct: Coproduct,
+ copy: copy,
+ COPY: COPY,
+ copysr: copysr,
+ CounterClockwiseContourIntegral: CounterClockwiseContourIntegral,
+ crarr: crarr,
+ cross: cross,
+ Cross: Cross,
+ Cscr: Cscr,
+ cscr: cscr,
+ csub: csub,
+ csube: csube,
+ csup: csup,
+ csupe: csupe,
+ ctdot: ctdot,
+ cudarrl: cudarrl,
+ cudarrr: cudarrr,
+ cuepr: cuepr,
+ cuesc: cuesc,
+ cularr: cularr,
+ cularrp: cularrp,
+ cupbrcap: cupbrcap,
+ cupcap: cupcap,
+ CupCap: CupCap,
+ cup: cup,
+ Cup: Cup,
+ cupcup: cupcup,
+ cupdot: cupdot,
+ cupor: cupor,
+ cups: cups,
+ curarr: curarr,
+ curarrm: curarrm,
+ curlyeqprec: curlyeqprec,
+ curlyeqsucc: curlyeqsucc,
+ curlyvee: curlyvee,
+ curlywedge: curlywedge,
+ curren: curren,
+ curvearrowleft: curvearrowleft,
+ curvearrowright: curvearrowright,
+ cuvee: cuvee,
+ cuwed: cuwed,
+ cwconint: cwconint,
+ cwint: cwint,
+ cylcty: cylcty,
+ dagger: dagger,
+ Dagger: Dagger,
+ daleth: daleth,
+ darr: darr,
+ Darr: Darr,
+ dArr: dArr,
+ dash: dash,
+ Dashv: Dashv,
+ dashv: dashv,
+ dbkarow: dbkarow,
+ dblac: dblac,
+ Dcaron: Dcaron,
+ dcaron: dcaron,
+ Dcy: Dcy,
+ dcy: dcy,
+ ddagger: ddagger,
+ ddarr: ddarr,
+ DD: DD,
+ dd: dd,
+ DDotrahd: DDotrahd,
+ ddotseq: ddotseq,
+ deg: deg,
+ Del: Del,
+ Delta: Delta,
+ delta: delta,
+ demptyv: demptyv,
+ dfisht: dfisht,
+ Dfr: Dfr,
+ dfr: dfr,
+ dHar: dHar,
+ dharl: dharl,
+ dharr: dharr,
+ DiacriticalAcute: DiacriticalAcute,
+ DiacriticalDot: DiacriticalDot,
+ DiacriticalDoubleAcute: DiacriticalDoubleAcute,
+ DiacriticalGrave: DiacriticalGrave,
+ DiacriticalTilde: DiacriticalTilde,
+ diam: diam,
+ diamond: diamond,
+ Diamond: Diamond,
+ diamondsuit: diamondsuit,
+ diams: diams,
+ die: die,
+ DifferentialD: DifferentialD,
+ digamma: digamma,
+ disin: disin,
+ div: div,
+ divide: divide,
+ divideontimes: divideontimes,
+ divonx: divonx,
+ DJcy: DJcy,
+ djcy: djcy,
+ dlcorn: dlcorn,
+ dlcrop: dlcrop,
+ dollar: dollar,
+ Dopf: Dopf,
+ dopf: dopf,
+ Dot: Dot,
+ dot: dot,
+ DotDot: DotDot,
+ doteq: doteq,
+ doteqdot: doteqdot,
+ DotEqual: DotEqual,
+ dotminus: dotminus,
+ dotplus: dotplus,
+ dotsquare: dotsquare,
+ doublebarwedge: doublebarwedge,
+ DoubleContourIntegral: DoubleContourIntegral,
+ DoubleDot: DoubleDot,
+ DoubleDownArrow: DoubleDownArrow,
+ DoubleLeftArrow: DoubleLeftArrow,
+ DoubleLeftRightArrow: DoubleLeftRightArrow,
+ DoubleLeftTee: DoubleLeftTee,
+ DoubleLongLeftArrow: DoubleLongLeftArrow,
+ DoubleLongLeftRightArrow: DoubleLongLeftRightArrow,
+ DoubleLongRightArrow: DoubleLongRightArrow,
+ DoubleRightArrow: DoubleRightArrow,
+ DoubleRightTee: DoubleRightTee,
+ DoubleUpArrow: DoubleUpArrow,
+ DoubleUpDownArrow: DoubleUpDownArrow,
+ DoubleVerticalBar: DoubleVerticalBar,
+ DownArrowBar: DownArrowBar,
+ downarrow: downarrow,
+ DownArrow: DownArrow,
+ Downarrow: Downarrow,
+ DownArrowUpArrow: DownArrowUpArrow,
+ DownBreve: DownBreve,
+ downdownarrows: downdownarrows,
+ downharpoonleft: downharpoonleft,
+ downharpoonright: downharpoonright,
+ DownLeftRightVector: DownLeftRightVector,
+ DownLeftTeeVector: DownLeftTeeVector,
+ DownLeftVectorBar: DownLeftVectorBar,
+ DownLeftVector: DownLeftVector,
+ DownRightTeeVector: DownRightTeeVector,
+ DownRightVectorBar: DownRightVectorBar,
+ DownRightVector: DownRightVector,
+ DownTeeArrow: DownTeeArrow,
+ DownTee: DownTee,
+ drbkarow: drbkarow,
+ drcorn: drcorn,
+ drcrop: drcrop,
+ Dscr: Dscr,
+ dscr: dscr,
+ DScy: DScy,
+ dscy: dscy,
+ dsol: dsol,
+ Dstrok: Dstrok,
+ dstrok: dstrok,
+ dtdot: dtdot,
+ dtri: dtri,
+ dtrif: dtrif,
+ duarr: duarr,
+ duhar: duhar,
+ dwangle: dwangle,
+ DZcy: DZcy,
+ dzcy: dzcy,
+ dzigrarr: dzigrarr,
+ Eacute: Eacute,
+ eacute: eacute,
+ easter: easter,
+ Ecaron: Ecaron,
+ ecaron: ecaron,
+ Ecirc: Ecirc,
+ ecirc: ecirc,
+ ecir: ecir,
+ ecolon: ecolon,
+ Ecy: Ecy,
+ ecy: ecy,
+ eDDot: eDDot,
+ Edot: Edot,
+ edot: edot,
+ eDot: eDot,
+ ee: ee,
+ efDot: efDot,
+ Efr: Efr,
+ efr: efr,
+ eg: eg,
+ Egrave: Egrave,
+ egrave: egrave,
+ egs: egs,
+ egsdot: egsdot,
+ el: el,
+ Element: Element,
+ elinters: elinters,
+ ell: ell,
+ els: els,
+ elsdot: elsdot,
+ Emacr: Emacr,
+ emacr: emacr,
+ empty: empty,
+ emptyset: emptyset,
+ EmptySmallSquare: EmptySmallSquare,
+ emptyv: emptyv,
+ EmptyVerySmallSquare: EmptyVerySmallSquare,
+ emsp13: emsp13,
+ emsp14: emsp14,
+ emsp: emsp,
+ ENG: ENG,
+ eng: eng,
+ ensp: ensp,
+ Eogon: Eogon,
+ eogon: eogon,
+ Eopf: Eopf,
+ eopf: eopf,
+ epar: epar,
+ eparsl: eparsl,
+ eplus: eplus,
+ epsi: epsi,
+ Epsilon: Epsilon,
+ epsilon: epsilon,
+ epsiv: epsiv,
+ eqcirc: eqcirc,
+ eqcolon: eqcolon,
+ eqsim: eqsim,
+ eqslantgtr: eqslantgtr,
+ eqslantless: eqslantless,
+ Equal: Equal,
+ equals: equals,
+ EqualTilde: EqualTilde,
+ equest: equest,
+ Equilibrium: Equilibrium,
+ equiv: equiv,
+ equivDD: equivDD,
+ eqvparsl: eqvparsl,
+ erarr: erarr,
+ erDot: erDot,
+ escr: escr,
+ Escr: Escr,
+ esdot: esdot,
+ Esim: Esim,
+ esim: esim,
+ Eta: Eta,
+ eta: eta,
+ ETH: ETH,
+ eth: eth,
+ Euml: Euml,
+ euml: euml,
+ euro: euro,
+ excl: excl,
+ exist: exist,
+ Exists: Exists,
+ expectation: expectation,
+ exponentiale: exponentiale,
+ ExponentialE: ExponentialE,
+ fallingdotseq: fallingdotseq,
+ Fcy: Fcy,
+ fcy: fcy,
+ female: female,
+ ffilig: ffilig,
+ fflig: fflig,
+ ffllig: ffllig,
+ Ffr: Ffr,
+ ffr: ffr,
+ filig: filig,
+ FilledSmallSquare: FilledSmallSquare,
+ FilledVerySmallSquare: FilledVerySmallSquare,
+ fjlig: fjlig,
+ flat: flat,
+ fllig: fllig,
+ fltns: fltns,
+ fnof: fnof,
+ Fopf: Fopf,
+ fopf: fopf,
+ forall: forall,
+ ForAll: ForAll,
+ fork: fork,
+ forkv: forkv,
+ Fouriertrf: Fouriertrf,
+ fpartint: fpartint,
+ frac12: frac12,
+ frac13: frac13,
+ frac14: frac14,
+ frac15: frac15,
+ frac16: frac16,
+ frac18: frac18,
+ frac23: frac23,
+ frac25: frac25,
+ frac34: frac34,
+ frac35: frac35,
+ frac38: frac38,
+ frac45: frac45,
+ frac56: frac56,
+ frac58: frac58,
+ frac78: frac78,
+ frasl: frasl,
+ frown: frown,
+ fscr: fscr,
+ Fscr: Fscr,
+ gacute: gacute,
+ Gamma: Gamma,
+ gamma: gamma,
+ Gammad: Gammad,
+ gammad: gammad,
+ gap: gap,
+ Gbreve: Gbreve,
+ gbreve: gbreve,
+ Gcedil: Gcedil,
+ Gcirc: Gcirc,
+ gcirc: gcirc,
+ Gcy: Gcy,
+ gcy: gcy,
+ Gdot: Gdot,
+ gdot: gdot,
+ ge: ge,
+ gE: gE,
+ gEl: gEl,
+ gel: gel,
+ geq: geq,
+ geqq: geqq,
+ geqslant: geqslant,
+ gescc: gescc,
+ ges: ges,
+ gesdot: gesdot,
+ gesdoto: gesdoto,
+ gesdotol: gesdotol,
+ gesl: gesl,
+ gesles: gesles,
+ Gfr: Gfr,
+ gfr: gfr,
+ gg: gg,
+ Gg: Gg,
+ ggg: ggg,
+ gimel: gimel,
+ GJcy: GJcy,
+ gjcy: gjcy,
+ gla: gla,
+ gl: gl,
+ glE: glE,
+ glj: glj,
+ gnap: gnap,
+ gnapprox: gnapprox,
+ gne: gne,
+ gnE: gnE,
+ gneq: gneq,
+ gneqq: gneqq,
+ gnsim: gnsim,
+ Gopf: Gopf,
+ gopf: gopf,
+ grave: grave,
+ GreaterEqual: GreaterEqual,
+ GreaterEqualLess: GreaterEqualLess,
+ GreaterFullEqual: GreaterFullEqual,
+ GreaterGreater: GreaterGreater,
+ GreaterLess: GreaterLess,
+ GreaterSlantEqual: GreaterSlantEqual,
+ GreaterTilde: GreaterTilde,
+ Gscr: Gscr,
+ gscr: gscr,
+ gsim: gsim,
+ gsime: gsime,
+ gsiml: gsiml,
+ gtcc: gtcc,
+ gtcir: gtcir,
+ gt: gt,
+ GT: GT,
+ Gt: Gt,
+ gtdot: gtdot,
+ gtlPar: gtlPar,
+ gtquest: gtquest,
+ gtrapprox: gtrapprox,
+ gtrarr: gtrarr,
+ gtrdot: gtrdot,
+ gtreqless: gtreqless,
+ gtreqqless: gtreqqless,
+ gtrless: gtrless,
+ gtrsim: gtrsim,
+ gvertneqq: gvertneqq,
+ gvnE: gvnE,
+ Hacek: Hacek,
+ hairsp: hairsp,
+ half: half,
+ hamilt: hamilt,
+ HARDcy: HARDcy,
+ hardcy: hardcy,
+ harrcir: harrcir,
+ harr: harr,
+ hArr: hArr,
+ harrw: harrw,
+ Hat: Hat,
+ hbar: hbar,
+ Hcirc: Hcirc,
+ hcirc: hcirc,
+ hearts: hearts,
+ heartsuit: heartsuit,
+ hellip: hellip,
+ hercon: hercon,
+ hfr: hfr,
+ Hfr: Hfr,
+ HilbertSpace: HilbertSpace,
+ hksearow: hksearow,
+ hkswarow: hkswarow,
+ hoarr: hoarr,
+ homtht: homtht,
+ hookleftarrow: hookleftarrow,
+ hookrightarrow: hookrightarrow,
+ hopf: hopf,
+ Hopf: Hopf,
+ horbar: horbar,
+ HorizontalLine: HorizontalLine,
+ hscr: hscr,
+ Hscr: Hscr,
+ hslash: hslash,
+ Hstrok: Hstrok,
+ hstrok: hstrok,
+ HumpDownHump: HumpDownHump,
+ HumpEqual: HumpEqual,
+ hybull: hybull,
+ hyphen: hyphen,
+ Iacute: Iacute,
+ iacute: iacute,
+ ic: ic,
+ Icirc: Icirc,
+ icirc: icirc,
+ Icy: Icy,
+ icy: icy,
+ Idot: Idot,
+ IEcy: IEcy,
+ iecy: iecy,
+ iexcl: iexcl,
+ iff: iff,
+ ifr: ifr,
+ Ifr: Ifr,
+ Igrave: Igrave,
+ igrave: igrave,
+ ii: ii,
+ iiiint: iiiint,
+ iiint: iiint,
+ iinfin: iinfin,
+ iiota: iiota,
+ IJlig: IJlig,
+ ijlig: ijlig,
+ Imacr: Imacr,
+ imacr: imacr,
+ image: image,
+ ImaginaryI: ImaginaryI,
+ imagline: imagline,
+ imagpart: imagpart,
+ imath: imath,
+ Im: Im,
+ imof: imof,
+ imped: imped,
+ Implies: Implies,
+ incare: incare,
+ "in": "∈",
+ infin: infin,
+ infintie: infintie,
+ inodot: inodot,
+ intcal: intcal,
+ int: int,
+ Int: Int,
+ integers: integers,
+ Integral: Integral,
+ intercal: intercal,
+ Intersection: Intersection,
+ intlarhk: intlarhk,
+ intprod: intprod,
+ InvisibleComma: InvisibleComma,
+ InvisibleTimes: InvisibleTimes,
+ IOcy: IOcy,
+ iocy: iocy,
+ Iogon: Iogon,
+ iogon: iogon,
+ Iopf: Iopf,
+ iopf: iopf,
+ Iota: Iota,
+ iota: iota,
+ iprod: iprod,
+ iquest: iquest,
+ iscr: iscr,
+ Iscr: Iscr,
+ isin: isin,
+ isindot: isindot,
+ isinE: isinE,
+ isins: isins,
+ isinsv: isinsv,
+ isinv: isinv,
+ it: it,
+ Itilde: Itilde,
+ itilde: itilde,
+ Iukcy: Iukcy,
+ iukcy: iukcy,
+ Iuml: Iuml,
+ iuml: iuml,
+ Jcirc: Jcirc,
+ jcirc: jcirc,
+ Jcy: Jcy,
+ jcy: jcy,
+ Jfr: Jfr,
+ jfr: jfr,
+ jmath: jmath,
+ Jopf: Jopf,
+ jopf: jopf,
+ Jscr: Jscr,
+ jscr: jscr,
+ Jsercy: Jsercy,
+ jsercy: jsercy,
+ Jukcy: Jukcy,
+ jukcy: jukcy,
+ Kappa: Kappa,
+ kappa: kappa,
+ kappav: kappav,
+ Kcedil: Kcedil,
+ kcedil: kcedil,
+ Kcy: Kcy,
+ kcy: kcy,
+ Kfr: Kfr,
+ kfr: kfr,
+ kgreen: kgreen,
+ KHcy: KHcy,
+ khcy: khcy,
+ KJcy: KJcy,
+ kjcy: kjcy,
+ Kopf: Kopf,
+ kopf: kopf,
+ Kscr: Kscr,
+ kscr: kscr,
+ lAarr: lAarr,
+ Lacute: Lacute,
+ lacute: lacute,
+ laemptyv: laemptyv,
+ lagran: lagran,
+ Lambda: Lambda,
+ lambda: lambda,
+ lang: lang,
+ Lang: Lang,
+ langd: langd,
+ langle: langle,
+ lap: lap,
+ Laplacetrf: Laplacetrf,
+ laquo: laquo,
+ larrb: larrb,
+ larrbfs: larrbfs,
+ larr: larr,
+ Larr: Larr,
+ lArr: lArr,
+ larrfs: larrfs,
+ larrhk: larrhk,
+ larrlp: larrlp,
+ larrpl: larrpl,
+ larrsim: larrsim,
+ larrtl: larrtl,
+ latail: latail,
+ lAtail: lAtail,
+ lat: lat,
+ late: late,
+ lates: lates,
+ lbarr: lbarr,
+ lBarr: lBarr,
+ lbbrk: lbbrk,
+ lbrace: lbrace,
+ lbrack: lbrack,
+ lbrke: lbrke,
+ lbrksld: lbrksld,
+ lbrkslu: lbrkslu,
+ Lcaron: Lcaron,
+ lcaron: lcaron,
+ Lcedil: Lcedil,
+ lcedil: lcedil,
+ lceil: lceil,
+ lcub: lcub,
+ Lcy: Lcy,
+ lcy: lcy,
+ ldca: ldca,
+ ldquo: ldquo,
+ ldquor: ldquor,
+ ldrdhar: ldrdhar,
+ ldrushar: ldrushar,
+ ldsh: ldsh,
+ le: le,
+ lE: lE,
+ LeftAngleBracket: LeftAngleBracket,
+ LeftArrowBar: LeftArrowBar,
+ leftarrow: leftarrow,
+ LeftArrow: LeftArrow,
+ Leftarrow: Leftarrow,
+ LeftArrowRightArrow: LeftArrowRightArrow,
+ leftarrowtail: leftarrowtail,
+ LeftCeiling: LeftCeiling,
+ LeftDoubleBracket: LeftDoubleBracket,
+ LeftDownTeeVector: LeftDownTeeVector,
+ LeftDownVectorBar: LeftDownVectorBar,
+ LeftDownVector: LeftDownVector,
+ LeftFloor: LeftFloor,
+ leftharpoondown: leftharpoondown,
+ leftharpoonup: leftharpoonup,
+ leftleftarrows: leftleftarrows,
+ leftrightarrow: leftrightarrow,
+ LeftRightArrow: LeftRightArrow,
+ Leftrightarrow: Leftrightarrow,
+ leftrightarrows: leftrightarrows,
+ leftrightharpoons: leftrightharpoons,
+ leftrightsquigarrow: leftrightsquigarrow,
+ LeftRightVector: LeftRightVector,
+ LeftTeeArrow: LeftTeeArrow,
+ LeftTee: LeftTee,
+ LeftTeeVector: LeftTeeVector,
+ leftthreetimes: leftthreetimes,
+ LeftTriangleBar: LeftTriangleBar,
+ LeftTriangle: LeftTriangle,
+ LeftTriangleEqual: LeftTriangleEqual,
+ LeftUpDownVector: LeftUpDownVector,
+ LeftUpTeeVector: LeftUpTeeVector,
+ LeftUpVectorBar: LeftUpVectorBar,
+ LeftUpVector: LeftUpVector,
+ LeftVectorBar: LeftVectorBar,
+ LeftVector: LeftVector,
+ lEg: lEg,
+ leg: leg,
+ leq: leq,
+ leqq: leqq,
+ leqslant: leqslant,
+ lescc: lescc,
+ les: les,
+ lesdot: lesdot,
+ lesdoto: lesdoto,
+ lesdotor: lesdotor,
+ lesg: lesg,
+ lesges: lesges,
+ lessapprox: lessapprox,
+ lessdot: lessdot,
+ lesseqgtr: lesseqgtr,
+ lesseqqgtr: lesseqqgtr,
+ LessEqualGreater: LessEqualGreater,
+ LessFullEqual: LessFullEqual,
+ LessGreater: LessGreater,
+ lessgtr: lessgtr,
+ LessLess: LessLess,
+ lesssim: lesssim,
+ LessSlantEqual: LessSlantEqual,
+ LessTilde: LessTilde,
+ lfisht: lfisht,
+ lfloor: lfloor,
+ Lfr: Lfr,
+ lfr: lfr,
+ lg: lg,
+ lgE: lgE,
+ lHar: lHar,
+ lhard: lhard,
+ lharu: lharu,
+ lharul: lharul,
+ lhblk: lhblk,
+ LJcy: LJcy,
+ ljcy: ljcy,
+ llarr: llarr,
+ ll: ll,
+ Ll: Ll,
+ llcorner: llcorner,
+ Lleftarrow: Lleftarrow,
+ llhard: llhard,
+ lltri: lltri,
+ Lmidot: Lmidot,
+ lmidot: lmidot,
+ lmoustache: lmoustache,
+ lmoust: lmoust,
+ lnap: lnap,
+ lnapprox: lnapprox,
+ lne: lne,
+ lnE: lnE,
+ lneq: lneq,
+ lneqq: lneqq,
+ lnsim: lnsim,
+ loang: loang,
+ loarr: loarr,
+ lobrk: lobrk,
+ longleftarrow: longleftarrow,
+ LongLeftArrow: LongLeftArrow,
+ Longleftarrow: Longleftarrow,
+ longleftrightarrow: longleftrightarrow,
+ LongLeftRightArrow: LongLeftRightArrow,
+ Longleftrightarrow: Longleftrightarrow,
+ longmapsto: longmapsto,
+ longrightarrow: longrightarrow,
+ LongRightArrow: LongRightArrow,
+ Longrightarrow: Longrightarrow,
+ looparrowleft: looparrowleft,
+ looparrowright: looparrowright,
+ lopar: lopar,
+ Lopf: Lopf,
+ lopf: lopf,
+ loplus: loplus,
+ lotimes: lotimes,
+ lowast: lowast,
+ lowbar: lowbar,
+ LowerLeftArrow: LowerLeftArrow,
+ LowerRightArrow: LowerRightArrow,
+ loz: loz,
+ lozenge: lozenge,
+ lozf: lozf,
+ lpar: lpar,
+ lparlt: lparlt,
+ lrarr: lrarr,
+ lrcorner: lrcorner,
+ lrhar: lrhar,
+ lrhard: lrhard,
+ lrm: lrm,
+ lrtri: lrtri,
+ lsaquo: lsaquo,
+ lscr: lscr,
+ Lscr: Lscr,
+ lsh: lsh,
+ Lsh: Lsh,
+ lsim: lsim,
+ lsime: lsime,
+ lsimg: lsimg,
+ lsqb: lsqb,
+ lsquo: lsquo,
+ lsquor: lsquor,
+ Lstrok: Lstrok,
+ lstrok: lstrok,
+ ltcc: ltcc,
+ ltcir: ltcir,
+ lt: lt,
+ LT: LT,
+ Lt: Lt,
+ ltdot: ltdot,
+ lthree: lthree,
+ ltimes: ltimes,
+ ltlarr: ltlarr,
+ ltquest: ltquest,
+ ltri: ltri,
+ ltrie: ltrie,
+ ltrif: ltrif,
+ ltrPar: ltrPar,
+ lurdshar: lurdshar,
+ luruhar: luruhar,
+ lvertneqq: lvertneqq,
+ lvnE: lvnE,
+ macr: macr,
+ male: male,
+ malt: malt,
+ maltese: maltese,
+ "Map": "⤅",
+ map: map,
+ mapsto: mapsto,
+ mapstodown: mapstodown,
+ mapstoleft: mapstoleft,
+ mapstoup: mapstoup,
+ marker: marker,
+ mcomma: mcomma,
+ Mcy: Mcy,
+ mcy: mcy,
+ mdash: mdash,
+ mDDot: mDDot,
+ measuredangle: measuredangle,
+ MediumSpace: MediumSpace,
+ Mellintrf: Mellintrf,
+ Mfr: Mfr,
+ mfr: mfr,
+ mho: mho,
+ micro: micro,
+ midast: midast,
+ midcir: midcir,
+ mid: mid,
+ middot: middot,
+ minusb: minusb,
+ minus: minus,
+ minusd: minusd,
+ minusdu: minusdu,
+ MinusPlus: MinusPlus,
+ mlcp: mlcp,
+ mldr: mldr,
+ mnplus: mnplus,
+ models: models,
+ Mopf: Mopf,
+ mopf: mopf,
+ mp: mp,
+ mscr: mscr,
+ Mscr: Mscr,
+ mstpos: mstpos,
+ Mu: Mu,
+ mu: mu,
+ multimap: multimap,
+ mumap: mumap,
+ nabla: nabla,
+ Nacute: Nacute,
+ nacute: nacute,
+ nang: nang,
+ nap: nap,
+ napE: napE,
+ napid: napid,
+ napos: napos,
+ napprox: napprox,
+ natural: natural,
+ naturals: naturals,
+ natur: natur,
+ nbsp: nbsp,
+ nbump: nbump,
+ nbumpe: nbumpe,
+ ncap: ncap,
+ Ncaron: Ncaron,
+ ncaron: ncaron,
+ Ncedil: Ncedil,
+ ncedil: ncedil,
+ ncong: ncong,
+ ncongdot: ncongdot,
+ ncup: ncup,
+ Ncy: Ncy,
+ ncy: ncy,
+ ndash: ndash,
+ nearhk: nearhk,
+ nearr: nearr,
+ neArr: neArr,
+ nearrow: nearrow,
+ ne: ne,
+ nedot: nedot,
+ NegativeMediumSpace: NegativeMediumSpace,
+ NegativeThickSpace: NegativeThickSpace,
+ NegativeThinSpace: NegativeThinSpace,
+ NegativeVeryThinSpace: NegativeVeryThinSpace,
+ nequiv: nequiv,
+ nesear: nesear,
+ nesim: nesim,
+ NestedGreaterGreater: NestedGreaterGreater,
+ NestedLessLess: NestedLessLess,
+ NewLine: NewLine,
+ nexist: nexist,
+ nexists: nexists,
+ Nfr: Nfr,
+ nfr: nfr,
+ ngE: ngE,
+ nge: nge,
+ ngeq: ngeq,
+ ngeqq: ngeqq,
+ ngeqslant: ngeqslant,
+ nges: nges,
+ nGg: nGg,
+ ngsim: ngsim,
+ nGt: nGt,
+ ngt: ngt,
+ ngtr: ngtr,
+ nGtv: nGtv,
+ nharr: nharr,
+ nhArr: nhArr,
+ nhpar: nhpar,
+ ni: ni,
+ nis: nis,
+ nisd: nisd,
+ niv: niv,
+ NJcy: NJcy,
+ njcy: njcy,
+ nlarr: nlarr,
+ nlArr: nlArr,
+ nldr: nldr,
+ nlE: nlE,
+ nle: nle,
+ nleftarrow: nleftarrow,
+ nLeftarrow: nLeftarrow,
+ nleftrightarrow: nleftrightarrow,
+ nLeftrightarrow: nLeftrightarrow,
+ nleq: nleq,
+ nleqq: nleqq,
+ nleqslant: nleqslant,
+ nles: nles,
+ nless: nless,
+ nLl: nLl,
+ nlsim: nlsim,
+ nLt: nLt,
+ nlt: nlt,
+ nltri: nltri,
+ nltrie: nltrie,
+ nLtv: nLtv,
+ nmid: nmid,
+ NoBreak: NoBreak,
+ NonBreakingSpace: NonBreakingSpace,
+ nopf: nopf,
+ Nopf: Nopf,
+ Not: Not,
+ not: not,
+ NotCongruent: NotCongruent,
+ NotCupCap: NotCupCap,
+ NotDoubleVerticalBar: NotDoubleVerticalBar,
+ NotElement: NotElement,
+ NotEqual: NotEqual,
+ NotEqualTilde: NotEqualTilde,
+ NotExists: NotExists,
+ NotGreater: NotGreater,
+ NotGreaterEqual: NotGreaterEqual,
+ NotGreaterFullEqual: NotGreaterFullEqual,
+ NotGreaterGreater: NotGreaterGreater,
+ NotGreaterLess: NotGreaterLess,
+ NotGreaterSlantEqual: NotGreaterSlantEqual,
+ NotGreaterTilde: NotGreaterTilde,
+ NotHumpDownHump: NotHumpDownHump,
+ NotHumpEqual: NotHumpEqual,
+ notin: notin,
+ notindot: notindot,
+ notinE: notinE,
+ notinva: notinva,
+ notinvb: notinvb,
+ notinvc: notinvc,
+ NotLeftTriangleBar: NotLeftTriangleBar,
+ NotLeftTriangle: NotLeftTriangle,
+ NotLeftTriangleEqual: NotLeftTriangleEqual,
+ NotLess: NotLess,
+ NotLessEqual: NotLessEqual,
+ NotLessGreater: NotLessGreater,
+ NotLessLess: NotLessLess,
+ NotLessSlantEqual: NotLessSlantEqual,
+ NotLessTilde: NotLessTilde,
+ NotNestedGreaterGreater: NotNestedGreaterGreater,
+ NotNestedLessLess: NotNestedLessLess,
+ notni: notni,
+ notniva: notniva,
+ notnivb: notnivb,
+ notnivc: notnivc,
+ NotPrecedes: NotPrecedes,
+ NotPrecedesEqual: NotPrecedesEqual,
+ NotPrecedesSlantEqual: NotPrecedesSlantEqual,
+ NotReverseElement: NotReverseElement,
+ NotRightTriangleBar: NotRightTriangleBar,
+ NotRightTriangle: NotRightTriangle,
+ NotRightTriangleEqual: NotRightTriangleEqual,
+ NotSquareSubset: NotSquareSubset,
+ NotSquareSubsetEqual: NotSquareSubsetEqual,
+ NotSquareSuperset: NotSquareSuperset,
+ NotSquareSupersetEqual: NotSquareSupersetEqual,
+ NotSubset: NotSubset,
+ NotSubsetEqual: NotSubsetEqual,
+ NotSucceeds: NotSucceeds,
+ NotSucceedsEqual: NotSucceedsEqual,
+ NotSucceedsSlantEqual: NotSucceedsSlantEqual,
+ NotSucceedsTilde: NotSucceedsTilde,
+ NotSuperset: NotSuperset,
+ NotSupersetEqual: NotSupersetEqual,
+ NotTilde: NotTilde,
+ NotTildeEqual: NotTildeEqual,
+ NotTildeFullEqual: NotTildeFullEqual,
+ NotTildeTilde: NotTildeTilde,
+ NotVerticalBar: NotVerticalBar,
+ nparallel: nparallel,
+ npar: npar,
+ nparsl: nparsl,
+ npart: npart,
+ npolint: npolint,
+ npr: npr,
+ nprcue: nprcue,
+ nprec: nprec,
+ npreceq: npreceq,
+ npre: npre,
+ nrarrc: nrarrc,
+ nrarr: nrarr,
+ nrArr: nrArr,
+ nrarrw: nrarrw,
+ nrightarrow: nrightarrow,
+ nRightarrow: nRightarrow,
+ nrtri: nrtri,
+ nrtrie: nrtrie,
+ nsc: nsc,
+ nsccue: nsccue,
+ nsce: nsce,
+ Nscr: Nscr,
+ nscr: nscr,
+ nshortmid: nshortmid,
+ nshortparallel: nshortparallel,
+ nsim: nsim,
+ nsime: nsime,
+ nsimeq: nsimeq,
+ nsmid: nsmid,
+ nspar: nspar,
+ nsqsube: nsqsube,
+ nsqsupe: nsqsupe,
+ nsub: nsub,
+ nsubE: nsubE,
+ nsube: nsube,
+ nsubset: nsubset,
+ nsubseteq: nsubseteq,
+ nsubseteqq: nsubseteqq,
+ nsucc: nsucc,
+ nsucceq: nsucceq,
+ nsup: nsup,
+ nsupE: nsupE,
+ nsupe: nsupe,
+ nsupset: nsupset,
+ nsupseteq: nsupseteq,
+ nsupseteqq: nsupseteqq,
+ ntgl: ntgl,
+ Ntilde: Ntilde,
+ ntilde: ntilde,
+ ntlg: ntlg,
+ ntriangleleft: ntriangleleft,
+ ntrianglelefteq: ntrianglelefteq,
+ ntriangleright: ntriangleright,
+ ntrianglerighteq: ntrianglerighteq,
+ Nu: Nu,
+ nu: nu,
+ num: num,
+ numero: numero,
+ numsp: numsp,
+ nvap: nvap,
+ nvdash: nvdash,
+ nvDash: nvDash,
+ nVdash: nVdash,
+ nVDash: nVDash,
+ nvge: nvge,
+ nvgt: nvgt,
+ nvHarr: nvHarr,
+ nvinfin: nvinfin,
+ nvlArr: nvlArr,
+ nvle: nvle,
+ nvlt: nvlt,
+ nvltrie: nvltrie,
+ nvrArr: nvrArr,
+ nvrtrie: nvrtrie,
+ nvsim: nvsim,
+ nwarhk: nwarhk,
+ nwarr: nwarr,
+ nwArr: nwArr,
+ nwarrow: nwarrow,
+ nwnear: nwnear,
+ Oacute: Oacute,
+ oacute: oacute,
+ oast: oast,
+ Ocirc: Ocirc,
+ ocirc: ocirc,
+ ocir: ocir,
+ Ocy: Ocy,
+ ocy: ocy,
+ odash: odash,
+ Odblac: Odblac,
+ odblac: odblac,
+ odiv: odiv,
+ odot: odot,
+ odsold: odsold,
+ OElig: OElig,
+ oelig: oelig,
+ ofcir: ofcir,
+ Ofr: Ofr,
+ ofr: ofr,
+ ogon: ogon,
+ Ograve: Ograve,
+ ograve: ograve,
+ ogt: ogt,
+ ohbar: ohbar,
+ ohm: ohm,
+ oint: oint,
+ olarr: olarr,
+ olcir: olcir,
+ olcross: olcross,
+ oline: oline,
+ olt: olt,
+ Omacr: Omacr,
+ omacr: omacr,
+ Omega: Omega,
+ omega: omega,
+ Omicron: Omicron,
+ omicron: omicron,
+ omid: omid,
+ ominus: ominus,
+ Oopf: Oopf,
+ oopf: oopf,
+ opar: opar,
+ OpenCurlyDoubleQuote: OpenCurlyDoubleQuote,
+ OpenCurlyQuote: OpenCurlyQuote,
+ operp: operp,
+ oplus: oplus,
+ orarr: orarr,
+ Or: Or,
+ or: or,
+ ord: ord,
+ order: order,
+ orderof: orderof,
+ ordf: ordf,
+ ordm: ordm,
+ origof: origof,
+ oror: oror,
+ orslope: orslope,
+ orv: orv,
+ oS: oS,
+ Oscr: Oscr,
+ oscr: oscr,
+ Oslash: Oslash,
+ oslash: oslash,
+ osol: osol,
+ Otilde: Otilde,
+ otilde: otilde,
+ otimesas: otimesas,
+ Otimes: Otimes,
+ otimes: otimes,
+ Ouml: Ouml,
+ ouml: ouml,
+ ovbar: ovbar,
+ OverBar: OverBar,
+ OverBrace: OverBrace,
+ OverBracket: OverBracket,
+ OverParenthesis: OverParenthesis,
+ para: para,
+ parallel: parallel,
+ par: par,
+ parsim: parsim,
+ parsl: parsl,
+ part: part,
+ PartialD: PartialD,
+ Pcy: Pcy,
+ pcy: pcy,
+ percnt: percnt,
+ period: period,
+ permil: permil,
+ perp: perp,
+ pertenk: pertenk,
+ Pfr: Pfr,
+ pfr: pfr,
+ Phi: Phi,
+ phi: phi,
+ phiv: phiv,
+ phmmat: phmmat,
+ phone: phone,
+ Pi: Pi,
+ pi: pi,
+ pitchfork: pitchfork,
+ piv: piv,
+ planck: planck,
+ planckh: planckh,
+ plankv: plankv,
+ plusacir: plusacir,
+ plusb: plusb,
+ pluscir: pluscir,
+ plus: plus,
+ plusdo: plusdo,
+ plusdu: plusdu,
+ pluse: pluse,
+ PlusMinus: PlusMinus,
+ plusmn: plusmn,
+ plussim: plussim,
+ plustwo: plustwo,
+ pm: pm,
+ Poincareplane: Poincareplane,
+ pointint: pointint,
+ popf: popf,
+ Popf: Popf,
+ pound: pound,
+ prap: prap,
+ Pr: Pr,
+ pr: pr,
+ prcue: prcue,
+ precapprox: precapprox,
+ prec: prec,
+ preccurlyeq: preccurlyeq,
+ Precedes: Precedes,
+ PrecedesEqual: PrecedesEqual,
+ PrecedesSlantEqual: PrecedesSlantEqual,
+ PrecedesTilde: PrecedesTilde,
+ preceq: preceq,
+ precnapprox: precnapprox,
+ precneqq: precneqq,
+ precnsim: precnsim,
+ pre: pre,
+ prE: prE,
+ precsim: precsim,
+ prime: prime,
+ Prime: Prime,
+ primes: primes,
+ prnap: prnap,
+ prnE: prnE,
+ prnsim: prnsim,
+ prod: prod,
+ Product: Product,
+ profalar: profalar,
+ profline: profline,
+ profsurf: profsurf,
+ prop: prop,
+ Proportional: Proportional,
+ Proportion: Proportion,
+ propto: propto,
+ prsim: prsim,
+ prurel: prurel,
+ Pscr: Pscr,
+ pscr: pscr,
+ Psi: Psi,
+ psi: psi,
+ puncsp: puncsp,
+ Qfr: Qfr,
+ qfr: qfr,
+ qint: qint,
+ qopf: qopf,
+ Qopf: Qopf,
+ qprime: qprime,
+ Qscr: Qscr,
+ qscr: qscr,
+ quaternions: quaternions,
+ quatint: quatint,
+ quest: quest,
+ questeq: questeq,
+ quot: quot,
+ QUOT: QUOT,
+ rAarr: rAarr,
+ race: race,
+ Racute: Racute,
+ racute: racute,
+ radic: radic,
+ raemptyv: raemptyv,
+ rang: rang,
+ Rang: Rang,
+ rangd: rangd,
+ range: range,
+ rangle: rangle,
+ raquo: raquo,
+ rarrap: rarrap,
+ rarrb: rarrb,
+ rarrbfs: rarrbfs,
+ rarrc: rarrc,
+ rarr: rarr,
+ Rarr: Rarr,
+ rArr: rArr,
+ rarrfs: rarrfs,
+ rarrhk: rarrhk,
+ rarrlp: rarrlp,
+ rarrpl: rarrpl,
+ rarrsim: rarrsim,
+ Rarrtl: Rarrtl,
+ rarrtl: rarrtl,
+ rarrw: rarrw,
+ ratail: ratail,
+ rAtail: rAtail,
+ ratio: ratio,
+ rationals: rationals,
+ rbarr: rbarr,
+ rBarr: rBarr,
+ RBarr: RBarr,
+ rbbrk: rbbrk,
+ rbrace: rbrace,
+ rbrack: rbrack,
+ rbrke: rbrke,
+ rbrksld: rbrksld,
+ rbrkslu: rbrkslu,
+ Rcaron: Rcaron,
+ rcaron: rcaron,
+ Rcedil: Rcedil,
+ rcedil: rcedil,
+ rceil: rceil,
+ rcub: rcub,
+ Rcy: Rcy,
+ rcy: rcy,
+ rdca: rdca,
+ rdldhar: rdldhar,
+ rdquo: rdquo,
+ rdquor: rdquor,
+ rdsh: rdsh,
+ real: real,
+ realine: realine,
+ realpart: realpart,
+ reals: reals,
+ Re: Re,
+ rect: rect,
+ reg: reg,
+ REG: REG,
+ ReverseElement: ReverseElement,
+ ReverseEquilibrium: ReverseEquilibrium,
+ ReverseUpEquilibrium: ReverseUpEquilibrium,
+ rfisht: rfisht,
+ rfloor: rfloor,
+ rfr: rfr,
+ Rfr: Rfr,
+ rHar: rHar,
+ rhard: rhard,
+ rharu: rharu,
+ rharul: rharul,
+ Rho: Rho,
+ rho: rho,
+ rhov: rhov,
+ RightAngleBracket: RightAngleBracket,
+ RightArrowBar: RightArrowBar,
+ rightarrow: rightarrow,
+ RightArrow: RightArrow,
+ Rightarrow: Rightarrow,
+ RightArrowLeftArrow: RightArrowLeftArrow,
+ rightarrowtail: rightarrowtail,
+ RightCeiling: RightCeiling,
+ RightDoubleBracket: RightDoubleBracket,
+ RightDownTeeVector: RightDownTeeVector,
+ RightDownVectorBar: RightDownVectorBar,
+ RightDownVector: RightDownVector,
+ RightFloor: RightFloor,
+ rightharpoondown: rightharpoondown,
+ rightharpoonup: rightharpoonup,
+ rightleftarrows: rightleftarrows,
+ rightleftharpoons: rightleftharpoons,
+ rightrightarrows: rightrightarrows,
+ rightsquigarrow: rightsquigarrow,
+ RightTeeArrow: RightTeeArrow,
+ RightTee: RightTee,
+ RightTeeVector: RightTeeVector,
+ rightthreetimes: rightthreetimes,
+ RightTriangleBar: RightTriangleBar,
+ RightTriangle: RightTriangle,
+ RightTriangleEqual: RightTriangleEqual,
+ RightUpDownVector: RightUpDownVector,
+ RightUpTeeVector: RightUpTeeVector,
+ RightUpVectorBar: RightUpVectorBar,
+ RightUpVector: RightUpVector,
+ RightVectorBar: RightVectorBar,
+ RightVector: RightVector,
+ ring: ring,
+ risingdotseq: risingdotseq,
+ rlarr: rlarr,
+ rlhar: rlhar,
+ rlm: rlm,
+ rmoustache: rmoustache,
+ rmoust: rmoust,
+ rnmid: rnmid,
+ roang: roang,
+ roarr: roarr,
+ robrk: robrk,
+ ropar: ropar,
+ ropf: ropf,
+ Ropf: Ropf,
+ roplus: roplus,
+ rotimes: rotimes,
+ RoundImplies: RoundImplies,
+ rpar: rpar,
+ rpargt: rpargt,
+ rppolint: rppolint,
+ rrarr: rrarr,
+ Rrightarrow: Rrightarrow,
+ rsaquo: rsaquo,
+ rscr: rscr,
+ Rscr: Rscr,
+ rsh: rsh,
+ Rsh: Rsh,
+ rsqb: rsqb,
+ rsquo: rsquo,
+ rsquor: rsquor,
+ rthree: rthree,
+ rtimes: rtimes,
+ rtri: rtri,
+ rtrie: rtrie,
+ rtrif: rtrif,
+ rtriltri: rtriltri,
+ RuleDelayed: RuleDelayed,
+ ruluhar: ruluhar,
+ rx: rx,
+ Sacute: Sacute,
+ sacute: sacute,
+ sbquo: sbquo,
+ scap: scap,
+ Scaron: Scaron,
+ scaron: scaron,
+ Sc: Sc,
+ sc: sc,
+ sccue: sccue,
+ sce: sce,
+ scE: scE,
+ Scedil: Scedil,
+ scedil: scedil,
+ Scirc: Scirc,
+ scirc: scirc,
+ scnap: scnap,
+ scnE: scnE,
+ scnsim: scnsim,
+ scpolint: scpolint,
+ scsim: scsim,
+ Scy: Scy,
+ scy: scy,
+ sdotb: sdotb,
+ sdot: sdot,
+ sdote: sdote,
+ searhk: searhk,
+ searr: searr,
+ seArr: seArr,
+ searrow: searrow,
+ sect: sect,
+ semi: semi,
+ seswar: seswar,
+ setminus: setminus,
+ setmn: setmn,
+ sext: sext,
+ Sfr: Sfr,
+ sfr: sfr,
+ sfrown: sfrown,
+ sharp: sharp,
+ SHCHcy: SHCHcy,
+ shchcy: shchcy,
+ SHcy: SHcy,
+ shcy: shcy,
+ ShortDownArrow: ShortDownArrow,
+ ShortLeftArrow: ShortLeftArrow,
+ shortmid: shortmid,
+ shortparallel: shortparallel,
+ ShortRightArrow: ShortRightArrow,
+ ShortUpArrow: ShortUpArrow,
+ shy: shy,
+ Sigma: Sigma,
+ sigma: sigma,
+ sigmaf: sigmaf,
+ sigmav: sigmav,
+ sim: sim,
+ simdot: simdot,
+ sime: sime,
+ simeq: simeq,
+ simg: simg,
+ simgE: simgE,
+ siml: siml,
+ simlE: simlE,
+ simne: simne,
+ simplus: simplus,
+ simrarr: simrarr,
+ slarr: slarr,
+ SmallCircle: SmallCircle,
+ smallsetminus: smallsetminus,
+ smashp: smashp,
+ smeparsl: smeparsl,
+ smid: smid,
+ smile: smile,
+ smt: smt,
+ smte: smte,
+ smtes: smtes,
+ SOFTcy: SOFTcy,
+ softcy: softcy,
+ solbar: solbar,
+ solb: solb,
+ sol: sol,
+ Sopf: Sopf,
+ sopf: sopf,
+ spades: spades,
+ spadesuit: spadesuit,
+ spar: spar,
+ sqcap: sqcap,
+ sqcaps: sqcaps,
+ sqcup: sqcup,
+ sqcups: sqcups,
+ Sqrt: Sqrt,
+ sqsub: sqsub,
+ sqsube: sqsube,
+ sqsubset: sqsubset,
+ sqsubseteq: sqsubseteq,
+ sqsup: sqsup,
+ sqsupe: sqsupe,
+ sqsupset: sqsupset,
+ sqsupseteq: sqsupseteq,
+ square: square,
+ Square: Square,
+ SquareIntersection: SquareIntersection,
+ SquareSubset: SquareSubset,
+ SquareSubsetEqual: SquareSubsetEqual,
+ SquareSuperset: SquareSuperset,
+ SquareSupersetEqual: SquareSupersetEqual,
+ SquareUnion: SquareUnion,
+ squarf: squarf,
+ squ: squ,
+ squf: squf,
+ srarr: srarr,
+ Sscr: Sscr,
+ sscr: sscr,
+ ssetmn: ssetmn,
+ ssmile: ssmile,
+ sstarf: sstarf,
+ Star: Star,
+ star: star,
+ starf: starf,
+ straightepsilon: straightepsilon,
+ straightphi: straightphi,
+ strns: strns,
+ sub: sub,
+ Sub: Sub,
+ subdot: subdot,
+ subE: subE,
+ sube: sube,
+ subedot: subedot,
+ submult: submult,
+ subnE: subnE,
+ subne: subne,
+ subplus: subplus,
+ subrarr: subrarr,
+ subset: subset,
+ Subset: Subset,
+ subseteq: subseteq,
+ subseteqq: subseteqq,
+ SubsetEqual: SubsetEqual,
+ subsetneq: subsetneq,
+ subsetneqq: subsetneqq,
+ subsim: subsim,
+ subsub: subsub,
+ subsup: subsup,
+ succapprox: succapprox,
+ succ: succ,
+ succcurlyeq: succcurlyeq,
+ Succeeds: Succeeds,
+ SucceedsEqual: SucceedsEqual,
+ SucceedsSlantEqual: SucceedsSlantEqual,
+ SucceedsTilde: SucceedsTilde,
+ succeq: succeq,
+ succnapprox: succnapprox,
+ succneqq: succneqq,
+ succnsim: succnsim,
+ succsim: succsim,
+ SuchThat: SuchThat,
+ sum: sum,
+ Sum: Sum,
+ sung: sung,
+ sup1: sup1,
+ sup2: sup2,
+ sup3: sup3,
+ sup: sup,
+ Sup: Sup,
+ supdot: supdot,
+ supdsub: supdsub,
+ supE: supE,
+ supe: supe,
+ supedot: supedot,
+ Superset: Superset,
+ SupersetEqual: SupersetEqual,
+ suphsol: suphsol,
+ suphsub: suphsub,
+ suplarr: suplarr,
+ supmult: supmult,
+ supnE: supnE,
+ supne: supne,
+ supplus: supplus,
+ supset: supset,
+ Supset: Supset,
+ supseteq: supseteq,
+ supseteqq: supseteqq,
+ supsetneq: supsetneq,
+ supsetneqq: supsetneqq,
+ supsim: supsim,
+ supsub: supsub,
+ supsup: supsup,
+ swarhk: swarhk,
+ swarr: swarr,
+ swArr: swArr,
+ swarrow: swarrow,
+ swnwar: swnwar,
+ szlig: szlig,
+ Tab: Tab,
+ target: target,
+ Tau: Tau,
+ tau: tau,
+ tbrk: tbrk,
+ Tcaron: Tcaron,
+ tcaron: tcaron,
+ Tcedil: Tcedil,
+ tcedil: tcedil,
+ Tcy: Tcy,
+ tcy: tcy,
+ tdot: tdot,
+ telrec: telrec,
+ Tfr: Tfr,
+ tfr: tfr,
+ there4: there4,
+ therefore: therefore,
+ Therefore: Therefore,
+ Theta: Theta,
+ theta: theta,
+ thetasym: thetasym,
+ thetav: thetav,
+ thickapprox: thickapprox,
+ thicksim: thicksim,
+ ThickSpace: ThickSpace,
+ ThinSpace: ThinSpace,
+ thinsp: thinsp,
+ thkap: thkap,
+ thksim: thksim,
+ THORN: THORN,
+ thorn: thorn,
+ tilde: tilde,
+ Tilde: Tilde,
+ TildeEqual: TildeEqual,
+ TildeFullEqual: TildeFullEqual,
+ TildeTilde: TildeTilde,
+ timesbar: timesbar,
+ timesb: timesb,
+ times: times,
+ timesd: timesd,
+ tint: tint,
+ toea: toea,
+ topbot: topbot,
+ topcir: topcir,
+ top: top,
+ Topf: Topf,
+ topf: topf,
+ topfork: topfork,
+ tosa: tosa,
+ tprime: tprime,
+ trade: trade,
+ TRADE: TRADE,
+ triangle: triangle,
+ triangledown: triangledown,
+ triangleleft: triangleleft,
+ trianglelefteq: trianglelefteq,
+ triangleq: triangleq,
+ triangleright: triangleright,
+ trianglerighteq: trianglerighteq,
+ tridot: tridot,
+ trie: trie,
+ triminus: triminus,
+ TripleDot: TripleDot,
+ triplus: triplus,
+ trisb: trisb,
+ tritime: tritime,
+ trpezium: trpezium,
+ Tscr: Tscr,
+ tscr: tscr,
+ TScy: TScy,
+ tscy: tscy,
+ TSHcy: TSHcy,
+ tshcy: tshcy,
+ Tstrok: Tstrok,
+ tstrok: tstrok,
+ twixt: twixt,
+ twoheadleftarrow: twoheadleftarrow,
+ twoheadrightarrow: twoheadrightarrow,
+ Uacute: Uacute,
+ uacute: uacute,
+ uarr: uarr,
+ Uarr: Uarr,
+ uArr: uArr,
+ Uarrocir: Uarrocir,
+ Ubrcy: Ubrcy,
+ ubrcy: ubrcy,
+ Ubreve: Ubreve,
+ ubreve: ubreve,
+ Ucirc: Ucirc,
+ ucirc: ucirc,
+ Ucy: Ucy,
+ ucy: ucy,
+ udarr: udarr,
+ Udblac: Udblac,
+ udblac: udblac,
+ udhar: udhar,
+ ufisht: ufisht,
+ Ufr: Ufr,
+ ufr: ufr,
+ Ugrave: Ugrave,
+ ugrave: ugrave,
+ uHar: uHar,
+ uharl: uharl,
+ uharr: uharr,
+ uhblk: uhblk,
+ ulcorn: ulcorn,
+ ulcorner: ulcorner,
+ ulcrop: ulcrop,
+ ultri: ultri,
+ Umacr: Umacr,
+ umacr: umacr,
+ uml: uml,
+ UnderBar: UnderBar,
+ UnderBrace: UnderBrace,
+ UnderBracket: UnderBracket,
+ UnderParenthesis: UnderParenthesis,
+ Union: Union,
+ UnionPlus: UnionPlus,
+ Uogon: Uogon,
+ uogon: uogon,
+ Uopf: Uopf,
+ uopf: uopf,
+ UpArrowBar: UpArrowBar,
+ uparrow: uparrow,
+ UpArrow: UpArrow,
+ Uparrow: Uparrow,
+ UpArrowDownArrow: UpArrowDownArrow,
+ updownarrow: updownarrow,
+ UpDownArrow: UpDownArrow,
+ Updownarrow: Updownarrow,
+ UpEquilibrium: UpEquilibrium,
+ upharpoonleft: upharpoonleft,
+ upharpoonright: upharpoonright,
+ uplus: uplus,
+ UpperLeftArrow: UpperLeftArrow,
+ UpperRightArrow: UpperRightArrow,
+ upsi: upsi,
+ Upsi: Upsi,
+ upsih: upsih,
+ Upsilon: Upsilon,
+ upsilon: upsilon,
+ UpTeeArrow: UpTeeArrow,
+ UpTee: UpTee,
+ upuparrows: upuparrows,
+ urcorn: urcorn,
+ urcorner: urcorner,
+ urcrop: urcrop,
+ Uring: Uring,
+ uring: uring,
+ urtri: urtri,
+ Uscr: Uscr,
+ uscr: uscr,
+ utdot: utdot,
+ Utilde: Utilde,
+ utilde: utilde,
+ utri: utri,
+ utrif: utrif,
+ uuarr: uuarr,
+ Uuml: Uuml,
+ uuml: uuml,
+ uwangle: uwangle,
+ vangrt: vangrt,
+ varepsilon: varepsilon,
+ varkappa: varkappa,
+ varnothing: varnothing,
+ varphi: varphi,
+ varpi: varpi,
+ varpropto: varpropto,
+ varr: varr,
+ vArr: vArr,
+ varrho: varrho,
+ varsigma: varsigma,
+ varsubsetneq: varsubsetneq,
+ varsubsetneqq: varsubsetneqq,
+ varsupsetneq: varsupsetneq,
+ varsupsetneqq: varsupsetneqq,
+ vartheta: vartheta,
+ vartriangleleft: vartriangleleft,
+ vartriangleright: vartriangleright,
+ vBar: vBar,
+ Vbar: Vbar,
+ vBarv: vBarv,
+ Vcy: Vcy,
+ vcy: vcy,
+ vdash: vdash,
+ vDash: vDash,
+ Vdash: Vdash,
+ VDash: VDash,
+ Vdashl: Vdashl,
+ veebar: veebar,
+ vee: vee,
+ Vee: Vee,
+ veeeq: veeeq,
+ vellip: vellip,
+ verbar: verbar,
+ Verbar: Verbar,
+ vert: vert,
+ Vert: Vert,
+ VerticalBar: VerticalBar,
+ VerticalLine: VerticalLine,
+ VerticalSeparator: VerticalSeparator,
+ VerticalTilde: VerticalTilde,
+ VeryThinSpace: VeryThinSpace,
+ Vfr: Vfr,
+ vfr: vfr,
+ vltri: vltri,
+ vnsub: vnsub,
+ vnsup: vnsup,
+ Vopf: Vopf,
+ vopf: vopf,
+ vprop: vprop,
+ vrtri: vrtri,
+ Vscr: Vscr,
+ vscr: vscr,
+ vsubnE: vsubnE,
+ vsubne: vsubne,
+ vsupnE: vsupnE,
+ vsupne: vsupne,
+ Vvdash: Vvdash,
+ vzigzag: vzigzag,
+ Wcirc: Wcirc,
+ wcirc: wcirc,
+ wedbar: wedbar,
+ wedge: wedge,
+ Wedge: Wedge,
+ wedgeq: wedgeq,
+ weierp: weierp,
+ Wfr: Wfr,
+ wfr: wfr,
+ Wopf: Wopf,
+ wopf: wopf,
+ wp: wp,
+ wr: wr,
+ wreath: wreath,
+ Wscr: Wscr,
+ wscr: wscr,
+ xcap: xcap,
+ xcirc: xcirc,
+ xcup: xcup,
+ xdtri: xdtri,
+ Xfr: Xfr,
+ xfr: xfr,
+ xharr: xharr,
+ xhArr: xhArr,
+ Xi: Xi,
+ xi: xi,
+ xlarr: xlarr,
+ xlArr: xlArr,
+ xmap: xmap,
+ xnis: xnis,
+ xodot: xodot,
+ Xopf: Xopf,
+ xopf: xopf,
+ xoplus: xoplus,
+ xotime: xotime,
+ xrarr: xrarr,
+ xrArr: xrArr,
+ Xscr: Xscr,
+ xscr: xscr,
+ xsqcup: xsqcup,
+ xuplus: xuplus,
+ xutri: xutri,
+ xvee: xvee,
+ xwedge: xwedge,
+ Yacute: Yacute,
+ yacute: yacute,
+ YAcy: YAcy,
+ yacy: yacy,
+ Ycirc: Ycirc,
+ ycirc: ycirc,
+ Ycy: Ycy,
+ ycy: ycy,
+ yen: yen,
+ Yfr: Yfr,
+ yfr: yfr,
+ YIcy: YIcy,
+ yicy: yicy,
+ Yopf: Yopf,
+ yopf: yopf,
+ Yscr: Yscr,
+ yscr: yscr,
+ YUcy: YUcy,
+ yucy: yucy,
+ yuml: yuml,
+ Yuml: Yuml,
+ Zacute: Zacute,
+ zacute: zacute,
+ Zcaron: Zcaron,
+ zcaron: zcaron,
+ Zcy: Zcy,
+ zcy: zcy,
+ Zdot: Zdot,
+ zdot: zdot,
+ zeetrf: zeetrf,
+ ZeroWidthSpace: ZeroWidthSpace,
+ Zeta: Zeta,
+ zeta: zeta,
+ zfr: zfr,
+ Zfr: Zfr,
+ ZHcy: ZHcy,
+ zhcy: zhcy,
+ zigrarr: zigrarr,
+ zopf: zopf,
+ Zopf: Zopf,
+ Zscr: Zscr,
+ zscr: zscr,
+ zwj: zwj,
+ zwnj: zwnj
+ };
+
+ var entities$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ Aacute: Aacute,
+ aacute: aacute,
+ Abreve: Abreve,
+ abreve: abreve,
+ ac: ac,
+ acd: acd,
+ acE: acE,
+ Acirc: Acirc,
+ acirc: acirc,
+ acute: acute,
+ Acy: Acy,
+ acy: acy,
+ AElig: AElig,
+ aelig: aelig,
+ af: af,
+ Afr: Afr,
+ afr: afr,
+ Agrave: Agrave,
+ agrave: agrave,
+ alefsym: alefsym,
+ aleph: aleph,
+ Alpha: Alpha,
+ alpha: alpha,
+ Amacr: Amacr,
+ amacr: amacr,
+ amalg: amalg,
+ amp: amp,
+ AMP: AMP,
+ andand: andand,
+ And: And,
+ and: and,
+ andd: andd,
+ andslope: andslope,
+ andv: andv,
+ ang: ang,
+ ange: ange,
+ angle: angle,
+ angmsdaa: angmsdaa,
+ angmsdab: angmsdab,
+ angmsdac: angmsdac,
+ angmsdad: angmsdad,
+ angmsdae: angmsdae,
+ angmsdaf: angmsdaf,
+ angmsdag: angmsdag,
+ angmsdah: angmsdah,
+ angmsd: angmsd,
+ angrt: angrt,
+ angrtvb: angrtvb,
+ angrtvbd: angrtvbd,
+ angsph: angsph,
+ angst: angst,
+ angzarr: angzarr,
+ Aogon: Aogon,
+ aogon: aogon,
+ Aopf: Aopf,
+ aopf: aopf,
+ apacir: apacir,
+ ap: ap,
+ apE: apE,
+ ape: ape,
+ apid: apid,
+ apos: apos,
+ ApplyFunction: ApplyFunction,
+ approx: approx,
+ approxeq: approxeq,
+ Aring: Aring,
+ aring: aring,
+ Ascr: Ascr,
+ ascr: ascr,
+ Assign: Assign,
+ ast: ast,
+ asymp: asymp,
+ asympeq: asympeq,
+ Atilde: Atilde,
+ atilde: atilde,
+ Auml: Auml,
+ auml: auml,
+ awconint: awconint,
+ awint: awint,
+ backcong: backcong,
+ backepsilon: backepsilon,
+ backprime: backprime,
+ backsim: backsim,
+ backsimeq: backsimeq,
+ Backslash: Backslash,
+ Barv: Barv,
+ barvee: barvee,
+ barwed: barwed,
+ Barwed: Barwed,
+ barwedge: barwedge,
+ bbrk: bbrk,
+ bbrktbrk: bbrktbrk,
+ bcong: bcong,
+ Bcy: Bcy,
+ bcy: bcy,
+ bdquo: bdquo,
+ becaus: becaus,
+ because: because,
+ Because: Because,
+ bemptyv: bemptyv,
+ bepsi: bepsi,
+ bernou: bernou,
+ Bernoullis: Bernoullis,
+ Beta: Beta,
+ beta: beta,
+ beth: beth,
+ between: between,
+ Bfr: Bfr,
+ bfr: bfr,
+ bigcap: bigcap,
+ bigcirc: bigcirc,
+ bigcup: bigcup,
+ bigodot: bigodot,
+ bigoplus: bigoplus,
+ bigotimes: bigotimes,
+ bigsqcup: bigsqcup,
+ bigstar: bigstar,
+ bigtriangledown: bigtriangledown,
+ bigtriangleup: bigtriangleup,
+ biguplus: biguplus,
+ bigvee: bigvee,
+ bigwedge: bigwedge,
+ bkarow: bkarow,
+ blacklozenge: blacklozenge,
+ blacksquare: blacksquare,
+ blacktriangle: blacktriangle,
+ blacktriangledown: blacktriangledown,
+ blacktriangleleft: blacktriangleleft,
+ blacktriangleright: blacktriangleright,
+ blank: blank,
+ blk12: blk12,
+ blk14: blk14,
+ blk34: blk34,
+ block: block,
+ bne: bne,
+ bnequiv: bnequiv,
+ bNot: bNot,
+ bnot: bnot,
+ Bopf: Bopf,
+ bopf: bopf,
+ bot: bot,
+ bottom: bottom,
+ bowtie: bowtie,
+ boxbox: boxbox,
+ boxdl: boxdl,
+ boxdL: boxdL,
+ boxDl: boxDl,
+ boxDL: boxDL,
+ boxdr: boxdr,
+ boxdR: boxdR,
+ boxDr: boxDr,
+ boxDR: boxDR,
+ boxh: boxh,
+ boxH: boxH,
+ boxhd: boxhd,
+ boxHd: boxHd,
+ boxhD: boxhD,
+ boxHD: boxHD,
+ boxhu: boxhu,
+ boxHu: boxHu,
+ boxhU: boxhU,
+ boxHU: boxHU,
+ boxminus: boxminus,
+ boxplus: boxplus,
+ boxtimes: boxtimes,
+ boxul: boxul,
+ boxuL: boxuL,
+ boxUl: boxUl,
+ boxUL: boxUL,
+ boxur: boxur,
+ boxuR: boxuR,
+ boxUr: boxUr,
+ boxUR: boxUR,
+ boxv: boxv,
+ boxV: boxV,
+ boxvh: boxvh,
+ boxvH: boxvH,
+ boxVh: boxVh,
+ boxVH: boxVH,
+ boxvl: boxvl,
+ boxvL: boxvL,
+ boxVl: boxVl,
+ boxVL: boxVL,
+ boxvr: boxvr,
+ boxvR: boxvR,
+ boxVr: boxVr,
+ boxVR: boxVR,
+ bprime: bprime,
+ breve: breve,
+ Breve: Breve,
+ brvbar: brvbar,
+ bscr: bscr,
+ Bscr: Bscr,
+ bsemi: bsemi,
+ bsim: bsim,
+ bsime: bsime,
+ bsolb: bsolb,
+ bsol: bsol,
+ bsolhsub: bsolhsub,
+ bull: bull,
+ bullet: bullet,
+ bump: bump,
+ bumpE: bumpE,
+ bumpe: bumpe,
+ Bumpeq: Bumpeq,
+ bumpeq: bumpeq,
+ Cacute: Cacute,
+ cacute: cacute,
+ capand: capand,
+ capbrcup: capbrcup,
+ capcap: capcap,
+ cap: cap,
+ Cap: Cap,
+ capcup: capcup,
+ capdot: capdot,
+ CapitalDifferentialD: CapitalDifferentialD,
+ caps: caps,
+ caret: caret,
+ caron: caron,
+ Cayleys: Cayleys,
+ ccaps: ccaps,
+ Ccaron: Ccaron,
+ ccaron: ccaron,
+ Ccedil: Ccedil,
+ ccedil: ccedil,
+ Ccirc: Ccirc,
+ ccirc: ccirc,
+ Cconint: Cconint,
+ ccups: ccups,
+ ccupssm: ccupssm,
+ Cdot: Cdot,
+ cdot: cdot,
+ cedil: cedil,
+ Cedilla: Cedilla,
+ cemptyv: cemptyv,
+ cent: cent,
+ centerdot: centerdot,
+ CenterDot: CenterDot,
+ cfr: cfr,
+ Cfr: Cfr,
+ CHcy: CHcy,
+ chcy: chcy,
+ check: check,
+ checkmark: checkmark,
+ Chi: Chi,
+ chi: chi,
+ circ: circ,
+ circeq: circeq,
+ circlearrowleft: circlearrowleft,
+ circlearrowright: circlearrowright,
+ circledast: circledast,
+ circledcirc: circledcirc,
+ circleddash: circleddash,
+ CircleDot: CircleDot,
+ circledR: circledR,
+ circledS: circledS,
+ CircleMinus: CircleMinus,
+ CirclePlus: CirclePlus,
+ CircleTimes: CircleTimes,
+ cir: cir,
+ cirE: cirE,
+ cire: cire,
+ cirfnint: cirfnint,
+ cirmid: cirmid,
+ cirscir: cirscir,
+ ClockwiseContourIntegral: ClockwiseContourIntegral,
+ CloseCurlyDoubleQuote: CloseCurlyDoubleQuote,
+ CloseCurlyQuote: CloseCurlyQuote,
+ clubs: clubs,
+ clubsuit: clubsuit,
+ colon: colon,
+ Colon: Colon,
+ Colone: Colone,
+ colone: colone,
+ coloneq: coloneq,
+ comma: comma,
+ commat: commat,
+ comp: comp,
+ compfn: compfn,
+ complement: complement,
+ complexes: complexes,
+ cong: cong,
+ congdot: congdot,
+ Congruent: Congruent,
+ conint: conint,
+ Conint: Conint,
+ ContourIntegral: ContourIntegral,
+ copf: copf,
+ Copf: Copf,
+ coprod: coprod,
+ Coproduct: Coproduct,
+ copy: copy,
+ COPY: COPY,
+ copysr: copysr,
+ CounterClockwiseContourIntegral: CounterClockwiseContourIntegral,
+ crarr: crarr,
+ cross: cross,
+ Cross: Cross,
+ Cscr: Cscr,
+ cscr: cscr,
+ csub: csub,
+ csube: csube,
+ csup: csup,
+ csupe: csupe,
+ ctdot: ctdot,
+ cudarrl: cudarrl,
+ cudarrr: cudarrr,
+ cuepr: cuepr,
+ cuesc: cuesc,
+ cularr: cularr,
+ cularrp: cularrp,
+ cupbrcap: cupbrcap,
+ cupcap: cupcap,
+ CupCap: CupCap,
+ cup: cup,
+ Cup: Cup,
+ cupcup: cupcup,
+ cupdot: cupdot,
+ cupor: cupor,
+ cups: cups,
+ curarr: curarr,
+ curarrm: curarrm,
+ curlyeqprec: curlyeqprec,
+ curlyeqsucc: curlyeqsucc,
+ curlyvee: curlyvee,
+ curlywedge: curlywedge,
+ curren: curren,
+ curvearrowleft: curvearrowleft,
+ curvearrowright: curvearrowright,
+ cuvee: cuvee,
+ cuwed: cuwed,
+ cwconint: cwconint,
+ cwint: cwint,
+ cylcty: cylcty,
+ dagger: dagger,
+ Dagger: Dagger,
+ daleth: daleth,
+ darr: darr,
+ Darr: Darr,
+ dArr: dArr,
+ dash: dash,
+ Dashv: Dashv,
+ dashv: dashv,
+ dbkarow: dbkarow,
+ dblac: dblac,
+ Dcaron: Dcaron,
+ dcaron: dcaron,
+ Dcy: Dcy,
+ dcy: dcy,
+ ddagger: ddagger,
+ ddarr: ddarr,
+ DD: DD,
+ dd: dd,
+ DDotrahd: DDotrahd,
+ ddotseq: ddotseq,
+ deg: deg,
+ Del: Del,
+ Delta: Delta,
+ delta: delta,
+ demptyv: demptyv,
+ dfisht: dfisht,
+ Dfr: Dfr,
+ dfr: dfr,
+ dHar: dHar,
+ dharl: dharl,
+ dharr: dharr,
+ DiacriticalAcute: DiacriticalAcute,
+ DiacriticalDot: DiacriticalDot,
+ DiacriticalDoubleAcute: DiacriticalDoubleAcute,
+ DiacriticalGrave: DiacriticalGrave,
+ DiacriticalTilde: DiacriticalTilde,
+ diam: diam,
+ diamond: diamond,
+ Diamond: Diamond,
+ diamondsuit: diamondsuit,
+ diams: diams,
+ die: die,
+ DifferentialD: DifferentialD,
+ digamma: digamma,
+ disin: disin,
+ div: div,
+ divide: divide,
+ divideontimes: divideontimes,
+ divonx: divonx,
+ DJcy: DJcy,
+ djcy: djcy,
+ dlcorn: dlcorn,
+ dlcrop: dlcrop,
+ dollar: dollar,
+ Dopf: Dopf,
+ dopf: dopf,
+ Dot: Dot,
+ dot: dot,
+ DotDot: DotDot,
+ doteq: doteq,
+ doteqdot: doteqdot,
+ DotEqual: DotEqual,
+ dotminus: dotminus,
+ dotplus: dotplus,
+ dotsquare: dotsquare,
+ doublebarwedge: doublebarwedge,
+ DoubleContourIntegral: DoubleContourIntegral,
+ DoubleDot: DoubleDot,
+ DoubleDownArrow: DoubleDownArrow,
+ DoubleLeftArrow: DoubleLeftArrow,
+ DoubleLeftRightArrow: DoubleLeftRightArrow,
+ DoubleLeftTee: DoubleLeftTee,
+ DoubleLongLeftArrow: DoubleLongLeftArrow,
+ DoubleLongLeftRightArrow: DoubleLongLeftRightArrow,
+ DoubleLongRightArrow: DoubleLongRightArrow,
+ DoubleRightArrow: DoubleRightArrow,
+ DoubleRightTee: DoubleRightTee,
+ DoubleUpArrow: DoubleUpArrow,
+ DoubleUpDownArrow: DoubleUpDownArrow,
+ DoubleVerticalBar: DoubleVerticalBar,
+ DownArrowBar: DownArrowBar,
+ downarrow: downarrow,
+ DownArrow: DownArrow,
+ Downarrow: Downarrow,
+ DownArrowUpArrow: DownArrowUpArrow,
+ DownBreve: DownBreve,
+ downdownarrows: downdownarrows,
+ downharpoonleft: downharpoonleft,
+ downharpoonright: downharpoonright,
+ DownLeftRightVector: DownLeftRightVector,
+ DownLeftTeeVector: DownLeftTeeVector,
+ DownLeftVectorBar: DownLeftVectorBar,
+ DownLeftVector: DownLeftVector,
+ DownRightTeeVector: DownRightTeeVector,
+ DownRightVectorBar: DownRightVectorBar,
+ DownRightVector: DownRightVector,
+ DownTeeArrow: DownTeeArrow,
+ DownTee: DownTee,
+ drbkarow: drbkarow,
+ drcorn: drcorn,
+ drcrop: drcrop,
+ Dscr: Dscr,
+ dscr: dscr,
+ DScy: DScy,
+ dscy: dscy,
+ dsol: dsol,
+ Dstrok: Dstrok,
+ dstrok: dstrok,
+ dtdot: dtdot,
+ dtri: dtri,
+ dtrif: dtrif,
+ duarr: duarr,
+ duhar: duhar,
+ dwangle: dwangle,
+ DZcy: DZcy,
+ dzcy: dzcy,
+ dzigrarr: dzigrarr,
+ Eacute: Eacute,
+ eacute: eacute,
+ easter: easter,
+ Ecaron: Ecaron,
+ ecaron: ecaron,
+ Ecirc: Ecirc,
+ ecirc: ecirc,
+ ecir: ecir,
+ ecolon: ecolon,
+ Ecy: Ecy,
+ ecy: ecy,
+ eDDot: eDDot,
+ Edot: Edot,
+ edot: edot,
+ eDot: eDot,
+ ee: ee,
+ efDot: efDot,
+ Efr: Efr,
+ efr: efr,
+ eg: eg,
+ Egrave: Egrave,
+ egrave: egrave,
+ egs: egs,
+ egsdot: egsdot,
+ el: el,
+ Element: Element,
+ elinters: elinters,
+ ell: ell,
+ els: els,
+ elsdot: elsdot,
+ Emacr: Emacr,
+ emacr: emacr,
+ empty: empty,
+ emptyset: emptyset,
+ EmptySmallSquare: EmptySmallSquare,
+ emptyv: emptyv,
+ EmptyVerySmallSquare: EmptyVerySmallSquare,
+ emsp13: emsp13,
+ emsp14: emsp14,
+ emsp: emsp,
+ ENG: ENG,
+ eng: eng,
+ ensp: ensp,
+ Eogon: Eogon,
+ eogon: eogon,
+ Eopf: Eopf,
+ eopf: eopf,
+ epar: epar,
+ eparsl: eparsl,
+ eplus: eplus,
+ epsi: epsi,
+ Epsilon: Epsilon,
+ epsilon: epsilon,
+ epsiv: epsiv,
+ eqcirc: eqcirc,
+ eqcolon: eqcolon,
+ eqsim: eqsim,
+ eqslantgtr: eqslantgtr,
+ eqslantless: eqslantless,
+ Equal: Equal,
+ equals: equals,
+ EqualTilde: EqualTilde,
+ equest: equest,
+ Equilibrium: Equilibrium,
+ equiv: equiv,
+ equivDD: equivDD,
+ eqvparsl: eqvparsl,
+ erarr: erarr,
+ erDot: erDot,
+ escr: escr,
+ Escr: Escr,
+ esdot: esdot,
+ Esim: Esim,
+ esim: esim,
+ Eta: Eta,
+ eta: eta,
+ ETH: ETH,
+ eth: eth,
+ Euml: Euml,
+ euml: euml,
+ euro: euro,
+ excl: excl,
+ exist: exist,
+ Exists: Exists,
+ expectation: expectation,
+ exponentiale: exponentiale,
+ ExponentialE: ExponentialE,
+ fallingdotseq: fallingdotseq,
+ Fcy: Fcy,
+ fcy: fcy,
+ female: female,
+ ffilig: ffilig,
+ fflig: fflig,
+ ffllig: ffllig,
+ Ffr: Ffr,
+ ffr: ffr,
+ filig: filig,
+ FilledSmallSquare: FilledSmallSquare,
+ FilledVerySmallSquare: FilledVerySmallSquare,
+ fjlig: fjlig,
+ flat: flat,
+ fllig: fllig,
+ fltns: fltns,
+ fnof: fnof,
+ Fopf: Fopf,
+ fopf: fopf,
+ forall: forall,
+ ForAll: ForAll,
+ fork: fork,
+ forkv: forkv,
+ Fouriertrf: Fouriertrf,
+ fpartint: fpartint,
+ frac12: frac12,
+ frac13: frac13,
+ frac14: frac14,
+ frac15: frac15,
+ frac16: frac16,
+ frac18: frac18,
+ frac23: frac23,
+ frac25: frac25,
+ frac34: frac34,
+ frac35: frac35,
+ frac38: frac38,
+ frac45: frac45,
+ frac56: frac56,
+ frac58: frac58,
+ frac78: frac78,
+ frasl: frasl,
+ frown: frown,
+ fscr: fscr,
+ Fscr: Fscr,
+ gacute: gacute,
+ Gamma: Gamma,
+ gamma: gamma,
+ Gammad: Gammad,
+ gammad: gammad,
+ gap: gap,
+ Gbreve: Gbreve,
+ gbreve: gbreve,
+ Gcedil: Gcedil,
+ Gcirc: Gcirc,
+ gcirc: gcirc,
+ Gcy: Gcy,
+ gcy: gcy,
+ Gdot: Gdot,
+ gdot: gdot,
+ ge: ge,
+ gE: gE,
+ gEl: gEl,
+ gel: gel,
+ geq: geq,
+ geqq: geqq,
+ geqslant: geqslant,
+ gescc: gescc,
+ ges: ges,
+ gesdot: gesdot,
+ gesdoto: gesdoto,
+ gesdotol: gesdotol,
+ gesl: gesl,
+ gesles: gesles,
+ Gfr: Gfr,
+ gfr: gfr,
+ gg: gg,
+ Gg: Gg,
+ ggg: ggg,
+ gimel: gimel,
+ GJcy: GJcy,
+ gjcy: gjcy,
+ gla: gla,
+ gl: gl,
+ glE: glE,
+ glj: glj,
+ gnap: gnap,
+ gnapprox: gnapprox,
+ gne: gne,
+ gnE: gnE,
+ gneq: gneq,
+ gneqq: gneqq,
+ gnsim: gnsim,
+ Gopf: Gopf,
+ gopf: gopf,
+ grave: grave,
+ GreaterEqual: GreaterEqual,
+ GreaterEqualLess: GreaterEqualLess,
+ GreaterFullEqual: GreaterFullEqual,
+ GreaterGreater: GreaterGreater,
+ GreaterLess: GreaterLess,
+ GreaterSlantEqual: GreaterSlantEqual,
+ GreaterTilde: GreaterTilde,
+ Gscr: Gscr,
+ gscr: gscr,
+ gsim: gsim,
+ gsime: gsime,
+ gsiml: gsiml,
+ gtcc: gtcc,
+ gtcir: gtcir,
+ gt: gt,
+ GT: GT,
+ Gt: Gt,
+ gtdot: gtdot,
+ gtlPar: gtlPar,
+ gtquest: gtquest,
+ gtrapprox: gtrapprox,
+ gtrarr: gtrarr,
+ gtrdot: gtrdot,
+ gtreqless: gtreqless,
+ gtreqqless: gtreqqless,
+ gtrless: gtrless,
+ gtrsim: gtrsim,
+ gvertneqq: gvertneqq,
+ gvnE: gvnE,
+ Hacek: Hacek,
+ hairsp: hairsp,
+ half: half,
+ hamilt: hamilt,
+ HARDcy: HARDcy,
+ hardcy: hardcy,
+ harrcir: harrcir,
+ harr: harr,
+ hArr: hArr,
+ harrw: harrw,
+ Hat: Hat,
+ hbar: hbar,
+ Hcirc: Hcirc,
+ hcirc: hcirc,
+ hearts: hearts,
+ heartsuit: heartsuit,
+ hellip: hellip,
+ hercon: hercon,
+ hfr: hfr,
+ Hfr: Hfr,
+ HilbertSpace: HilbertSpace,
+ hksearow: hksearow,
+ hkswarow: hkswarow,
+ hoarr: hoarr,
+ homtht: homtht,
+ hookleftarrow: hookleftarrow,
+ hookrightarrow: hookrightarrow,
+ hopf: hopf,
+ Hopf: Hopf,
+ horbar: horbar,
+ HorizontalLine: HorizontalLine,
+ hscr: hscr,
+ Hscr: Hscr,
+ hslash: hslash,
+ Hstrok: Hstrok,
+ hstrok: hstrok,
+ HumpDownHump: HumpDownHump,
+ HumpEqual: HumpEqual,
+ hybull: hybull,
+ hyphen: hyphen,
+ Iacute: Iacute,
+ iacute: iacute,
+ ic: ic,
+ Icirc: Icirc,
+ icirc: icirc,
+ Icy: Icy,
+ icy: icy,
+ Idot: Idot,
+ IEcy: IEcy,
+ iecy: iecy,
+ iexcl: iexcl,
+ iff: iff,
+ ifr: ifr,
+ Ifr: Ifr,
+ Igrave: Igrave,
+ igrave: igrave,
+ ii: ii,
+ iiiint: iiiint,
+ iiint: iiint,
+ iinfin: iinfin,
+ iiota: iiota,
+ IJlig: IJlig,
+ ijlig: ijlig,
+ Imacr: Imacr,
+ imacr: imacr,
+ image: image,
+ ImaginaryI: ImaginaryI,
+ imagline: imagline,
+ imagpart: imagpart,
+ imath: imath,
+ Im: Im,
+ imof: imof,
+ imped: imped,
+ Implies: Implies,
+ incare: incare,
+ infin: infin,
+ infintie: infintie,
+ inodot: inodot,
+ intcal: intcal,
+ int: int,
+ Int: Int,
+ integers: integers,
+ Integral: Integral,
+ intercal: intercal,
+ Intersection: Intersection,
+ intlarhk: intlarhk,
+ intprod: intprod,
+ InvisibleComma: InvisibleComma,
+ InvisibleTimes: InvisibleTimes,
+ IOcy: IOcy,
+ iocy: iocy,
+ Iogon: Iogon,
+ iogon: iogon,
+ Iopf: Iopf,
+ iopf: iopf,
+ Iota: Iota,
+ iota: iota,
+ iprod: iprod,
+ iquest: iquest,
+ iscr: iscr,
+ Iscr: Iscr,
+ isin: isin,
+ isindot: isindot,
+ isinE: isinE,
+ isins: isins,
+ isinsv: isinsv,
+ isinv: isinv,
+ it: it,
+ Itilde: Itilde,
+ itilde: itilde,
+ Iukcy: Iukcy,
+ iukcy: iukcy,
+ Iuml: Iuml,
+ iuml: iuml,
+ Jcirc: Jcirc,
+ jcirc: jcirc,
+ Jcy: Jcy,
+ jcy: jcy,
+ Jfr: Jfr,
+ jfr: jfr,
+ jmath: jmath,
+ Jopf: Jopf,
+ jopf: jopf,
+ Jscr: Jscr,
+ jscr: jscr,
+ Jsercy: Jsercy,
+ jsercy: jsercy,
+ Jukcy: Jukcy,
+ jukcy: jukcy,
+ Kappa: Kappa,
+ kappa: kappa,
+ kappav: kappav,
+ Kcedil: Kcedil,
+ kcedil: kcedil,
+ Kcy: Kcy,
+ kcy: kcy,
+ Kfr: Kfr,
+ kfr: kfr,
+ kgreen: kgreen,
+ KHcy: KHcy,
+ khcy: khcy,
+ KJcy: KJcy,
+ kjcy: kjcy,
+ Kopf: Kopf,
+ kopf: kopf,
+ Kscr: Kscr,
+ kscr: kscr,
+ lAarr: lAarr,
+ Lacute: Lacute,
+ lacute: lacute,
+ laemptyv: laemptyv,
+ lagran: lagran,
+ Lambda: Lambda,
+ lambda: lambda,
+ lang: lang,
+ Lang: Lang,
+ langd: langd,
+ langle: langle,
+ lap: lap,
+ Laplacetrf: Laplacetrf,
+ laquo: laquo,
+ larrb: larrb,
+ larrbfs: larrbfs,
+ larr: larr,
+ Larr: Larr,
+ lArr: lArr,
+ larrfs: larrfs,
+ larrhk: larrhk,
+ larrlp: larrlp,
+ larrpl: larrpl,
+ larrsim: larrsim,
+ larrtl: larrtl,
+ latail: latail,
+ lAtail: lAtail,
+ lat: lat,
+ late: late,
+ lates: lates,
+ lbarr: lbarr,
+ lBarr: lBarr,
+ lbbrk: lbbrk,
+ lbrace: lbrace,
+ lbrack: lbrack,
+ lbrke: lbrke,
+ lbrksld: lbrksld,
+ lbrkslu: lbrkslu,
+ Lcaron: Lcaron,
+ lcaron: lcaron,
+ Lcedil: Lcedil,
+ lcedil: lcedil,
+ lceil: lceil,
+ lcub: lcub,
+ Lcy: Lcy,
+ lcy: lcy,
+ ldca: ldca,
+ ldquo: ldquo,
+ ldquor: ldquor,
+ ldrdhar: ldrdhar,
+ ldrushar: ldrushar,
+ ldsh: ldsh,
+ le: le,
+ lE: lE,
+ LeftAngleBracket: LeftAngleBracket,
+ LeftArrowBar: LeftArrowBar,
+ leftarrow: leftarrow,
+ LeftArrow: LeftArrow,
+ Leftarrow: Leftarrow,
+ LeftArrowRightArrow: LeftArrowRightArrow,
+ leftarrowtail: leftarrowtail,
+ LeftCeiling: LeftCeiling,
+ LeftDoubleBracket: LeftDoubleBracket,
+ LeftDownTeeVector: LeftDownTeeVector,
+ LeftDownVectorBar: LeftDownVectorBar,
+ LeftDownVector: LeftDownVector,
+ LeftFloor: LeftFloor,
+ leftharpoondown: leftharpoondown,
+ leftharpoonup: leftharpoonup,
+ leftleftarrows: leftleftarrows,
+ leftrightarrow: leftrightarrow,
+ LeftRightArrow: LeftRightArrow,
+ Leftrightarrow: Leftrightarrow,
+ leftrightarrows: leftrightarrows,
+ leftrightharpoons: leftrightharpoons,
+ leftrightsquigarrow: leftrightsquigarrow,
+ LeftRightVector: LeftRightVector,
+ LeftTeeArrow: LeftTeeArrow,
+ LeftTee: LeftTee,
+ LeftTeeVector: LeftTeeVector,
+ leftthreetimes: leftthreetimes,
+ LeftTriangleBar: LeftTriangleBar,
+ LeftTriangle: LeftTriangle,
+ LeftTriangleEqual: LeftTriangleEqual,
+ LeftUpDownVector: LeftUpDownVector,
+ LeftUpTeeVector: LeftUpTeeVector,
+ LeftUpVectorBar: LeftUpVectorBar,
+ LeftUpVector: LeftUpVector,
+ LeftVectorBar: LeftVectorBar,
+ LeftVector: LeftVector,
+ lEg: lEg,
+ leg: leg,
+ leq: leq,
+ leqq: leqq,
+ leqslant: leqslant,
+ lescc: lescc,
+ les: les,
+ lesdot: lesdot,
+ lesdoto: lesdoto,
+ lesdotor: lesdotor,
+ lesg: lesg,
+ lesges: lesges,
+ lessapprox: lessapprox,
+ lessdot: lessdot,
+ lesseqgtr: lesseqgtr,
+ lesseqqgtr: lesseqqgtr,
+ LessEqualGreater: LessEqualGreater,
+ LessFullEqual: LessFullEqual,
+ LessGreater: LessGreater,
+ lessgtr: lessgtr,
+ LessLess: LessLess,
+ lesssim: lesssim,
+ LessSlantEqual: LessSlantEqual,
+ LessTilde: LessTilde,
+ lfisht: lfisht,
+ lfloor: lfloor,
+ Lfr: Lfr,
+ lfr: lfr,
+ lg: lg,
+ lgE: lgE,
+ lHar: lHar,
+ lhard: lhard,
+ lharu: lharu,
+ lharul: lharul,
+ lhblk: lhblk,
+ LJcy: LJcy,
+ ljcy: ljcy,
+ llarr: llarr,
+ ll: ll,
+ Ll: Ll,
+ llcorner: llcorner,
+ Lleftarrow: Lleftarrow,
+ llhard: llhard,
+ lltri: lltri,
+ Lmidot: Lmidot,
+ lmidot: lmidot,
+ lmoustache: lmoustache,
+ lmoust: lmoust,
+ lnap: lnap,
+ lnapprox: lnapprox,
+ lne: lne,
+ lnE: lnE,
+ lneq: lneq,
+ lneqq: lneqq,
+ lnsim: lnsim,
+ loang: loang,
+ loarr: loarr,
+ lobrk: lobrk,
+ longleftarrow: longleftarrow,
+ LongLeftArrow: LongLeftArrow,
+ Longleftarrow: Longleftarrow,
+ longleftrightarrow: longleftrightarrow,
+ LongLeftRightArrow: LongLeftRightArrow,
+ Longleftrightarrow: Longleftrightarrow,
+ longmapsto: longmapsto,
+ longrightarrow: longrightarrow,
+ LongRightArrow: LongRightArrow,
+ Longrightarrow: Longrightarrow,
+ looparrowleft: looparrowleft,
+ looparrowright: looparrowright,
+ lopar: lopar,
+ Lopf: Lopf,
+ lopf: lopf,
+ loplus: loplus,
+ lotimes: lotimes,
+ lowast: lowast,
+ lowbar: lowbar,
+ LowerLeftArrow: LowerLeftArrow,
+ LowerRightArrow: LowerRightArrow,
+ loz: loz,
+ lozenge: lozenge,
+ lozf: lozf,
+ lpar: lpar,
+ lparlt: lparlt,
+ lrarr: lrarr,
+ lrcorner: lrcorner,
+ lrhar: lrhar,
+ lrhard: lrhard,
+ lrm: lrm,
+ lrtri: lrtri,
+ lsaquo: lsaquo,
+ lscr: lscr,
+ Lscr: Lscr,
+ lsh: lsh,
+ Lsh: Lsh,
+ lsim: lsim,
+ lsime: lsime,
+ lsimg: lsimg,
+ lsqb: lsqb,
+ lsquo: lsquo,
+ lsquor: lsquor,
+ Lstrok: Lstrok,
+ lstrok: lstrok,
+ ltcc: ltcc,
+ ltcir: ltcir,
+ lt: lt,
+ LT: LT,
+ Lt: Lt,
+ ltdot: ltdot,
+ lthree: lthree,
+ ltimes: ltimes,
+ ltlarr: ltlarr,
+ ltquest: ltquest,
+ ltri: ltri,
+ ltrie: ltrie,
+ ltrif: ltrif,
+ ltrPar: ltrPar,
+ lurdshar: lurdshar,
+ luruhar: luruhar,
+ lvertneqq: lvertneqq,
+ lvnE: lvnE,
+ macr: macr,
+ male: male,
+ malt: malt,
+ maltese: maltese,
+ map: map,
+ mapsto: mapsto,
+ mapstodown: mapstodown,
+ mapstoleft: mapstoleft,
+ mapstoup: mapstoup,
+ marker: marker,
+ mcomma: mcomma,
+ Mcy: Mcy,
+ mcy: mcy,
+ mdash: mdash,
+ mDDot: mDDot,
+ measuredangle: measuredangle,
+ MediumSpace: MediumSpace,
+ Mellintrf: Mellintrf,
+ Mfr: Mfr,
+ mfr: mfr,
+ mho: mho,
+ micro: micro,
+ midast: midast,
+ midcir: midcir,
+ mid: mid,
+ middot: middot,
+ minusb: minusb,
+ minus: minus,
+ minusd: minusd,
+ minusdu: minusdu,
+ MinusPlus: MinusPlus,
+ mlcp: mlcp,
+ mldr: mldr,
+ mnplus: mnplus,
+ models: models,
+ Mopf: Mopf,
+ mopf: mopf,
+ mp: mp,
+ mscr: mscr,
+ Mscr: Mscr,
+ mstpos: mstpos,
+ Mu: Mu,
+ mu: mu,
+ multimap: multimap,
+ mumap: mumap,
+ nabla: nabla,
+ Nacute: Nacute,
+ nacute: nacute,
+ nang: nang,
+ nap: nap,
+ napE: napE,
+ napid: napid,
+ napos: napos,
+ napprox: napprox,
+ natural: natural,
+ naturals: naturals,
+ natur: natur,
+ nbsp: nbsp,
+ nbump: nbump,
+ nbumpe: nbumpe,
+ ncap: ncap,
+ Ncaron: Ncaron,
+ ncaron: ncaron,
+ Ncedil: Ncedil,
+ ncedil: ncedil,
+ ncong: ncong,
+ ncongdot: ncongdot,
+ ncup: ncup,
+ Ncy: Ncy,
+ ncy: ncy,
+ ndash: ndash,
+ nearhk: nearhk,
+ nearr: nearr,
+ neArr: neArr,
+ nearrow: nearrow,
+ ne: ne,
+ nedot: nedot,
+ NegativeMediumSpace: NegativeMediumSpace,
+ NegativeThickSpace: NegativeThickSpace,
+ NegativeThinSpace: NegativeThinSpace,
+ NegativeVeryThinSpace: NegativeVeryThinSpace,
+ nequiv: nequiv,
+ nesear: nesear,
+ nesim: nesim,
+ NestedGreaterGreater: NestedGreaterGreater,
+ NestedLessLess: NestedLessLess,
+ NewLine: NewLine,
+ nexist: nexist,
+ nexists: nexists,
+ Nfr: Nfr,
+ nfr: nfr,
+ ngE: ngE,
+ nge: nge,
+ ngeq: ngeq,
+ ngeqq: ngeqq,
+ ngeqslant: ngeqslant,
+ nges: nges,
+ nGg: nGg,
+ ngsim: ngsim,
+ nGt: nGt,
+ ngt: ngt,
+ ngtr: ngtr,
+ nGtv: nGtv,
+ nharr: nharr,
+ nhArr: nhArr,
+ nhpar: nhpar,
+ ni: ni,
+ nis: nis,
+ nisd: nisd,
+ niv: niv,
+ NJcy: NJcy,
+ njcy: njcy,
+ nlarr: nlarr,
+ nlArr: nlArr,
+ nldr: nldr,
+ nlE: nlE,
+ nle: nle,
+ nleftarrow: nleftarrow,
+ nLeftarrow: nLeftarrow,
+ nleftrightarrow: nleftrightarrow,
+ nLeftrightarrow: nLeftrightarrow,
+ nleq: nleq,
+ nleqq: nleqq,
+ nleqslant: nleqslant,
+ nles: nles,
+ nless: nless,
+ nLl: nLl,
+ nlsim: nlsim,
+ nLt: nLt,
+ nlt: nlt,
+ nltri: nltri,
+ nltrie: nltrie,
+ nLtv: nLtv,
+ nmid: nmid,
+ NoBreak: NoBreak,
+ NonBreakingSpace: NonBreakingSpace,
+ nopf: nopf,
+ Nopf: Nopf,
+ Not: Not,
+ not: not,
+ NotCongruent: NotCongruent,
+ NotCupCap: NotCupCap,
+ NotDoubleVerticalBar: NotDoubleVerticalBar,
+ NotElement: NotElement,
+ NotEqual: NotEqual,
+ NotEqualTilde: NotEqualTilde,
+ NotExists: NotExists,
+ NotGreater: NotGreater,
+ NotGreaterEqual: NotGreaterEqual,
+ NotGreaterFullEqual: NotGreaterFullEqual,
+ NotGreaterGreater: NotGreaterGreater,
+ NotGreaterLess: NotGreaterLess,
+ NotGreaterSlantEqual: NotGreaterSlantEqual,
+ NotGreaterTilde: NotGreaterTilde,
+ NotHumpDownHump: NotHumpDownHump,
+ NotHumpEqual: NotHumpEqual,
+ notin: notin,
+ notindot: notindot,
+ notinE: notinE,
+ notinva: notinva,
+ notinvb: notinvb,
+ notinvc: notinvc,
+ NotLeftTriangleBar: NotLeftTriangleBar,
+ NotLeftTriangle: NotLeftTriangle,
+ NotLeftTriangleEqual: NotLeftTriangleEqual,
+ NotLess: NotLess,
+ NotLessEqual: NotLessEqual,
+ NotLessGreater: NotLessGreater,
+ NotLessLess: NotLessLess,
+ NotLessSlantEqual: NotLessSlantEqual,
+ NotLessTilde: NotLessTilde,
+ NotNestedGreaterGreater: NotNestedGreaterGreater,
+ NotNestedLessLess: NotNestedLessLess,
+ notni: notni,
+ notniva: notniva,
+ notnivb: notnivb,
+ notnivc: notnivc,
+ NotPrecedes: NotPrecedes,
+ NotPrecedesEqual: NotPrecedesEqual,
+ NotPrecedesSlantEqual: NotPrecedesSlantEqual,
+ NotReverseElement: NotReverseElement,
+ NotRightTriangleBar: NotRightTriangleBar,
+ NotRightTriangle: NotRightTriangle,
+ NotRightTriangleEqual: NotRightTriangleEqual,
+ NotSquareSubset: NotSquareSubset,
+ NotSquareSubsetEqual: NotSquareSubsetEqual,
+ NotSquareSuperset: NotSquareSuperset,
+ NotSquareSupersetEqual: NotSquareSupersetEqual,
+ NotSubset: NotSubset,
+ NotSubsetEqual: NotSubsetEqual,
+ NotSucceeds: NotSucceeds,
+ NotSucceedsEqual: NotSucceedsEqual,
+ NotSucceedsSlantEqual: NotSucceedsSlantEqual,
+ NotSucceedsTilde: NotSucceedsTilde,
+ NotSuperset: NotSuperset,
+ NotSupersetEqual: NotSupersetEqual,
+ NotTilde: NotTilde,
+ NotTildeEqual: NotTildeEqual,
+ NotTildeFullEqual: NotTildeFullEqual,
+ NotTildeTilde: NotTildeTilde,
+ NotVerticalBar: NotVerticalBar,
+ nparallel: nparallel,
+ npar: npar,
+ nparsl: nparsl,
+ npart: npart,
+ npolint: npolint,
+ npr: npr,
+ nprcue: nprcue,
+ nprec: nprec,
+ npreceq: npreceq,
+ npre: npre,
+ nrarrc: nrarrc,
+ nrarr: nrarr,
+ nrArr: nrArr,
+ nrarrw: nrarrw,
+ nrightarrow: nrightarrow,
+ nRightarrow: nRightarrow,
+ nrtri: nrtri,
+ nrtrie: nrtrie,
+ nsc: nsc,
+ nsccue: nsccue,
+ nsce: nsce,
+ Nscr: Nscr,
+ nscr: nscr,
+ nshortmid: nshortmid,
+ nshortparallel: nshortparallel,
+ nsim: nsim,
+ nsime: nsime,
+ nsimeq: nsimeq,
+ nsmid: nsmid,
+ nspar: nspar,
+ nsqsube: nsqsube,
+ nsqsupe: nsqsupe,
+ nsub: nsub,
+ nsubE: nsubE,
+ nsube: nsube,
+ nsubset: nsubset,
+ nsubseteq: nsubseteq,
+ nsubseteqq: nsubseteqq,
+ nsucc: nsucc,
+ nsucceq: nsucceq,
+ nsup: nsup,
+ nsupE: nsupE,
+ nsupe: nsupe,
+ nsupset: nsupset,
+ nsupseteq: nsupseteq,
+ nsupseteqq: nsupseteqq,
+ ntgl: ntgl,
+ Ntilde: Ntilde,
+ ntilde: ntilde,
+ ntlg: ntlg,
+ ntriangleleft: ntriangleleft,
+ ntrianglelefteq: ntrianglelefteq,
+ ntriangleright: ntriangleright,
+ ntrianglerighteq: ntrianglerighteq,
+ Nu: Nu,
+ nu: nu,
+ num: num,
+ numero: numero,
+ numsp: numsp,
+ nvap: nvap,
+ nvdash: nvdash,
+ nvDash: nvDash,
+ nVdash: nVdash,
+ nVDash: nVDash,
+ nvge: nvge,
+ nvgt: nvgt,
+ nvHarr: nvHarr,
+ nvinfin: nvinfin,
+ nvlArr: nvlArr,
+ nvle: nvle,
+ nvlt: nvlt,
+ nvltrie: nvltrie,
+ nvrArr: nvrArr,
+ nvrtrie: nvrtrie,
+ nvsim: nvsim,
+ nwarhk: nwarhk,
+ nwarr: nwarr,
+ nwArr: nwArr,
+ nwarrow: nwarrow,
+ nwnear: nwnear,
+ Oacute: Oacute,
+ oacute: oacute,
+ oast: oast,
+ Ocirc: Ocirc,
+ ocirc: ocirc,
+ ocir: ocir,
+ Ocy: Ocy,
+ ocy: ocy,
+ odash: odash,
+ Odblac: Odblac,
+ odblac: odblac,
+ odiv: odiv,
+ odot: odot,
+ odsold: odsold,
+ OElig: OElig,
+ oelig: oelig,
+ ofcir: ofcir,
+ Ofr: Ofr,
+ ofr: ofr,
+ ogon: ogon,
+ Ograve: Ograve,
+ ograve: ograve,
+ ogt: ogt,
+ ohbar: ohbar,
+ ohm: ohm,
+ oint: oint,
+ olarr: olarr,
+ olcir: olcir,
+ olcross: olcross,
+ oline: oline,
+ olt: olt,
+ Omacr: Omacr,
+ omacr: omacr,
+ Omega: Omega,
+ omega: omega,
+ Omicron: Omicron,
+ omicron: omicron,
+ omid: omid,
+ ominus: ominus,
+ Oopf: Oopf,
+ oopf: oopf,
+ opar: opar,
+ OpenCurlyDoubleQuote: OpenCurlyDoubleQuote,
+ OpenCurlyQuote: OpenCurlyQuote,
+ operp: operp,
+ oplus: oplus,
+ orarr: orarr,
+ Or: Or,
+ or: or,
+ ord: ord,
+ order: order,
+ orderof: orderof,
+ ordf: ordf,
+ ordm: ordm,
+ origof: origof,
+ oror: oror,
+ orslope: orslope,
+ orv: orv,
+ oS: oS,
+ Oscr: Oscr,
+ oscr: oscr,
+ Oslash: Oslash,
+ oslash: oslash,
+ osol: osol,
+ Otilde: Otilde,
+ otilde: otilde,
+ otimesas: otimesas,
+ Otimes: Otimes,
+ otimes: otimes,
+ Ouml: Ouml,
+ ouml: ouml,
+ ovbar: ovbar,
+ OverBar: OverBar,
+ OverBrace: OverBrace,
+ OverBracket: OverBracket,
+ OverParenthesis: OverParenthesis,
+ para: para,
+ parallel: parallel,
+ par: par,
+ parsim: parsim,
+ parsl: parsl,
+ part: part,
+ PartialD: PartialD,
+ Pcy: Pcy,
+ pcy: pcy,
+ percnt: percnt,
+ period: period,
+ permil: permil,
+ perp: perp,
+ pertenk: pertenk,
+ Pfr: Pfr,
+ pfr: pfr,
+ Phi: Phi,
+ phi: phi,
+ phiv: phiv,
+ phmmat: phmmat,
+ phone: phone,
+ Pi: Pi,
+ pi: pi,
+ pitchfork: pitchfork,
+ piv: piv,
+ planck: planck,
+ planckh: planckh,
+ plankv: plankv,
+ plusacir: plusacir,
+ plusb: plusb,
+ pluscir: pluscir,
+ plus: plus,
+ plusdo: plusdo,
+ plusdu: plusdu,
+ pluse: pluse,
+ PlusMinus: PlusMinus,
+ plusmn: plusmn,
+ plussim: plussim,
+ plustwo: plustwo,
+ pm: pm,
+ Poincareplane: Poincareplane,
+ pointint: pointint,
+ popf: popf,
+ Popf: Popf,
+ pound: pound,
+ prap: prap,
+ Pr: Pr,
+ pr: pr,
+ prcue: prcue,
+ precapprox: precapprox,
+ prec: prec,
+ preccurlyeq: preccurlyeq,
+ Precedes: Precedes,
+ PrecedesEqual: PrecedesEqual,
+ PrecedesSlantEqual: PrecedesSlantEqual,
+ PrecedesTilde: PrecedesTilde,
+ preceq: preceq,
+ precnapprox: precnapprox,
+ precneqq: precneqq,
+ precnsim: precnsim,
+ pre: pre,
+ prE: prE,
+ precsim: precsim,
+ prime: prime,
+ Prime: Prime,
+ primes: primes,
+ prnap: prnap,
+ prnE: prnE,
+ prnsim: prnsim,
+ prod: prod,
+ Product: Product,
+ profalar: profalar,
+ profline: profline,
+ profsurf: profsurf,
+ prop: prop,
+ Proportional: Proportional,
+ Proportion: Proportion,
+ propto: propto,
+ prsim: prsim,
+ prurel: prurel,
+ Pscr: Pscr,
+ pscr: pscr,
+ Psi: Psi,
+ psi: psi,
+ puncsp: puncsp,
+ Qfr: Qfr,
+ qfr: qfr,
+ qint: qint,
+ qopf: qopf,
+ Qopf: Qopf,
+ qprime: qprime,
+ Qscr: Qscr,
+ qscr: qscr,
+ quaternions: quaternions,
+ quatint: quatint,
+ quest: quest,
+ questeq: questeq,
+ quot: quot,
+ QUOT: QUOT,
+ rAarr: rAarr,
+ race: race,
+ Racute: Racute,
+ racute: racute,
+ radic: radic,
+ raemptyv: raemptyv,
+ rang: rang,
+ Rang: Rang,
+ rangd: rangd,
+ range: range,
+ rangle: rangle,
+ raquo: raquo,
+ rarrap: rarrap,
+ rarrb: rarrb,
+ rarrbfs: rarrbfs,
+ rarrc: rarrc,
+ rarr: rarr,
+ Rarr: Rarr,
+ rArr: rArr,
+ rarrfs: rarrfs,
+ rarrhk: rarrhk,
+ rarrlp: rarrlp,
+ rarrpl: rarrpl,
+ rarrsim: rarrsim,
+ Rarrtl: Rarrtl,
+ rarrtl: rarrtl,
+ rarrw: rarrw,
+ ratail: ratail,
+ rAtail: rAtail,
+ ratio: ratio,
+ rationals: rationals,
+ rbarr: rbarr,
+ rBarr: rBarr,
+ RBarr: RBarr,
+ rbbrk: rbbrk,
+ rbrace: rbrace,
+ rbrack: rbrack,
+ rbrke: rbrke,
+ rbrksld: rbrksld,
+ rbrkslu: rbrkslu,
+ Rcaron: Rcaron,
+ rcaron: rcaron,
+ Rcedil: Rcedil,
+ rcedil: rcedil,
+ rceil: rceil,
+ rcub: rcub,
+ Rcy: Rcy,
+ rcy: rcy,
+ rdca: rdca,
+ rdldhar: rdldhar,
+ rdquo: rdquo,
+ rdquor: rdquor,
+ rdsh: rdsh,
+ real: real,
+ realine: realine,
+ realpart: realpart,
+ reals: reals,
+ Re: Re,
+ rect: rect,
+ reg: reg,
+ REG: REG,
+ ReverseElement: ReverseElement,
+ ReverseEquilibrium: ReverseEquilibrium,
+ ReverseUpEquilibrium: ReverseUpEquilibrium,
+ rfisht: rfisht,
+ rfloor: rfloor,
+ rfr: rfr,
+ Rfr: Rfr,
+ rHar: rHar,
+ rhard: rhard,
+ rharu: rharu,
+ rharul: rharul,
+ Rho: Rho,
+ rho: rho,
+ rhov: rhov,
+ RightAngleBracket: RightAngleBracket,
+ RightArrowBar: RightArrowBar,
+ rightarrow: rightarrow,
+ RightArrow: RightArrow,
+ Rightarrow: Rightarrow,
+ RightArrowLeftArrow: RightArrowLeftArrow,
+ rightarrowtail: rightarrowtail,
+ RightCeiling: RightCeiling,
+ RightDoubleBracket: RightDoubleBracket,
+ RightDownTeeVector: RightDownTeeVector,
+ RightDownVectorBar: RightDownVectorBar,
+ RightDownVector: RightDownVector,
+ RightFloor: RightFloor,
+ rightharpoondown: rightharpoondown,
+ rightharpoonup: rightharpoonup,
+ rightleftarrows: rightleftarrows,
+ rightleftharpoons: rightleftharpoons,
+ rightrightarrows: rightrightarrows,
+ rightsquigarrow: rightsquigarrow,
+ RightTeeArrow: RightTeeArrow,
+ RightTee: RightTee,
+ RightTeeVector: RightTeeVector,
+ rightthreetimes: rightthreetimes,
+ RightTriangleBar: RightTriangleBar,
+ RightTriangle: RightTriangle,
+ RightTriangleEqual: RightTriangleEqual,
+ RightUpDownVector: RightUpDownVector,
+ RightUpTeeVector: RightUpTeeVector,
+ RightUpVectorBar: RightUpVectorBar,
+ RightUpVector: RightUpVector,
+ RightVectorBar: RightVectorBar,
+ RightVector: RightVector,
+ ring: ring,
+ risingdotseq: risingdotseq,
+ rlarr: rlarr,
+ rlhar: rlhar,
+ rlm: rlm,
+ rmoustache: rmoustache,
+ rmoust: rmoust,
+ rnmid: rnmid,
+ roang: roang,
+ roarr: roarr,
+ robrk: robrk,
+ ropar: ropar,
+ ropf: ropf,
+ Ropf: Ropf,
+ roplus: roplus,
+ rotimes: rotimes,
+ RoundImplies: RoundImplies,
+ rpar: rpar,
+ rpargt: rpargt,
+ rppolint: rppolint,
+ rrarr: rrarr,
+ Rrightarrow: Rrightarrow,
+ rsaquo: rsaquo,
+ rscr: rscr,
+ Rscr: Rscr,
+ rsh: rsh,
+ Rsh: Rsh,
+ rsqb: rsqb,
+ rsquo: rsquo,
+ rsquor: rsquor,
+ rthree: rthree,
+ rtimes: rtimes,
+ rtri: rtri,
+ rtrie: rtrie,
+ rtrif: rtrif,
+ rtriltri: rtriltri,
+ RuleDelayed: RuleDelayed,
+ ruluhar: ruluhar,
+ rx: rx,
+ Sacute: Sacute,
+ sacute: sacute,
+ sbquo: sbquo,
+ scap: scap,
+ Scaron: Scaron,
+ scaron: scaron,
+ Sc: Sc,
+ sc: sc,
+ sccue: sccue,
+ sce: sce,
+ scE: scE,
+ Scedil: Scedil,
+ scedil: scedil,
+ Scirc: Scirc,
+ scirc: scirc,
+ scnap: scnap,
+ scnE: scnE,
+ scnsim: scnsim,
+ scpolint: scpolint,
+ scsim: scsim,
+ Scy: Scy,
+ scy: scy,
+ sdotb: sdotb,
+ sdot: sdot,
+ sdote: sdote,
+ searhk: searhk,
+ searr: searr,
+ seArr: seArr,
+ searrow: searrow,
+ sect: sect,
+ semi: semi,
+ seswar: seswar,
+ setminus: setminus,
+ setmn: setmn,
+ sext: sext,
+ Sfr: Sfr,
+ sfr: sfr,
+ sfrown: sfrown,
+ sharp: sharp,
+ SHCHcy: SHCHcy,
+ shchcy: shchcy,
+ SHcy: SHcy,
+ shcy: shcy,
+ ShortDownArrow: ShortDownArrow,
+ ShortLeftArrow: ShortLeftArrow,
+ shortmid: shortmid,
+ shortparallel: shortparallel,
+ ShortRightArrow: ShortRightArrow,
+ ShortUpArrow: ShortUpArrow,
+ shy: shy,
+ Sigma: Sigma,
+ sigma: sigma,
+ sigmaf: sigmaf,
+ sigmav: sigmav,
+ sim: sim,
+ simdot: simdot,
+ sime: sime,
+ simeq: simeq,
+ simg: simg,
+ simgE: simgE,
+ siml: siml,
+ simlE: simlE,
+ simne: simne,
+ simplus: simplus,
+ simrarr: simrarr,
+ slarr: slarr,
+ SmallCircle: SmallCircle,
+ smallsetminus: smallsetminus,
+ smashp: smashp,
+ smeparsl: smeparsl,
+ smid: smid,
+ smile: smile,
+ smt: smt,
+ smte: smte,
+ smtes: smtes,
+ SOFTcy: SOFTcy,
+ softcy: softcy,
+ solbar: solbar,
+ solb: solb,
+ sol: sol,
+ Sopf: Sopf,
+ sopf: sopf,
+ spades: spades,
+ spadesuit: spadesuit,
+ spar: spar,
+ sqcap: sqcap,
+ sqcaps: sqcaps,
+ sqcup: sqcup,
+ sqcups: sqcups,
+ Sqrt: Sqrt,
+ sqsub: sqsub,
+ sqsube: sqsube,
+ sqsubset: sqsubset,
+ sqsubseteq: sqsubseteq,
+ sqsup: sqsup,
+ sqsupe: sqsupe,
+ sqsupset: sqsupset,
+ sqsupseteq: sqsupseteq,
+ square: square,
+ Square: Square,
+ SquareIntersection: SquareIntersection,
+ SquareSubset: SquareSubset,
+ SquareSubsetEqual: SquareSubsetEqual,
+ SquareSuperset: SquareSuperset,
+ SquareSupersetEqual: SquareSupersetEqual,
+ SquareUnion: SquareUnion,
+ squarf: squarf,
+ squ: squ,
+ squf: squf,
+ srarr: srarr,
+ Sscr: Sscr,
+ sscr: sscr,
+ ssetmn: ssetmn,
+ ssmile: ssmile,
+ sstarf: sstarf,
+ Star: Star,
+ star: star,
+ starf: starf,
+ straightepsilon: straightepsilon,
+ straightphi: straightphi,
+ strns: strns,
+ sub: sub,
+ Sub: Sub,
+ subdot: subdot,
+ subE: subE,
+ sube: sube,
+ subedot: subedot,
+ submult: submult,
+ subnE: subnE,
+ subne: subne,
+ subplus: subplus,
+ subrarr: subrarr,
+ subset: subset,
+ Subset: Subset,
+ subseteq: subseteq,
+ subseteqq: subseteqq,
+ SubsetEqual: SubsetEqual,
+ subsetneq: subsetneq,
+ subsetneqq: subsetneqq,
+ subsim: subsim,
+ subsub: subsub,
+ subsup: subsup,
+ succapprox: succapprox,
+ succ: succ,
+ succcurlyeq: succcurlyeq,
+ Succeeds: Succeeds,
+ SucceedsEqual: SucceedsEqual,
+ SucceedsSlantEqual: SucceedsSlantEqual,
+ SucceedsTilde: SucceedsTilde,
+ succeq: succeq,
+ succnapprox: succnapprox,
+ succneqq: succneqq,
+ succnsim: succnsim,
+ succsim: succsim,
+ SuchThat: SuchThat,
+ sum: sum,
+ Sum: Sum,
+ sung: sung,
+ sup1: sup1,
+ sup2: sup2,
+ sup3: sup3,
+ sup: sup,
+ Sup: Sup,
+ supdot: supdot,
+ supdsub: supdsub,
+ supE: supE,
+ supe: supe,
+ supedot: supedot,
+ Superset: Superset,
+ SupersetEqual: SupersetEqual,
+ suphsol: suphsol,
+ suphsub: suphsub,
+ suplarr: suplarr,
+ supmult: supmult,
+ supnE: supnE,
+ supne: supne,
+ supplus: supplus,
+ supset: supset,
+ Supset: Supset,
+ supseteq: supseteq,
+ supseteqq: supseteqq,
+ supsetneq: supsetneq,
+ supsetneqq: supsetneqq,
+ supsim: supsim,
+ supsub: supsub,
+ supsup: supsup,
+ swarhk: swarhk,
+ swarr: swarr,
+ swArr: swArr,
+ swarrow: swarrow,
+ swnwar: swnwar,
+ szlig: szlig,
+ Tab: Tab,
+ target: target,
+ Tau: Tau,
+ tau: tau,
+ tbrk: tbrk,
+ Tcaron: Tcaron,
+ tcaron: tcaron,
+ Tcedil: Tcedil,
+ tcedil: tcedil,
+ Tcy: Tcy,
+ tcy: tcy,
+ tdot: tdot,
+ telrec: telrec,
+ Tfr: Tfr,
+ tfr: tfr,
+ there4: there4,
+ therefore: therefore,
+ Therefore: Therefore,
+ Theta: Theta,
+ theta: theta,
+ thetasym: thetasym,
+ thetav: thetav,
+ thickapprox: thickapprox,
+ thicksim: thicksim,
+ ThickSpace: ThickSpace,
+ ThinSpace: ThinSpace,
+ thinsp: thinsp,
+ thkap: thkap,
+ thksim: thksim,
+ THORN: THORN,
+ thorn: thorn,
+ tilde: tilde,
+ Tilde: Tilde,
+ TildeEqual: TildeEqual,
+ TildeFullEqual: TildeFullEqual,
+ TildeTilde: TildeTilde,
+ timesbar: timesbar,
+ timesb: timesb,
+ times: times,
+ timesd: timesd,
+ tint: tint,
+ toea: toea,
+ topbot: topbot,
+ topcir: topcir,
+ top: top,
+ Topf: Topf,
+ topf: topf,
+ topfork: topfork,
+ tosa: tosa,
+ tprime: tprime,
+ trade: trade,
+ TRADE: TRADE,
+ triangle: triangle,
+ triangledown: triangledown,
+ triangleleft: triangleleft,
+ trianglelefteq: trianglelefteq,
+ triangleq: triangleq,
+ triangleright: triangleright,
+ trianglerighteq: trianglerighteq,
+ tridot: tridot,
+ trie: trie,
+ triminus: triminus,
+ TripleDot: TripleDot,
+ triplus: triplus,
+ trisb: trisb,
+ tritime: tritime,
+ trpezium: trpezium,
+ Tscr: Tscr,
+ tscr: tscr,
+ TScy: TScy,
+ tscy: tscy,
+ TSHcy: TSHcy,
+ tshcy: tshcy,
+ Tstrok: Tstrok,
+ tstrok: tstrok,
+ twixt: twixt,
+ twoheadleftarrow: twoheadleftarrow,
+ twoheadrightarrow: twoheadrightarrow,
+ Uacute: Uacute,
+ uacute: uacute,
+ uarr: uarr,
+ Uarr: Uarr,
+ uArr: uArr,
+ Uarrocir: Uarrocir,
+ Ubrcy: Ubrcy,
+ ubrcy: ubrcy,
+ Ubreve: Ubreve,
+ ubreve: ubreve,
+ Ucirc: Ucirc,
+ ucirc: ucirc,
+ Ucy: Ucy,
+ ucy: ucy,
+ udarr: udarr,
+ Udblac: Udblac,
+ udblac: udblac,
+ udhar: udhar,
+ ufisht: ufisht,
+ Ufr: Ufr,
+ ufr: ufr,
+ Ugrave: Ugrave,
+ ugrave: ugrave,
+ uHar: uHar,
+ uharl: uharl,
+ uharr: uharr,
+ uhblk: uhblk,
+ ulcorn: ulcorn,
+ ulcorner: ulcorner,
+ ulcrop: ulcrop,
+ ultri: ultri,
+ Umacr: Umacr,
+ umacr: umacr,
+ uml: uml,
+ UnderBar: UnderBar,
+ UnderBrace: UnderBrace,
+ UnderBracket: UnderBracket,
+ UnderParenthesis: UnderParenthesis,
+ Union: Union,
+ UnionPlus: UnionPlus,
+ Uogon: Uogon,
+ uogon: uogon,
+ Uopf: Uopf,
+ uopf: uopf,
+ UpArrowBar: UpArrowBar,
+ uparrow: uparrow,
+ UpArrow: UpArrow,
+ Uparrow: Uparrow,
+ UpArrowDownArrow: UpArrowDownArrow,
+ updownarrow: updownarrow,
+ UpDownArrow: UpDownArrow,
+ Updownarrow: Updownarrow,
+ UpEquilibrium: UpEquilibrium,
+ upharpoonleft: upharpoonleft,
+ upharpoonright: upharpoonright,
+ uplus: uplus,
+ UpperLeftArrow: UpperLeftArrow,
+ UpperRightArrow: UpperRightArrow,
+ upsi: upsi,
+ Upsi: Upsi,
+ upsih: upsih,
+ Upsilon: Upsilon,
+ upsilon: upsilon,
+ UpTeeArrow: UpTeeArrow,
+ UpTee: UpTee,
+ upuparrows: upuparrows,
+ urcorn: urcorn,
+ urcorner: urcorner,
+ urcrop: urcrop,
+ Uring: Uring,
+ uring: uring,
+ urtri: urtri,
+ Uscr: Uscr,
+ uscr: uscr,
+ utdot: utdot,
+ Utilde: Utilde,
+ utilde: utilde,
+ utri: utri,
+ utrif: utrif,
+ uuarr: uuarr,
+ Uuml: Uuml,
+ uuml: uuml,
+ uwangle: uwangle,
+ vangrt: vangrt,
+ varepsilon: varepsilon,
+ varkappa: varkappa,
+ varnothing: varnothing,
+ varphi: varphi,
+ varpi: varpi,
+ varpropto: varpropto,
+ varr: varr,
+ vArr: vArr,
+ varrho: varrho,
+ varsigma: varsigma,
+ varsubsetneq: varsubsetneq,
+ varsubsetneqq: varsubsetneqq,
+ varsupsetneq: varsupsetneq,
+ varsupsetneqq: varsupsetneqq,
+ vartheta: vartheta,
+ vartriangleleft: vartriangleleft,
+ vartriangleright: vartriangleright,
+ vBar: vBar,
+ Vbar: Vbar,
+ vBarv: vBarv,
+ Vcy: Vcy,
+ vcy: vcy,
+ vdash: vdash,
+ vDash: vDash,
+ Vdash: Vdash,
+ VDash: VDash,
+ Vdashl: Vdashl,
+ veebar: veebar,
+ vee: vee,
+ Vee: Vee,
+ veeeq: veeeq,
+ vellip: vellip,
+ verbar: verbar,
+ Verbar: Verbar,
+ vert: vert,
+ Vert: Vert,
+ VerticalBar: VerticalBar,
+ VerticalLine: VerticalLine,
+ VerticalSeparator: VerticalSeparator,
+ VerticalTilde: VerticalTilde,
+ VeryThinSpace: VeryThinSpace,
+ Vfr: Vfr,
+ vfr: vfr,
+ vltri: vltri,
+ vnsub: vnsub,
+ vnsup: vnsup,
+ Vopf: Vopf,
+ vopf: vopf,
+ vprop: vprop,
+ vrtri: vrtri,
+ Vscr: Vscr,
+ vscr: vscr,
+ vsubnE: vsubnE,
+ vsubne: vsubne,
+ vsupnE: vsupnE,
+ vsupne: vsupne,
+ Vvdash: Vvdash,
+ vzigzag: vzigzag,
+ Wcirc: Wcirc,
+ wcirc: wcirc,
+ wedbar: wedbar,
+ wedge: wedge,
+ Wedge: Wedge,
+ wedgeq: wedgeq,
+ weierp: weierp,
+ Wfr: Wfr,
+ wfr: wfr,
+ Wopf: Wopf,
+ wopf: wopf,
+ wp: wp,
+ wr: wr,
+ wreath: wreath,
+ Wscr: Wscr,
+ wscr: wscr,
+ xcap: xcap,
+ xcirc: xcirc,
+ xcup: xcup,
+ xdtri: xdtri,
+ Xfr: Xfr,
+ xfr: xfr,
+ xharr: xharr,
+ xhArr: xhArr,
+ Xi: Xi,
+ xi: xi,
+ xlarr: xlarr,
+ xlArr: xlArr,
+ xmap: xmap,
+ xnis: xnis,
+ xodot: xodot,
+ Xopf: Xopf,
+ xopf: xopf,
+ xoplus: xoplus,
+ xotime: xotime,
+ xrarr: xrarr,
+ xrArr: xrArr,
+ Xscr: Xscr,
+ xscr: xscr,
+ xsqcup: xsqcup,
+ xuplus: xuplus,
+ xutri: xutri,
+ xvee: xvee,
+ xwedge: xwedge,
+ Yacute: Yacute,
+ yacute: yacute,
+ YAcy: YAcy,
+ yacy: yacy,
+ Ycirc: Ycirc,
+ ycirc: ycirc,
+ Ycy: Ycy,
+ ycy: ycy,
+ yen: yen,
+ Yfr: Yfr,
+ yfr: yfr,
+ YIcy: YIcy,
+ yicy: yicy,
+ Yopf: Yopf,
+ yopf: yopf,
+ Yscr: Yscr,
+ yscr: yscr,
+ YUcy: YUcy,
+ yucy: yucy,
+ yuml: yuml,
+ Yuml: Yuml,
+ Zacute: Zacute,
+ zacute: zacute,
+ Zcaron: Zcaron,
+ zcaron: zcaron,
+ Zcy: Zcy,
+ zcy: zcy,
+ Zdot: Zdot,
+ zdot: zdot,
+ zeetrf: zeetrf,
+ ZeroWidthSpace: ZeroWidthSpace,
+ Zeta: Zeta,
+ zeta: zeta,
+ zfr: zfr,
+ Zfr: Zfr,
+ ZHcy: ZHcy,
+ zhcy: zhcy,
+ zigrarr: zigrarr,
+ zopf: zopf,
+ Zopf: Zopf,
+ Zscr: Zscr,
+ zscr: zscr,
+ zwj: zwj,
+ zwnj: zwnj,
+ 'default': entities
+ });
+
+ var Aacute$1 = "Á";
+ var aacute$1 = "á";
+ var Acirc$1 = "Â";
+ var acirc$1 = "â";
+ var acute$1 = "´";
+ var AElig$1 = "Æ";
+ var aelig$1 = "æ";
+ var Agrave$1 = "À";
+ var agrave$1 = "à";
+ var amp$1 = "&";
+ var AMP$1 = "&";
+ var Aring$1 = "Å";
+ var aring$1 = "å";
+ var Atilde$1 = "Ã";
+ var atilde$1 = "ã";
+ var Auml$1 = "Ä";
+ var auml$1 = "ä";
+ var brvbar$1 = "¦";
+ var Ccedil$1 = "Ç";
+ var ccedil$1 = "ç";
+ var cedil$1 = "¸";
+ var cent$1 = "¢";
+ var copy$1 = "©";
+ var COPY$1 = "©";
+ var curren$1 = "¤";
+ var deg$1 = "°";
+ var divide$1 = "÷";
+ var Eacute$1 = "É";
+ var eacute$1 = "é";
+ var Ecirc$1 = "Ê";
+ var ecirc$1 = "ê";
+ var Egrave$1 = "È";
+ var egrave$1 = "è";
+ var ETH$1 = "Ð";
+ var eth$1 = "ð";
+ var Euml$1 = "Ë";
+ var euml$1 = "ë";
+ var frac12$1 = "½";
+ var frac14$1 = "¼";
+ var frac34$1 = "¾";
+ var gt$1 = ">";
+ var GT$1 = ">";
+ var Iacute$1 = "Í";
+ var iacute$1 = "í";
+ var Icirc$1 = "Î";
+ var icirc$1 = "î";
+ var iexcl$1 = "¡";
+ var Igrave$1 = "Ì";
+ var igrave$1 = "ì";
+ var iquest$1 = "¿";
+ var Iuml$1 = "Ï";
+ var iuml$1 = "ï";
+ var laquo$1 = "«";
+ var lt$1 = "<";
+ var LT$1 = "<";
+ var macr$1 = "¯";
+ var micro$1 = "µ";
+ var middot$1 = "·";
+ var nbsp$1 = " ";
+ var not$1 = "¬";
+ var Ntilde$1 = "Ñ";
+ var ntilde$1 = "ñ";
+ var Oacute$1 = "Ó";
+ var oacute$1 = "ó";
+ var Ocirc$1 = "Ô";
+ var ocirc$1 = "ô";
+ var Ograve$1 = "Ò";
+ var ograve$1 = "ò";
+ var ordf$1 = "ª";
+ var ordm$1 = "º";
+ var Oslash$1 = "Ø";
+ var oslash$1 = "ø";
+ var Otilde$1 = "Õ";
+ var otilde$1 = "õ";
+ var Ouml$1 = "Ö";
+ var ouml$1 = "ö";
+ var para$1 = "¶";
+ var plusmn$1 = "±";
+ var pound$1 = "£";
+ var quot$1 = "\"";
+ var QUOT$1 = "\"";
+ var raquo$1 = "»";
+ var reg$1 = "®";
+ var REG$1 = "®";
+ var sect$1 = "§";
+ var shy$1 = "";
+ var sup1$1 = "¹";
+ var sup2$1 = "²";
+ var sup3$1 = "³";
+ var szlig$1 = "ß";
+ var THORN$1 = "Þ";
+ var thorn$1 = "þ";
+ var times$1 = "×";
+ var Uacute$1 = "Ú";
+ var uacute$1 = "ú";
+ var Ucirc$1 = "Û";
+ var ucirc$1 = "û";
+ var Ugrave$1 = "Ù";
+ var ugrave$1 = "ù";
+ var uml$1 = "¨";
+ var Uuml$1 = "Ü";
+ var uuml$1 = "ü";
+ var Yacute$1 = "Ý";
+ var yacute$1 = "ý";
+ var yen$1 = "¥";
+ var yuml$1 = "ÿ";
+ var legacy = {
+ Aacute: Aacute$1,
+ aacute: aacute$1,
+ Acirc: Acirc$1,
+ acirc: acirc$1,
+ acute: acute$1,
+ AElig: AElig$1,
+ aelig: aelig$1,
+ Agrave: Agrave$1,
+ agrave: agrave$1,
+ amp: amp$1,
+ AMP: AMP$1,
+ Aring: Aring$1,
+ aring: aring$1,
+ Atilde: Atilde$1,
+ atilde: atilde$1,
+ Auml: Auml$1,
+ auml: auml$1,
+ brvbar: brvbar$1,
+ Ccedil: Ccedil$1,
+ ccedil: ccedil$1,
+ cedil: cedil$1,
+ cent: cent$1,
+ copy: copy$1,
+ COPY: COPY$1,
+ curren: curren$1,
+ deg: deg$1,
+ divide: divide$1,
+ Eacute: Eacute$1,
+ eacute: eacute$1,
+ Ecirc: Ecirc$1,
+ ecirc: ecirc$1,
+ Egrave: Egrave$1,
+ egrave: egrave$1,
+ ETH: ETH$1,
+ eth: eth$1,
+ Euml: Euml$1,
+ euml: euml$1,
+ frac12: frac12$1,
+ frac14: frac14$1,
+ frac34: frac34$1,
+ gt: gt$1,
+ GT: GT$1,
+ Iacute: Iacute$1,
+ iacute: iacute$1,
+ Icirc: Icirc$1,
+ icirc: icirc$1,
+ iexcl: iexcl$1,
+ Igrave: Igrave$1,
+ igrave: igrave$1,
+ iquest: iquest$1,
+ Iuml: Iuml$1,
+ iuml: iuml$1,
+ laquo: laquo$1,
+ lt: lt$1,
+ LT: LT$1,
+ macr: macr$1,
+ micro: micro$1,
+ middot: middot$1,
+ nbsp: nbsp$1,
+ not: not$1,
+ Ntilde: Ntilde$1,
+ ntilde: ntilde$1,
+ Oacute: Oacute$1,
+ oacute: oacute$1,
+ Ocirc: Ocirc$1,
+ ocirc: ocirc$1,
+ Ograve: Ograve$1,
+ ograve: ograve$1,
+ ordf: ordf$1,
+ ordm: ordm$1,
+ Oslash: Oslash$1,
+ oslash: oslash$1,
+ Otilde: Otilde$1,
+ otilde: otilde$1,
+ Ouml: Ouml$1,
+ ouml: ouml$1,
+ para: para$1,
+ plusmn: plusmn$1,
+ pound: pound$1,
+ quot: quot$1,
+ QUOT: QUOT$1,
+ raquo: raquo$1,
+ reg: reg$1,
+ REG: REG$1,
+ sect: sect$1,
+ shy: shy$1,
+ sup1: sup1$1,
+ sup2: sup2$1,
+ sup3: sup3$1,
+ szlig: szlig$1,
+ THORN: THORN$1,
+ thorn: thorn$1,
+ times: times$1,
+ Uacute: Uacute$1,
+ uacute: uacute$1,
+ Ucirc: Ucirc$1,
+ ucirc: ucirc$1,
+ Ugrave: Ugrave$1,
+ ugrave: ugrave$1,
+ uml: uml$1,
+ Uuml: Uuml$1,
+ uuml: uuml$1,
+ Yacute: Yacute$1,
+ yacute: yacute$1,
+ yen: yen$1,
+ yuml: yuml$1
+ };
+
+ var legacy$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ Aacute: Aacute$1,
+ aacute: aacute$1,
+ Acirc: Acirc$1,
+ acirc: acirc$1,
+ acute: acute$1,
+ AElig: AElig$1,
+ aelig: aelig$1,
+ Agrave: Agrave$1,
+ agrave: agrave$1,
+ amp: amp$1,
+ AMP: AMP$1,
+ Aring: Aring$1,
+ aring: aring$1,
+ Atilde: Atilde$1,
+ atilde: atilde$1,
+ Auml: Auml$1,
+ auml: auml$1,
+ brvbar: brvbar$1,
+ Ccedil: Ccedil$1,
+ ccedil: ccedil$1,
+ cedil: cedil$1,
+ cent: cent$1,
+ copy: copy$1,
+ COPY: COPY$1,
+ curren: curren$1,
+ deg: deg$1,
+ divide: divide$1,
+ Eacute: Eacute$1,
+ eacute: eacute$1,
+ Ecirc: Ecirc$1,
+ ecirc: ecirc$1,
+ Egrave: Egrave$1,
+ egrave: egrave$1,
+ ETH: ETH$1,
+ eth: eth$1,
+ Euml: Euml$1,
+ euml: euml$1,
+ frac12: frac12$1,
+ frac14: frac14$1,
+ frac34: frac34$1,
+ gt: gt$1,
+ GT: GT$1,
+ Iacute: Iacute$1,
+ iacute: iacute$1,
+ Icirc: Icirc$1,
+ icirc: icirc$1,
+ iexcl: iexcl$1,
+ Igrave: Igrave$1,
+ igrave: igrave$1,
+ iquest: iquest$1,
+ Iuml: Iuml$1,
+ iuml: iuml$1,
+ laquo: laquo$1,
+ lt: lt$1,
+ LT: LT$1,
+ macr: macr$1,
+ micro: micro$1,
+ middot: middot$1,
+ nbsp: nbsp$1,
+ not: not$1,
+ Ntilde: Ntilde$1,
+ ntilde: ntilde$1,
+ Oacute: Oacute$1,
+ oacute: oacute$1,
+ Ocirc: Ocirc$1,
+ ocirc: ocirc$1,
+ Ograve: Ograve$1,
+ ograve: ograve$1,
+ ordf: ordf$1,
+ ordm: ordm$1,
+ Oslash: Oslash$1,
+ oslash: oslash$1,
+ Otilde: Otilde$1,
+ otilde: otilde$1,
+ Ouml: Ouml$1,
+ ouml: ouml$1,
+ para: para$1,
+ plusmn: plusmn$1,
+ pound: pound$1,
+ quot: quot$1,
+ QUOT: QUOT$1,
+ raquo: raquo$1,
+ reg: reg$1,
+ REG: REG$1,
+ sect: sect$1,
+ shy: shy$1,
+ sup1: sup1$1,
+ sup2: sup2$1,
+ sup3: sup3$1,
+ szlig: szlig$1,
+ THORN: THORN$1,
+ thorn: thorn$1,
+ times: times$1,
+ Uacute: Uacute$1,
+ uacute: uacute$1,
+ Ucirc: Ucirc$1,
+ ucirc: ucirc$1,
+ Ugrave: Ugrave$1,
+ ugrave: ugrave$1,
+ uml: uml$1,
+ Uuml: Uuml$1,
+ uuml: uuml$1,
+ Yacute: Yacute$1,
+ yacute: yacute$1,
+ yen: yen$1,
+ yuml: yuml$1,
+ 'default': legacy
+ });
+
+ var amp$2 = "&";
+ var apos$1 = "'";
+ var gt$2 = ">";
+ var lt$2 = "<";
+ var quot$2 = "\"";
+ var xml = {
+ amp: amp$2,
+ apos: apos$1,
+ gt: gt$2,
+ lt: lt$2,
+ quot: quot$2
+ };
+
+ var xml$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ amp: amp$2,
+ apos: apos$1,
+ gt: gt$2,
+ lt: lt$2,
+ quot: quot$2,
+ 'default': xml
+ });
+
+ var decode = {
+ "0": 65533,
+ "128": 8364,
+ "130": 8218,
+ "131": 402,
+ "132": 8222,
+ "133": 8230,
+ "134": 8224,
+ "135": 8225,
+ "136": 710,
+ "137": 8240,
+ "138": 352,
+ "139": 8249,
+ "140": 338,
+ "142": 381,
+ "145": 8216,
+ "146": 8217,
+ "147": 8220,
+ "148": 8221,
+ "149": 8226,
+ "150": 8211,
+ "151": 8212,
+ "152": 732,
+ "153": 8482,
+ "154": 353,
+ "155": 8250,
+ "156": 339,
+ "158": 382,
+ "159": 376
+ };
+
+ var decode$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': decode
+ });
+
+ var require$$0 = getCjsExportFromNamespace(decode$1);
+
+ var decode_codepoint = createCommonjsModule(function (module, exports) {
+ var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+ };
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var decode_json_1 = __importDefault(require$$0);
+ // modified version of https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119
+ function decodeCodePoint(codePoint) {
+ if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {
+ return "\uFFFD";
+ }
+ if (codePoint in decode_json_1.default) {
+ codePoint = decode_json_1.default[codePoint];
+ }
+ var output = "";
+ if (codePoint > 0xffff) {
+ codePoint -= 0x10000;
+ output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);
+ codePoint = 0xdc00 | (codePoint & 0x3ff);
+ }
+ output += String.fromCharCode(codePoint);
+ return output;
+ }
+ exports.default = decodeCodePoint;
+ });
+
+ unwrapExports(decode_codepoint);
+
+ var require$$1 = getCjsExportFromNamespace(entities$1);
+
+ var require$$1$1 = getCjsExportFromNamespace(legacy$1);
+
+ var require$$0$1 = getCjsExportFromNamespace(xml$1);
+
+ var decode$2 = createCommonjsModule(function (module, exports) {
+ var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+ };
+ Object.defineProperty(exports, "__esModule", { value: true });
+ exports.decodeHTML = exports.decodeHTMLStrict = exports.decodeXML = void 0;
+ var entities_json_1 = __importDefault(require$$1);
+ var legacy_json_1 = __importDefault(require$$1$1);
+ var xml_json_1 = __importDefault(require$$0$1);
+ var decode_codepoint_1 = __importDefault(decode_codepoint);
+ exports.decodeXML = getStrictDecoder(xml_json_1.default);
+ exports.decodeHTMLStrict = getStrictDecoder(entities_json_1.default);
+ function getStrictDecoder(map) {
+ var keys = Object.keys(map).join("|");
+ var replace = getReplacer(map);
+ keys += "|#[xX][\\da-fA-F]+|#\\d+";
+ var re = new RegExp("&(?:" + keys + ");", "g");
+ return function (str) { return String(str).replace(re, replace); };
+ }
+ var sorter = function (a, b) { return (a < b ? 1 : -1); };
+ exports.decodeHTML = (function () {
+ var legacy = Object.keys(legacy_json_1.default).sort(sorter);
+ var keys = Object.keys(entities_json_1.default).sort(sorter);
+ for (var i = 0, j = 0; i < keys.length; i++) {
+ if (legacy[j] === keys[i]) {
+ keys[i] += ";?";
+ j++;
+ }
+ else {
+ keys[i] += ";";
+ }
+ }
+ var re = new RegExp("&(?:" + keys.join("|") + "|#[xX][\\da-fA-F]+;?|#\\d+;?)", "g");
+ var replace = getReplacer(entities_json_1.default);
+ function replacer(str) {
+ if (str.substr(-1) !== ";")
+ str += ";";
+ return replace(str);
+ }
+ //TODO consider creating a merged map
+ return function (str) { return String(str).replace(re, replacer); };
+ })();
+ function getReplacer(map) {
+ return function replace(str) {
+ if (str.charAt(1) === "#") {
+ var secondChar = str.charAt(2);
+ if (secondChar === "X" || secondChar === "x") {
+ return decode_codepoint_1.default(parseInt(str.substr(3), 16));
+ }
+ return decode_codepoint_1.default(parseInt(str.substr(2), 10));
+ }
+ return map[str.slice(1, -1)];
+ };
+ }
+ });
+
+ unwrapExports(decode$2);
+ var decode_1 = decode$2.decodeHTML;
+ var decode_2 = decode$2.decodeHTMLStrict;
+ var decode_3 = decode$2.decodeXML;
+
+ var encode$1 = createCommonjsModule(function (module, exports) {
+ var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+ };
+ Object.defineProperty(exports, "__esModule", { value: true });
+ exports.escape = exports.encodeHTML = exports.encodeXML = void 0;
+ var xml_json_1 = __importDefault(require$$0$1);
+ var inverseXML = getInverseObj(xml_json_1.default);
+ var xmlReplacer = getInverseReplacer(inverseXML);
+ exports.encodeXML = getInverse(inverseXML, xmlReplacer);
+ var entities_json_1 = __importDefault(require$$1);
+ var inverseHTML = getInverseObj(entities_json_1.default);
+ var htmlReplacer = getInverseReplacer(inverseHTML);
+ exports.encodeHTML = getInverse(inverseHTML, htmlReplacer);
+ function getInverseObj(obj) {
+ return Object.keys(obj)
+ .sort()
+ .reduce(function (inverse, name) {
+ inverse[obj[name]] = "&" + name + ";";
+ return inverse;
+ }, {});
+ }
+ function getInverseReplacer(inverse) {
+ var single = [];
+ var multiple = [];
+ for (var _i = 0, _a = Object.keys(inverse); _i < _a.length; _i++) {
+ var k = _a[_i];
+ if (k.length === 1) {
+ // Add value to single array
+ single.push("\\" + k);
+ }
+ else {
+ // Add value to multiple array
+ multiple.push(k);
+ }
+ }
+ // Add ranges to single characters.
+ single.sort();
+ for (var start = 0; start < single.length - 1; start++) {
+ // Find the end of a run of characters
+ var end = start;
+ while (end < single.length - 1 &&
+ single[end].charCodeAt(1) + 1 === single[end + 1].charCodeAt(1)) {
+ end += 1;
+ }
+ var count = 1 + end - start;
+ // We want to replace at least three characters
+ if (count < 3)
+ continue;
+ single.splice(start, count, single[start] + "-" + single[end]);
+ }
+ multiple.unshift("[" + single.join("") + "]");
+ return new RegExp(multiple.join("|"), "g");
+ }
+ var reNonASCII = /(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g;
+ function singleCharReplacer(c) {
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ return "" + c.codePointAt(0).toString(16).toUpperCase() + ";";
+ }
+ function getInverse(inverse, re) {
+ return function (data) {
+ return data
+ .replace(re, function (name) { return inverse[name]; })
+ .replace(reNonASCII, singleCharReplacer);
+ };
+ }
+ var reXmlChars = getInverseReplacer(inverseXML);
+ function escape(data) {
+ return data
+ .replace(reXmlChars, singleCharReplacer)
+ .replace(reNonASCII, singleCharReplacer);
+ }
+ exports.escape = escape;
+ });
+
+ unwrapExports(encode$1);
+ var encode_1$1 = encode$1.escape;
+ var encode_2 = encode$1.encodeHTML;
+ var encode_3 = encode$1.encodeXML;
+
+ var lib = createCommonjsModule(function (module, exports) {
+ Object.defineProperty(exports, "__esModule", { value: true });
+ exports.encode = exports.decodeStrict = exports.decode = void 0;
+
+
+ /**
+ * Decodes a string with entities.
+ *
+ * @param data String to decode.
+ * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.
+ */
+ function decode(data, level) {
+ return (!level || level <= 0 ? decode$2.decodeXML : decode$2.decodeHTML)(data);
+ }
+ exports.decode = decode;
+ /**
+ * Decodes a string with entities. Does not allow missing trailing semicolons for entities.
+ *
+ * @param data String to decode.
+ * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.
+ */
+ function decodeStrict(data, level) {
+ return (!level || level <= 0 ? decode$2.decodeXML : decode$2.decodeHTMLStrict)(data);
+ }
+ exports.decodeStrict = decodeStrict;
+ /**
+ * Encodes a string with entities.
+ *
+ * @param data String to encode.
+ * @param level Optional level to encode at. 0 = XML, 1 = HTML. Default is 0.
+ */
+ function encode(data, level) {
+ return (!level || level <= 0 ? encode$1.encodeXML : encode$1.encodeHTML)(data);
+ }
+ exports.encode = encode;
+ var encode_2 = encode$1;
+ Object.defineProperty(exports, "encodeXML", { enumerable: true, get: function () { return encode_2.encodeXML; } });
+ Object.defineProperty(exports, "encodeHTML", { enumerable: true, get: function () { return encode_2.encodeHTML; } });
+ Object.defineProperty(exports, "escape", { enumerable: true, get: function () { return encode_2.escape; } });
+ // Legacy aliases
+ Object.defineProperty(exports, "encodeHTML4", { enumerable: true, get: function () { return encode_2.encodeHTML; } });
+ Object.defineProperty(exports, "encodeHTML5", { enumerable: true, get: function () { return encode_2.encodeHTML; } });
+ var decode_2 = decode$2;
+ Object.defineProperty(exports, "decodeXML", { enumerable: true, get: function () { return decode_2.decodeXML; } });
+ Object.defineProperty(exports, "decodeHTML", { enumerable: true, get: function () { return decode_2.decodeHTML; } });
+ Object.defineProperty(exports, "decodeHTMLStrict", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });
+ // Legacy aliases
+ Object.defineProperty(exports, "decodeHTML4", { enumerable: true, get: function () { return decode_2.decodeHTML; } });
+ Object.defineProperty(exports, "decodeHTML5", { enumerable: true, get: function () { return decode_2.decodeHTML; } });
+ Object.defineProperty(exports, "decodeHTML4Strict", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });
+ Object.defineProperty(exports, "decodeHTML5Strict", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });
+ Object.defineProperty(exports, "decodeXMLStrict", { enumerable: true, get: function () { return decode_2.decodeXML; } });
+ });
+
+ unwrapExports(lib);
+ var lib_1 = lib.encode;
+ var lib_2 = lib.decodeStrict;
+ var lib_3 = lib.decode;
+ var lib_4 = lib.encodeXML;
+ var lib_5 = lib.encodeHTML;
+ var lib_6 = lib.encodeHTML4;
+ var lib_7 = lib.encodeHTML5;
+ var lib_8 = lib.decodeXML;
+ var lib_9 = lib.decodeHTML;
+ var lib_10 = lib.decodeHTMLStrict;
+ var lib_11 = lib.decodeHTML4;
+ var lib_12 = lib.decodeHTML5;
+ var lib_13 = lib.decodeHTML4Strict;
+ var lib_14 = lib.decodeHTML5Strict;
+ var lib_15 = lib.decodeXMLStrict;
+
+ var C_BACKSLASH = 92;
+
+ var ENTITY = "&(?:#x[a-f0-9]{1,6}|#[0-9]{1,7}|[a-z][a-z0-9]{1,31});";
+
+ var TAGNAME = "[A-Za-z][A-Za-z0-9-]*";
+ var ATTRIBUTENAME = "[a-zA-Z_:][a-zA-Z0-9:._-]*";
+ var UNQUOTEDVALUE = "[^\"'=<>`\\x00-\\x20]+";
+ var SINGLEQUOTEDVALUE = "'[^']*'";
+ var DOUBLEQUOTEDVALUE = '"[^"]*"';
+ var ATTRIBUTEVALUE =
+ "(?:" +
+ UNQUOTEDVALUE +
+ "|" +
+ SINGLEQUOTEDVALUE +
+ "|" +
+ DOUBLEQUOTEDVALUE +
+ ")";
+ var ATTRIBUTEVALUESPEC = "(?:" + "\\s*=" + "\\s*" + ATTRIBUTEVALUE + ")";
+ var ATTRIBUTE = "(?:" + "\\s+" + ATTRIBUTENAME + ATTRIBUTEVALUESPEC + "?)";
+ var OPENTAG = "<" + TAGNAME + ATTRIBUTE + "*" + "\\s*/?>";
+ var CLOSETAG = "" + TAGNAME + "\\s*[>]";
+ var HTMLCOMMENT = "|";
+ var PROCESSINGINSTRUCTION = "[<][?][\\s\\S]*?[?][>]";
+ var DECLARATION = "]*>";
+ var CDATA = "";
+ var HTMLTAG =
+ "(?:" +
+ OPENTAG +
+ "|" +
+ CLOSETAG +
+ "|" +
+ HTMLCOMMENT +
+ "|" +
+ PROCESSINGINSTRUCTION +
+ "|" +
+ DECLARATION +
+ "|" +
+ CDATA +
+ ")";
+ var reHtmlTag = new RegExp("^" + HTMLTAG);
+
+ var reBackslashOrAmp = /[\\&]/;
+
+ var ESCAPABLE = "[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-]";
+
+ var reEntityOrEscapedChar = new RegExp("\\\\" + ESCAPABLE + "|" + ENTITY, "gi");
+
+ var XMLSPECIAL = '[&<>"]';
+
+ var reXmlSpecial = new RegExp(XMLSPECIAL, "g");
+
+ var unescapeChar = function(s) {
+ if (s.charCodeAt(0) === C_BACKSLASH) {
+ return s.charAt(1);
+ } else {
+ return lib_9(s);
+ }
+ };
+
+ // Replace entities and backslash escapes with literal characters.
+ var unescapeString = function(s) {
+ if (reBackslashOrAmp.test(s)) {
+ return s.replace(reEntityOrEscapedChar, unescapeChar);
+ } else {
+ return s;
+ }
+ };
+
+ var normalizeURI = function(uri) {
+ try {
+ return encode_1(uri);
+ } catch (err) {
+ return uri;
+ }
+ };
+
+ var replaceUnsafeChar = function(s) {
+ switch (s) {
+ case "&":
+ return "&";
+ case "<":
+ return "<";
+ case ">":
+ return ">";
+ case '"':
+ return """;
+ default:
+ return s;
+ }
+ };
+
+ var escapeXml = function(s) {
+ if (reXmlSpecial.test(s)) {
+ return s.replace(reXmlSpecial, replaceUnsafeChar);
+ } else {
+ return s;
+ }
+ };
+
+ // derived from https://github.com/mathiasbynens/String.fromCodePoint
+ /*! http://mths.be/fromcodepoint v0.2.1 by @mathias */
+
+ var _fromCodePoint;
+
+ function fromCodePoint(_) {
+ return _fromCodePoint(_);
+ }
+
+ if (String.fromCodePoint) {
+ _fromCodePoint = function(_) {
+ try {
+ return String.fromCodePoint(_);
+ } catch (e) {
+ if (e instanceof RangeError) {
+ return String.fromCharCode(0xfffd);
+ }
+ throw e;
+ }
+ };
+ } else {
+ var stringFromCharCode = String.fromCharCode;
+ var floor = Math.floor;
+ _fromCodePoint = function() {
+ var MAX_SIZE = 0x4000;
+ var codeUnits = [];
+ var highSurrogate;
+ var lowSurrogate;
+ var index = -1;
+ var length = arguments.length;
+ if (!length) {
+ return "";
+ }
+ var result = "";
+ while (++index < length) {
+ var codePoint = Number(arguments[index]);
+ if (
+ !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`
+ codePoint < 0 || // not a valid Unicode code point
+ codePoint > 0x10ffff || // not a valid Unicode code point
+ floor(codePoint) !== codePoint // not an integer
+ ) {
+ return String.fromCharCode(0xfffd);
+ }
+ if (codePoint <= 0xffff) {
+ // BMP code point
+ codeUnits.push(codePoint);
+ } else {
+ // Astral code point; split in surrogate halves
+ // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
+ codePoint -= 0x10000;
+ highSurrogate = (codePoint >> 10) + 0xd800;
+ lowSurrogate = (codePoint % 0x400) + 0xdc00;
+ codeUnits.push(highSurrogate, lowSurrogate);
+ }
+ if (index + 1 === length || codeUnits.length > MAX_SIZE) {
+ result += stringFromCharCode.apply(null, codeUnits);
+ codeUnits.length = 0;
+ }
+ }
+ return result;
+ };
+ }
+
+ /*! http://mths.be/repeat v0.2.0 by @mathias */
+ if (!String.prototype.repeat) {
+ (function() {
+ var defineProperty = (function() {
+ // IE 8 only supports `Object.defineProperty` on DOM elements
+ try {
+ var object = {};
+ var $defineProperty = Object.defineProperty;
+ var result = $defineProperty(object, object, object) && $defineProperty;
+ } catch(error) {}
+ return result;
+ }());
+ var repeat = function(count) {
+ if (this == null) {
+ throw TypeError();
+ }
+ var string = String(this);
+ // `ToInteger`
+ var n = count ? Number(count) : 0;
+ if (n != n) { // better `isNaN`
+ n = 0;
+ }
+ // Account for out-of-bounds indices
+ if (n < 0 || n == Infinity) {
+ throw RangeError();
+ }
+ var result = '';
+ while (n) {
+ if (n % 2 == 1) {
+ result += string;
+ }
+ if (n > 1) {
+ string += string;
+ }
+ n >>= 1;
+ }
+ return result;
+ };
+ if (defineProperty) {
+ defineProperty(String.prototype, 'repeat', {
+ 'value': repeat,
+ 'configurable': true,
+ 'writable': true
+ });
+ } else {
+ String.prototype.repeat = repeat;
+ }
+ }());
+ }
+
+ var normalizeURI$1 = normalizeURI;
+ var unescapeString$1 = unescapeString;
+
+ // Constants for character codes:
+
+ var C_NEWLINE = 10;
+ var C_ASTERISK = 42;
+ var C_UNDERSCORE = 95;
+ var C_BACKTICK = 96;
+ var C_OPEN_BRACKET = 91;
+ var C_CLOSE_BRACKET = 93;
+ var C_LESSTHAN = 60;
+ var C_BANG = 33;
+ var C_BACKSLASH$1 = 92;
+ var C_AMPERSAND = 38;
+ var C_OPEN_PAREN = 40;
+ var C_CLOSE_PAREN = 41;
+ var C_COLON = 58;
+ var C_SINGLEQUOTE = 39;
+ var C_DOUBLEQUOTE = 34;
+
+ // Some regexps used in inline parser:
+
+ var ESCAPABLE$1 = ESCAPABLE;
+ var ESCAPED_CHAR = "\\\\" + ESCAPABLE$1;
+
+ var ENTITY$1 = ENTITY;
+ var reHtmlTag$1 = reHtmlTag;
+
+ var rePunctuation = new RegExp(
+ /^[!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/
+ );
+
+ var reLinkTitle = new RegExp(
+ '^(?:"(' +
+ ESCAPED_CHAR +
+ '|[^"\\x00])*"' +
+ "|" +
+ "'(" +
+ ESCAPED_CHAR +
+ "|[^'\\x00])*'" +
+ "|" +
+ "\\((" +
+ ESCAPED_CHAR +
+ "|[^()\\x00])*\\))"
+ );
+
+ var reLinkDestinationBraces = /^(?:<(?:[^<>\n\\\x00]|\\.)*>)/;
+
+ var reEscapable = new RegExp("^" + ESCAPABLE$1);
+
+ var reEntityHere = new RegExp("^" + ENTITY$1, "i");
+
+ var reTicks = /`+/;
+
+ var reTicksHere = /^`+/;
+
+ var reEllipses = /\.\.\./g;
+
+ var reDash = /--+/g;
+
+ var reEmailAutolink = /^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/;
+
+ var reAutolink = /^<[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\x00-\x20]*>/i;
+
+ var reSpnl = /^ *(?:\n *)?/;
+
+ var reWhitespaceChar = /^[ \t\n\x0b\x0c\x0d]/;
+
+ var reUnicodeWhitespaceChar = /^\s/;
+
+ var reFinalSpace = / *$/;
+
+ var reInitialSpace = /^ */;
+
+ var reSpaceAtEndOfLine = /^ *(?:\n|$)/;
+
+ var reLinkLabel = /^\[(?:[^\\\[\]]|\\.){0,1000}\]/s;
+
+ // Matches a string of non-special characters.
+ var reMain = /^[^\n`\[\]\\!<&*_'"]+/m;
+
+ var text = function(s) {
+ var node = new Node("text");
+ node._literal = s;
+ return node;
+ };
+
+ // normalize a reference in reference link (remove []s, trim,
+ // collapse internal space, unicode case fold.
+ // See commonmark/commonmark.js#168.
+ var normalizeReference = function(string) {
+ return string
+ .slice(1, string.length - 1)
+ .trim()
+ .replace(/[ \t\r\n]+/, " ")
+ .toLowerCase()
+ .toUpperCase();
+ };
+
+ // INLINE PARSER
+
+ // These are methods of an InlineParser object, defined below.
+ // An InlineParser keeps track of a subject (a string to be
+ // parsed) and a position in that subject.
+
+ // If re matches at current position in the subject, advance
+ // position in subject and return the match; otherwise return null.
+ var match = function(re) {
+ var m = re.exec(this.subject.slice(this.pos));
+ if (m === null) {
+ return null;
+ } else {
+ this.pos += m.index + m[0].length;
+ return m[0];
+ }
+ };
+
+ // Returns the code for the character at the current subject position, or -1
+ // there are no more characters.
+ var peek = function() {
+ if (this.pos < this.subject.length) {
+ return this.subject.charCodeAt(this.pos);
+ } else {
+ return -1;
+ }
+ };
+
+ // Parse zero or more space characters, including at most one newline
+ var spnl = function() {
+ this.match(reSpnl);
+ return true;
+ };
+
+ // All of the parsers below try to match something at the current position
+ // in the subject. If they succeed in matching anything, they
+ // return the inline matched, advancing the subject.
+
+ // Attempt to parse backticks, adding either a backtick code span or a
+ // literal sequence of backticks.
+ var parseBackticks = function(block) {
+ var ticks = this.match(reTicksHere);
+ if (ticks === null) {
+ return false;
+ }
+ var afterOpenTicks = this.pos;
+ var matched;
+ var node;
+ var contents;
+ while ((matched = this.match(reTicks)) !== null) {
+ if (matched === ticks) {
+ node = new Node("code");
+ contents = this.subject
+ .slice(afterOpenTicks, this.pos - ticks.length)
+ .replace(/\n/gm, " ");
+ if (
+ contents.length > 0 &&
+ contents.match(/[^ ]/) !== null &&
+ contents[0] == " " &&
+ contents[contents.length - 1] == " "
+ ) {
+ node._literal = contents.slice(1, contents.length - 1);
+ } else {
+ node._literal = contents;
+ }
+ block.appendChild(node);
+ return true;
+ }
+ }
+ // If we got here, we didn't match a closing backtick sequence.
+ this.pos = afterOpenTicks;
+ block.appendChild(text(ticks));
+ return true;
+ };
+
+ // Parse a backslash-escaped special character, adding either the escaped
+ // character, a hard line break (if the backslash is followed by a newline),
+ // or a literal backslash to the block's children. Assumes current character
+ // is a backslash.
+ var parseBackslash = function(block) {
+ var subj = this.subject;
+ var node;
+ this.pos += 1;
+ if (this.peek() === C_NEWLINE) {
+ this.pos += 1;
+ node = new Node("linebreak");
+ block.appendChild(node);
+ } else if (reEscapable.test(subj.charAt(this.pos))) {
+ block.appendChild(text(subj.charAt(this.pos)));
+ this.pos += 1;
+ } else {
+ block.appendChild(text("\\"));
+ }
+ return true;
+ };
+
+ // Attempt to parse an autolink (URL or email in pointy brackets).
+ var parseAutolink = function(block) {
+ var m;
+ var dest;
+ var node;
+ if ((m = this.match(reEmailAutolink))) {
+ dest = m.slice(1, m.length - 1);
+ node = new Node("link");
+ node._destination = normalizeURI$1("mailto:" + dest);
+ node._title = "";
+ node.appendChild(text(dest));
+ block.appendChild(node);
+ return true;
+ } else if ((m = this.match(reAutolink))) {
+ dest = m.slice(1, m.length - 1);
+ node = new Node("link");
+ node._destination = normalizeURI$1(dest);
+ node._title = "";
+ node.appendChild(text(dest));
+ block.appendChild(node);
+ return true;
+ } else {
+ return false;
+ }
+ };
+
+ // Attempt to parse a raw HTML tag.
+ var parseHtmlTag = function(block) {
+ var m = this.match(reHtmlTag$1);
+ if (m === null) {
+ return false;
+ } else {
+ var node = new Node("html_inline");
+ node._literal = m;
+ block.appendChild(node);
+ return true;
+ }
+ };
+
+ // Scan a sequence of characters with code cc, and return information about
+ // the number of delimiters and whether they are positioned such that
+ // they can open and/or close emphasis or strong emphasis. A utility
+ // function for strong/emph parsing.
+ var scanDelims = function(cc) {
+ var numdelims = 0;
+ var char_before, char_after, cc_after;
+ var startpos = this.pos;
+ var left_flanking, right_flanking, can_open, can_close;
+ var after_is_whitespace,
+ after_is_punctuation,
+ before_is_whitespace,
+ before_is_punctuation;
+
+ if (cc === C_SINGLEQUOTE || cc === C_DOUBLEQUOTE) {
+ numdelims++;
+ this.pos++;
+ } else {
+ while (this.peek() === cc) {
+ numdelims++;
+ this.pos++;
+ }
+ }
+
+ if (numdelims === 0) {
+ return null;
+ }
+
+ char_before = startpos === 0 ? "\n" : this.subject.charAt(startpos - 1);
+
+ cc_after = this.peek();
+ if (cc_after === -1) {
+ char_after = "\n";
+ } else {
+ char_after = fromCodePoint(cc_after);
+ }
+
+ after_is_whitespace = reUnicodeWhitespaceChar.test(char_after);
+ after_is_punctuation = rePunctuation.test(char_after);
+ before_is_whitespace = reUnicodeWhitespaceChar.test(char_before);
+ before_is_punctuation = rePunctuation.test(char_before);
+
+ left_flanking =
+ !after_is_whitespace &&
+ (!after_is_punctuation ||
+ before_is_whitespace ||
+ before_is_punctuation);
+ right_flanking =
+ !before_is_whitespace &&
+ (!before_is_punctuation || after_is_whitespace || after_is_punctuation);
+ if (cc === C_UNDERSCORE) {
+ can_open = left_flanking && (!right_flanking || before_is_punctuation);
+ can_close = right_flanking && (!left_flanking || after_is_punctuation);
+ } else if (cc === C_SINGLEQUOTE || cc === C_DOUBLEQUOTE) {
+ can_open = left_flanking && !right_flanking;
+ can_close = right_flanking;
+ } else {
+ can_open = left_flanking;
+ can_close = right_flanking;
+ }
+ this.pos = startpos;
+ return { numdelims: numdelims, can_open: can_open, can_close: can_close };
+ };
+
+ // Handle a delimiter marker for emphasis or a quote.
+ var handleDelim = function(cc, block) {
+ var res = this.scanDelims(cc);
+ if (!res) {
+ return false;
+ }
+ var numdelims = res.numdelims;
+ var startpos = this.pos;
+ var contents;
+
+ this.pos += numdelims;
+ if (cc === C_SINGLEQUOTE) {
+ contents = "\u2019";
+ } else if (cc === C_DOUBLEQUOTE) {
+ contents = "\u201C";
+ } else {
+ contents = this.subject.slice(startpos, this.pos);
+ }
+ var node = text(contents);
+ block.appendChild(node);
+
+ // Add entry to stack for this opener
+ if (
+ (res.can_open || res.can_close) &&
+ (this.options.smart || (cc !== C_SINGLEQUOTE && cc !== C_DOUBLEQUOTE))
+ ) {
+ this.delimiters = {
+ cc: cc,
+ numdelims: numdelims,
+ origdelims: numdelims,
+ node: node,
+ previous: this.delimiters,
+ next: null,
+ can_open: res.can_open,
+ can_close: res.can_close
+ };
+ if (this.delimiters.previous !== null) {
+ this.delimiters.previous.next = this.delimiters;
+ }
+ }
+
+ return true;
+ };
+
+ var removeDelimiter = function(delim) {
+ if (delim.previous !== null) {
+ delim.previous.next = delim.next;
+ }
+ if (delim.next === null) {
+ // top of stack
+ this.delimiters = delim.previous;
+ } else {
+ delim.next.previous = delim.previous;
+ }
+ };
+
+ var removeDelimitersBetween = function(bottom, top) {
+ if (bottom.next !== top) {
+ bottom.next = top;
+ top.previous = bottom;
+ }
+ };
+
+ var processEmphasis = function(stack_bottom) {
+ var opener, closer, old_closer;
+ var opener_inl, closer_inl;
+ var tempstack;
+ var use_delims;
+ var tmp, next;
+ var opener_found;
+ var openers_bottom = [];
+ var openers_bottom_index;
+ var odd_match = false;
+
+ for (var i = 0; i < 8; i++) {
+ openers_bottom[i] = stack_bottom;
+ }
+ // find first closer above stack_bottom:
+ closer = this.delimiters;
+ while (closer !== null && closer.previous !== stack_bottom) {
+ closer = closer.previous;
+ }
+ // move forward, looking for closers, and handling each
+ while (closer !== null) {
+ var closercc = closer.cc;
+ if (!closer.can_close) {
+ closer = closer.next;
+ } else {
+ // found emphasis closer. now look back for first matching opener:
+ opener = closer.previous;
+ opener_found = false;
+ switch (closercc) {
+ case C_SINGLEQUOTE:
+ openers_bottom_index = 0;
+ break;
+ case C_DOUBLEQUOTE:
+ openers_bottom_index = 1;
+ break;
+ case C_UNDERSCORE:
+ openers_bottom_index = 2;
+ break;
+ case C_ASTERISK:
+ openers_bottom_index = 3 + (closer.can_open ? 3 : 0)
+ + (closer.origdelims % 3);
+ break;
+ }
+ while (
+ opener !== null &&
+ opener !== stack_bottom &&
+ opener !== openers_bottom[openers_bottom_index]
+ ) {
+ odd_match =
+ (closer.can_open || opener.can_close) &&
+ closer.origdelims % 3 !== 0 &&
+ (opener.origdelims + closer.origdelims) % 3 === 0;
+ if (opener.cc === closer.cc && opener.can_open && !odd_match) {
+ opener_found = true;
+ break;
+ }
+ opener = opener.previous;
+ }
+ old_closer = closer;
+
+ if (closercc === C_ASTERISK || closercc === C_UNDERSCORE) {
+ if (!opener_found) {
+ closer = closer.next;
+ } else {
+ // calculate actual number of delimiters used from closer
+ use_delims =
+ closer.numdelims >= 2 && opener.numdelims >= 2 ? 2 : 1;
+
+ opener_inl = opener.node;
+ closer_inl = closer.node;
+
+ // remove used delimiters from stack elts and inlines
+ opener.numdelims -= use_delims;
+ closer.numdelims -= use_delims;
+ opener_inl._literal = opener_inl._literal.slice(
+ 0,
+ opener_inl._literal.length - use_delims
+ );
+ closer_inl._literal = closer_inl._literal.slice(
+ 0,
+ closer_inl._literal.length - use_delims
+ );
+
+ // build contents for new emph element
+ var emph = new Node(use_delims === 1 ? "emph" : "strong");
+
+ tmp = opener_inl._next;
+ while (tmp && tmp !== closer_inl) {
+ next = tmp._next;
+ tmp.unlink();
+ emph.appendChild(tmp);
+ tmp = next;
+ }
+
+ opener_inl.insertAfter(emph);
+
+ // remove elts between opener and closer in delimiters stack
+ removeDelimitersBetween(opener, closer);
+
+ // if opener has 0 delims, remove it and the inline
+ if (opener.numdelims === 0) {
+ opener_inl.unlink();
+ this.removeDelimiter(opener);
+ }
+
+ if (closer.numdelims === 0) {
+ closer_inl.unlink();
+ tempstack = closer.next;
+ this.removeDelimiter(closer);
+ closer = tempstack;
+ }
+ }
+ } else if (closercc === C_SINGLEQUOTE) {
+ closer.node._literal = "\u2019";
+ if (opener_found) {
+ opener.node._literal = "\u2018";
+ }
+ closer = closer.next;
+ } else if (closercc === C_DOUBLEQUOTE) {
+ closer.node._literal = "\u201D";
+ if (opener_found) {
+ opener.node.literal = "\u201C";
+ }
+ closer = closer.next;
+ }
+ if (!opener_found) {
+ // Set lower bound for future searches for openers:
+ openers_bottom[openers_bottom_index] =
+ old_closer.previous;
+ if (!old_closer.can_open) {
+ // We can remove a closer that can't be an opener,
+ // once we've seen there's no matching opener:
+ this.removeDelimiter(old_closer);
+ }
+ }
+ }
+ }
+
+ // remove all delimiters
+ while (this.delimiters !== null && this.delimiters !== stack_bottom) {
+ this.removeDelimiter(this.delimiters);
+ }
+ };
+
+ // Attempt to parse link title (sans quotes), returning the string
+ // or null if no match.
+ var parseLinkTitle = function() {
+ var title = this.match(reLinkTitle);
+ if (title === null) {
+ return null;
+ } else {
+ // chop off quotes from title and unescape:
+ return unescapeString$1(title.substr(1, title.length - 2));
+ }
+ };
+
+ // Attempt to parse link destination, returning the string or
+ // null if no match.
+ var parseLinkDestination = function() {
+ var res = this.match(reLinkDestinationBraces);
+ if (res === null) {
+ if (this.peek() === C_LESSTHAN) {
+ return null;
+ }
+ // TODO handrolled parser; res should be null or the string
+ var savepos = this.pos;
+ var openparens = 0;
+ var c;
+ while ((c = this.peek()) !== -1) {
+ if (
+ c === C_BACKSLASH$1 &&
+ reEscapable.test(this.subject.charAt(this.pos + 1))
+ ) {
+ this.pos += 1;
+ if (this.peek() !== -1) {
+ this.pos += 1;
+ }
+ } else if (c === C_OPEN_PAREN) {
+ this.pos += 1;
+ openparens += 1;
+ } else if (c === C_CLOSE_PAREN) {
+ if (openparens < 1) {
+ break;
+ } else {
+ this.pos += 1;
+ openparens -= 1;
+ }
+ } else if (reWhitespaceChar.exec(fromCodePoint(c)) !== null) {
+ break;
+ } else {
+ this.pos += 1;
+ }
+ }
+ if (this.pos === savepos && c !== C_CLOSE_PAREN) {
+ return null;
+ }
+ if (openparens !== 0) {
+ return null;
+ }
+ res = this.subject.substr(savepos, this.pos - savepos);
+ return normalizeURI$1(unescapeString$1(res));
+ } else {
+ // chop off surrounding <..>:
+ return normalizeURI$1(unescapeString$1(res.substr(1, res.length - 2)));
+ }
+ };
+
+ // Attempt to parse a link label, returning number of characters parsed.
+ var parseLinkLabel = function() {
+ var m = this.match(reLinkLabel);
+ if (m === null || m.length > 1001) {
+ return 0;
+ } else {
+ return m.length;
+ }
+ };
+
+ // Add open bracket to delimiter stack and add a text node to block's children.
+ var parseOpenBracket = function(block) {
+ var startpos = this.pos;
+ this.pos += 1;
+
+ var node = text("[");
+ block.appendChild(node);
+
+ // Add entry to stack for this opener
+ this.addBracket(node, startpos, false);
+ return true;
+ };
+
+ // IF next character is [, and ! delimiter to delimiter stack and
+ // add a text node to block's children. Otherwise just add a text node.
+ var parseBang = function(block) {
+ var startpos = this.pos;
+ this.pos += 1;
+ if (this.peek() === C_OPEN_BRACKET) {
+ this.pos += 1;
+
+ var node = text("![");
+ block.appendChild(node);
+
+ // Add entry to stack for this opener
+ this.addBracket(node, startpos + 1, true);
+ } else {
+ block.appendChild(text("!"));
+ }
+ return true;
+ };
+
+ // Try to match close bracket against an opening in the delimiter
+ // stack. Add either a link or image, or a plain [ character,
+ // to block's children. If there is a matching delimiter,
+ // remove it from the delimiter stack.
+ var parseCloseBracket = function(block) {
+ var startpos;
+ var is_image;
+ var dest;
+ var title;
+ var matched = false;
+ var reflabel;
+ var opener;
+
+ this.pos += 1;
+ startpos = this.pos;
+
+ // get last [ or ![
+ opener = this.brackets;
+
+ if (opener === null) {
+ // no matched opener, just return a literal
+ block.appendChild(text("]"));
+ return true;
+ }
+
+ if (!opener.active) {
+ // no matched opener, just return a literal
+ block.appendChild(text("]"));
+ // take opener off brackets stack
+ this.removeBracket();
+ return true;
+ }
+
+ // If we got here, open is a potential opener
+ is_image = opener.image;
+
+ // Check to see if we have a link/image
+
+ var savepos = this.pos;
+
+ // Inline link?
+ if (this.peek() === C_OPEN_PAREN) {
+ this.pos++;
+ if (
+ this.spnl() &&
+ (dest = this.parseLinkDestination()) !== null &&
+ this.spnl() &&
+ // make sure there's a space before the title:
+ ((reWhitespaceChar.test(this.subject.charAt(this.pos - 1)) &&
+ (title = this.parseLinkTitle())) ||
+ true) &&
+ this.spnl() &&
+ this.peek() === C_CLOSE_PAREN
+ ) {
+ this.pos += 1;
+ matched = true;
+ } else {
+ this.pos = savepos;
+ }
+ }
+
+ if (!matched) {
+ // Next, see if there's a link label
+ var beforelabel = this.pos;
+ var n = this.parseLinkLabel();
+ if (n > 2) {
+ reflabel = this.subject.slice(beforelabel, beforelabel + n);
+ } else if (!opener.bracketAfter) {
+ // Empty or missing second label means to use the first label as the reference.
+ // The reference must not contain a bracket. If we know there's a bracket, we don't even bother checking it.
+ reflabel = this.subject.slice(opener.index, startpos);
+ }
+ if (n === 0) {
+ // If shortcut reference link, rewind before spaces we skipped.
+ this.pos = savepos;
+ }
+
+ if (reflabel) {
+ // lookup rawlabel in refmap
+ var link = this.refmap[normalizeReference(reflabel)];
+ if (link) {
+ dest = link.destination;
+ title = link.title;
+ matched = true;
+ }
+ }
+ }
+
+ if (matched) {
+ var node = new Node(is_image ? "image" : "link");
+ node._destination = dest;
+ node._title = title || "";
+
+ var tmp, next;
+ tmp = opener.node._next;
+ while (tmp) {
+ next = tmp._next;
+ tmp.unlink();
+ node.appendChild(tmp);
+ tmp = next;
+ }
+ block.appendChild(node);
+ this.processEmphasis(opener.previousDelimiter);
+ this.removeBracket();
+ opener.node.unlink();
+
+ // We remove this bracket and processEmphasis will remove later delimiters.
+ // Now, for a link, we also deactivate earlier link openers.
+ // (no links in links)
+ if (!is_image) {
+ opener = this.brackets;
+ while (opener !== null) {
+ if (!opener.image) {
+ opener.active = false; // deactivate this opener
+ }
+ opener = opener.previous;
+ }
+ }
+
+ return true;
+ } else {
+ // no match
+
+ this.removeBracket(); // remove this opener from stack
+ this.pos = startpos;
+ block.appendChild(text("]"));
+ return true;
+ }
+ };
+
+ var addBracket = function(node, index, image) {
+ if (this.brackets !== null) {
+ this.brackets.bracketAfter = true;
+ }
+ this.brackets = {
+ node: node,
+ previous: this.brackets,
+ previousDelimiter: this.delimiters,
+ index: index,
+ image: image,
+ active: true
+ };
+ };
+
+ var removeBracket = function() {
+ this.brackets = this.brackets.previous;
+ };
+
+ // Attempt to parse an entity.
+ var parseEntity = function(block) {
+ var m;
+ if ((m = this.match(reEntityHere))) {
+ block.appendChild(text(lib_9(m)));
+ return true;
+ } else {
+ return false;
+ }
+ };
+
+ // Parse a run of ordinary characters, or a single character with
+ // a special meaning in markdown, as a plain string.
+ var parseString = function(block) {
+ var m;
+ if ((m = this.match(reMain))) {
+ if (this.options.smart) {
+ block.appendChild(
+ text(
+ m
+ .replace(reEllipses, "\u2026")
+ .replace(reDash, function(chars) {
+ var enCount = 0;
+ var emCount = 0;
+ if (chars.length % 3 === 0) {
+ // If divisible by 3, use all em dashes
+ emCount = chars.length / 3;
+ } else if (chars.length % 2 === 0) {
+ // If divisible by 2, use all en dashes
+ enCount = chars.length / 2;
+ } else if (chars.length % 3 === 2) {
+ // If 2 extra dashes, use en dash for last 2; em dashes for rest
+ enCount = 1;
+ emCount = (chars.length - 2) / 3;
+ } else {
+ // Use en dashes for last 4 hyphens; em dashes for rest
+ enCount = 2;
+ emCount = (chars.length - 4) / 3;
+ }
+ return (
+ "\u2014".repeat(emCount) +
+ "\u2013".repeat(enCount)
+ );
+ })
+ )
+ );
+ } else {
+ block.appendChild(text(m));
+ }
+ return true;
+ } else {
+ return false;
+ }
+ };
+
+ // Parse a newline. If it was preceded by two spaces, return a hard
+ // line break; otherwise a soft line break.
+ var parseNewline = function(block) {
+ this.pos += 1; // assume we're at a \n
+ // check previous node for trailing spaces
+ var lastc = block._lastChild;
+ if (
+ lastc &&
+ lastc.type === "text" &&
+ lastc._literal[lastc._literal.length - 1] === " "
+ ) {
+ var hardbreak = lastc._literal[lastc._literal.length - 2] === " ";
+ lastc._literal = lastc._literal.replace(reFinalSpace, "");
+ block.appendChild(new Node(hardbreak ? "linebreak" : "softbreak"));
+ } else {
+ block.appendChild(new Node("softbreak"));
+ }
+ this.match(reInitialSpace); // gobble leading spaces in next line
+ return true;
+ };
+
+ // Attempt to parse a link reference, modifying refmap.
+ var parseReference = function(s, refmap) {
+ this.subject = s;
+ this.pos = 0;
+ var rawlabel;
+ var dest;
+ var title;
+ var matchChars;
+ var startpos = this.pos;
+
+ // label:
+ matchChars = this.parseLinkLabel();
+ if (matchChars === 0) {
+ return 0;
+ } else {
+ rawlabel = this.subject.substr(0, matchChars);
+ }
+
+ // colon:
+ if (this.peek() === C_COLON) {
+ this.pos++;
+ } else {
+ this.pos = startpos;
+ return 0;
+ }
+
+ // link url
+ this.spnl();
+
+ dest = this.parseLinkDestination();
+ if (dest === null) {
+ this.pos = startpos;
+ return 0;
+ }
+
+ var beforetitle = this.pos;
+ this.spnl();
+ if (this.pos !== beforetitle) {
+ title = this.parseLinkTitle();
+ }
+ if (title === null) {
+ title = "";
+ // rewind before spaces
+ this.pos = beforetitle;
+ }
+
+ // make sure we're at line end:
+ var atLineEnd = true;
+ if (this.match(reSpaceAtEndOfLine) === null) {
+ if (title === "") {
+ atLineEnd = false;
+ } else {
+ // the potential title we found is not at the line end,
+ // but it could still be a legal link reference if we
+ // discard the title
+ title = "";
+ // rewind before spaces
+ this.pos = beforetitle;
+ // and instead check if the link URL is at the line end
+ atLineEnd = this.match(reSpaceAtEndOfLine) !== null;
+ }
+ }
+
+ if (!atLineEnd) {
+ this.pos = startpos;
+ return 0;
+ }
+
+ var normlabel = normalizeReference(rawlabel);
+ if (normlabel === "") {
+ // label must contain non-whitespace characters
+ this.pos = startpos;
+ return 0;
+ }
+
+ if (!refmap[normlabel]) {
+ refmap[normlabel] = { destination: dest, title: title };
+ }
+ return this.pos - startpos;
+ };
+
+ // Parse the next inline element in subject, advancing subject position.
+ // On success, add the result to block's children and return true.
+ // On failure, return false.
+ var parseInline = function(block) {
+ var res = false;
+ var c = this.peek();
+ if (c === -1) {
+ return false;
+ }
+ switch (c) {
+ case C_NEWLINE:
+ res = this.parseNewline(block);
+ break;
+ case C_BACKSLASH$1:
+ res = this.parseBackslash(block);
+ break;
+ case C_BACKTICK:
+ res = this.parseBackticks(block);
+ break;
+ case C_ASTERISK:
+ case C_UNDERSCORE:
+ res = this.handleDelim(c, block);
+ break;
+ case C_SINGLEQUOTE:
+ case C_DOUBLEQUOTE:
+ res = this.options.smart && this.handleDelim(c, block);
+ break;
+ case C_OPEN_BRACKET:
+ res = this.parseOpenBracket(block);
+ break;
+ case C_BANG:
+ res = this.parseBang(block);
+ break;
+ case C_CLOSE_BRACKET:
+ res = this.parseCloseBracket(block);
+ break;
+ case C_LESSTHAN:
+ res = this.parseAutolink(block) || this.parseHtmlTag(block);
+ break;
+ case C_AMPERSAND:
+ res = this.parseEntity(block);
+ break;
+ default:
+ res = this.parseString(block);
+ break;
+ }
+ if (!res) {
+ this.pos += 1;
+ block.appendChild(text(fromCodePoint(c)));
+ }
+
+ return true;
+ };
+
+ // Parse string content in block into inline children,
+ // using refmap to resolve references.
+ var parseInlines = function(block) {
+ this.subject = block._string_content.trim();
+ this.pos = 0;
+ this.delimiters = null;
+ this.brackets = null;
+ while (this.parseInline(block)) {}
+ block._string_content = null; // allow raw string to be garbage collected
+ this.processEmphasis(null);
+ };
+
+ // The InlineParser object.
+ function InlineParser(options) {
+ return {
+ subject: "",
+ delimiters: null, // used by handleDelim method
+ brackets: null,
+ pos: 0,
+ refmap: {},
+ match: match,
+ peek: peek,
+ spnl: spnl,
+ parseBackticks: parseBackticks,
+ parseBackslash: parseBackslash,
+ parseAutolink: parseAutolink,
+ parseHtmlTag: parseHtmlTag,
+ scanDelims: scanDelims,
+ handleDelim: handleDelim,
+ parseLinkTitle: parseLinkTitle,
+ parseLinkDestination: parseLinkDestination,
+ parseLinkLabel: parseLinkLabel,
+ parseOpenBracket: parseOpenBracket,
+ parseBang: parseBang,
+ parseCloseBracket: parseCloseBracket,
+ addBracket: addBracket,
+ removeBracket: removeBracket,
+ parseEntity: parseEntity,
+ parseString: parseString,
+ parseNewline: parseNewline,
+ parseReference: parseReference,
+ parseInline: parseInline,
+ processEmphasis: processEmphasis,
+ removeDelimiter: removeDelimiter,
+ options: options || {},
+ parse: parseInlines
+ };
+ }
+
+ var CODE_INDENT = 4;
+
+ var C_TAB = 9;
+ var C_NEWLINE$1 = 10;
+ var C_GREATERTHAN = 62;
+ var C_LESSTHAN$1 = 60;
+ var C_SPACE = 32;
+ var C_OPEN_BRACKET$1 = 91;
+
+ var reHtmlBlockOpen = [
+ /./, // dummy for 0
+ /^<(?:script|pre|textarea|style)(?:\s|>|$)/i,
+ /^/,
+ /\?>/,
+ />/,
+ /\]\]>/
+ ];
+
+ var reThematicBreak = /^(?:\*[ \t]*){3,}$|^(?:_[ \t]*){3,}$|^(?:-[ \t]*){3,}$/;
+
+ var reMaybeSpecial = /^[#`~*+_=<>0-9-]/;
+
+ var reNonSpace = /[^ \t\f\v\r\n]/;
+
+ var reBulletListMarker = /^[*+-]/;
+
+ var reOrderedListMarker = /^(\d{1,9})([.)])/;
+
+ var reATXHeadingMarker = /^#{1,6}(?:[ \t]+|$)/;
+
+ var reCodeFence = /^`{3,}(?!.*`)|^~{3,}/;
+
+ var reClosingCodeFence = /^(?:`{3,}|~{3,})(?= *$)/;
+
+ var reSetextHeadingLine = /^(?:=+|-+)[ \t]*$/;
+
+ var reLineEnding = /\r\n|\n|\r/;
+
+ // Returns true if string contains only space characters.
+ var isBlank = function(s) {
+ return !reNonSpace.test(s);
+ };
+
+ var isSpaceOrTab = function(c) {
+ return c === C_SPACE || c === C_TAB;
+ };
+
+ var peek$1 = function(ln, pos) {
+ if (pos < ln.length) {
+ return ln.charCodeAt(pos);
+ } else {
+ return -1;
+ }
+ };
+
+ // DOC PARSER
+
+ // These are methods of a Parser object, defined below.
+
+ // Returns true if block ends with a blank line, descending if needed
+ // into lists and sublists.
+ var endsWithBlankLine = function(block) {
+ while (block) {
+ if (block._lastLineBlank) {
+ return true;
+ }
+ var t = block.type;
+ if (!block._lastLineChecked && (t === "list" || t === "item")) {
+ block._lastLineChecked = true;
+ block = block._lastChild;
+ } else {
+ block._lastLineChecked = true;
+ break;
+ }
+ }
+ return false;
+ };
+
+ // Add a line to the block at the tip. We assume the tip
+ // can accept lines -- that check should be done before calling this.
+ var addLine = function() {
+ if (this.partiallyConsumedTab) {
+ this.offset += 1; // skip over tab
+ // add space characters:
+ var charsToTab = 4 - (this.column % 4);
+ this.tip._string_content += " ".repeat(charsToTab);
+ }
+ this.tip._string_content += this.currentLine.slice(this.offset) + "\n";
+ };
+
+ // Add block of type tag as a child of the tip. If the tip can't
+ // accept children, close and finalize it and try its parent,
+ // and so on til we find a block that can accept children.
+ var addChild = function(tag, offset) {
+ while (!this.blocks[this.tip.type].canContain(tag)) {
+ this.finalize(this.tip, this.lineNumber - 1);
+ }
+
+ var column_number = offset + 1; // offset 0 = column 1
+ var newBlock = new Node(tag, [
+ [this.lineNumber, column_number],
+ [0, 0]
+ ]);
+ newBlock._string_content = "";
+ this.tip.appendChild(newBlock);
+ this.tip = newBlock;
+ return newBlock;
+ };
+
+ // Parse a list marker and return data on the marker (type,
+ // start, delimiter, bullet character, padding) or null.
+ var parseListMarker = function(parser, container) {
+ var rest = parser.currentLine.slice(parser.nextNonspace);
+ var match;
+ var nextc;
+ var spacesStartCol;
+ var spacesStartOffset;
+ var data = {
+ type: null,
+ tight: true, // lists are tight by default
+ bulletChar: null,
+ start: null,
+ delimiter: null,
+ padding: null,
+ markerOffset: parser.indent
+ };
+ if (parser.indent >= 4) {
+ return null;
+ }
+ if ((match = rest.match(reBulletListMarker))) {
+ data.type = "bullet";
+ data.bulletChar = match[0][0];
+ } else if (
+ (match = rest.match(reOrderedListMarker)) &&
+ (container.type !== "paragraph" || match[1] == 1)
+ ) {
+ data.type = "ordered";
+ data.start = parseInt(match[1]);
+ data.delimiter = match[2];
+ } else {
+ return null;
+ }
+ // make sure we have spaces after
+ nextc = peek$1(parser.currentLine, parser.nextNonspace + match[0].length);
+ if (!(nextc === -1 || nextc === C_TAB || nextc === C_SPACE)) {
+ return null;
+ }
+
+ // if it interrupts paragraph, make sure first line isn't blank
+ if (
+ container.type === "paragraph" &&
+ !parser.currentLine
+ .slice(parser.nextNonspace + match[0].length)
+ .match(reNonSpace)
+ ) {
+ return null;
+ }
+
+ // we've got a match! advance offset and calculate padding
+ parser.advanceNextNonspace(); // to start of marker
+ parser.advanceOffset(match[0].length, true); // to end of marker
+ spacesStartCol = parser.column;
+ spacesStartOffset = parser.offset;
+ do {
+ parser.advanceOffset(1, true);
+ nextc = peek$1(parser.currentLine, parser.offset);
+ } while (parser.column - spacesStartCol < 5 && isSpaceOrTab(nextc));
+ var blank_item = peek$1(parser.currentLine, parser.offset) === -1;
+ var spaces_after_marker = parser.column - spacesStartCol;
+ if (spaces_after_marker >= 5 || spaces_after_marker < 1 || blank_item) {
+ data.padding = match[0].length + 1;
+ parser.column = spacesStartCol;
+ parser.offset = spacesStartOffset;
+ if (isSpaceOrTab(peek$1(parser.currentLine, parser.offset))) {
+ parser.advanceOffset(1, true);
+ }
+ } else {
+ data.padding = match[0].length + spaces_after_marker;
+ }
+ return data;
+ };
+
+ // Returns true if the two list items are of the same type,
+ // with the same delimiter and bullet character. This is used
+ // in agglomerating list items into lists.
+ var listsMatch = function(list_data, item_data) {
+ return (
+ list_data.type === item_data.type &&
+ list_data.delimiter === item_data.delimiter &&
+ list_data.bulletChar === item_data.bulletChar
+ );
+ };
+
+ // Finalize and close any unmatched blocks.
+ var closeUnmatchedBlocks = function() {
+ if (!this.allClosed) {
+ // finalize any blocks not matched
+ while (this.oldtip !== this.lastMatchedContainer) {
+ var parent = this.oldtip._parent;
+ this.finalize(this.oldtip, this.lineNumber - 1);
+ this.oldtip = parent;
+ }
+ this.allClosed = true;
+ }
+ };
+
+ // 'finalize' is run when the block is closed.
+ // 'continue' is run to check whether the block is continuing
+ // at a certain line and offset (e.g. whether a block quote
+ // contains a `>`. It returns 0 for matched, 1 for not matched,
+ // and 2 for "we've dealt with this line completely, go to next."
+ var blocks = {
+ document: {
+ continue: function() {
+ return 0;
+ },
+ finalize: function() {
+ return;
+ },
+ canContain: function(t) {
+ return t !== "item";
+ },
+ acceptsLines: false
+ },
+ list: {
+ continue: function() {
+ return 0;
+ },
+ finalize: function(parser, block) {
+ var item = block._firstChild;
+ while (item) {
+ // check for non-final list item ending with blank line:
+ if (endsWithBlankLine(item) && item._next) {
+ block._listData.tight = false;
+ break;
+ }
+ // recurse into children of list item, to see if there are
+ // spaces between any of them:
+ var subitem = item._firstChild;
+ while (subitem) {
+ if (
+ endsWithBlankLine(subitem) &&
+ (item._next || subitem._next)
+ ) {
+ block._listData.tight = false;
+ break;
+ }
+ subitem = subitem._next;
+ }
+ item = item._next;
+ }
+ },
+ canContain: function(t) {
+ return t === "item";
+ },
+ acceptsLines: false
+ },
+ block_quote: {
+ continue: function(parser) {
+ var ln = parser.currentLine;
+ if (
+ !parser.indented &&
+ peek$1(ln, parser.nextNonspace) === C_GREATERTHAN
+ ) {
+ parser.advanceNextNonspace();
+ parser.advanceOffset(1, false);
+ if (isSpaceOrTab(peek$1(ln, parser.offset))) {
+ parser.advanceOffset(1, true);
+ }
+ } else {
+ return 1;
+ }
+ return 0;
+ },
+ finalize: function() {
+ return;
+ },
+ canContain: function(t) {
+ return t !== "item";
+ },
+ acceptsLines: false
+ },
+ item: {
+ continue: function(parser, container) {
+ if (parser.blank) {
+ if (container._firstChild == null) {
+ // Blank line after empty list item
+ return 1;
+ } else {
+ parser.advanceNextNonspace();
+ }
+ } else if (
+ parser.indent >=
+ container._listData.markerOffset + container._listData.padding
+ ) {
+ parser.advanceOffset(
+ container._listData.markerOffset +
+ container._listData.padding,
+ true
+ );
+ } else {
+ return 1;
+ }
+ return 0;
+ },
+ finalize: function() {
+ return;
+ },
+ canContain: function(t) {
+ return t !== "item";
+ },
+ acceptsLines: false
+ },
+ heading: {
+ continue: function() {
+ // a heading can never container > 1 line, so fail to match:
+ return 1;
+ },
+ finalize: function() {
+ return;
+ },
+ canContain: function() {
+ return false;
+ },
+ acceptsLines: false
+ },
+ thematic_break: {
+ continue: function() {
+ // a thematic break can never container > 1 line, so fail to match:
+ return 1;
+ },
+ finalize: function() {
+ return;
+ },
+ canContain: function() {
+ return false;
+ },
+ acceptsLines: false
+ },
+ code_block: {
+ continue: function(parser, container) {
+ var ln = parser.currentLine;
+ var indent = parser.indent;
+ if (container._isFenced) {
+ // fenced
+ var match =
+ indent <= 3 &&
+ ln.charAt(parser.nextNonspace) === container._fenceChar &&
+ ln.slice(parser.nextNonspace).match(reClosingCodeFence);
+ if (match && match[0].length >= container._fenceLength) {
+ // closing fence - we're at end of line, so we can return
+ parser.lastLineLength =
+ parser.offset + indent + match[0].length;
+ parser.finalize(container, parser.lineNumber);
+ return 2;
+ } else {
+ // skip optional spaces of fence offset
+ var i = container._fenceOffset;
+ while (i > 0 && isSpaceOrTab(peek$1(ln, parser.offset))) {
+ parser.advanceOffset(1, true);
+ i--;
+ }
+ }
+ } else {
+ // indented
+ if (indent >= CODE_INDENT) {
+ parser.advanceOffset(CODE_INDENT, true);
+ } else if (parser.blank) {
+ parser.advanceNextNonspace();
+ } else {
+ return 1;
+ }
+ }
+ return 0;
+ },
+ finalize: function(parser, block) {
+ if (block._isFenced) {
+ // fenced
+ // first line becomes info string
+ var content = block._string_content;
+ var newlinePos = content.indexOf("\n");
+ var firstLine = content.slice(0, newlinePos);
+ var rest = content.slice(newlinePos + 1);
+ block.info = unescapeString(firstLine.trim());
+ block._literal = rest;
+ } else {
+ // indented
+ block._literal = block._string_content.replace(
+ /(\n *)+$/,
+ "\n"
+ );
+ }
+ block._string_content = null; // allow GC
+ },
+ canContain: function() {
+ return false;
+ },
+ acceptsLines: true
+ },
+ html_block: {
+ continue: function(parser, container) {
+ return parser.blank &&
+ (container._htmlBlockType === 6 ||
+ container._htmlBlockType === 7)
+ ? 1
+ : 0;
+ },
+ finalize: function(parser, block) {
+ block._literal = block._string_content.replace(/(\n *)+$/, "");
+ block._string_content = null; // allow GC
+ },
+ canContain: function() {
+ return false;
+ },
+ acceptsLines: true
+ },
+ paragraph: {
+ continue: function(parser) {
+ return parser.blank ? 1 : 0;
+ },
+ finalize: function(parser, block) {
+ var pos;
+ var hasReferenceDefs = false;
+
+ // try parsing the beginning as link reference definitions:
+ while (
+ peek$1(block._string_content, 0) === C_OPEN_BRACKET$1 &&
+ (pos = parser.inlineParser.parseReference(
+ block._string_content,
+ parser.refmap
+ ))
+ ) {
+ block._string_content = block._string_content.slice(pos);
+ hasReferenceDefs = true;
+ }
+ if (hasReferenceDefs && isBlank(block._string_content)) {
+ block.unlink();
+ }
+ },
+ canContain: function() {
+ return false;
+ },
+ acceptsLines: true
+ }
+ };
+
+ // block start functions. Return values:
+ // 0 = no match
+ // 1 = matched container, keep going
+ // 2 = matched leaf, no more block starts
+ var blockStarts = [
+ // block quote
+ function(parser) {
+ if (
+ !parser.indented &&
+ peek$1(parser.currentLine, parser.nextNonspace) === C_GREATERTHAN
+ ) {
+ parser.advanceNextNonspace();
+ parser.advanceOffset(1, false);
+ // optional following space
+ if (isSpaceOrTab(peek$1(parser.currentLine, parser.offset))) {
+ parser.advanceOffset(1, true);
+ }
+ parser.closeUnmatchedBlocks();
+ parser.addChild("block_quote", parser.nextNonspace);
+ return 1;
+ } else {
+ return 0;
+ }
+ },
+
+ // ATX heading
+ function(parser) {
+ var match;
+ if (
+ !parser.indented &&
+ (match = parser.currentLine
+ .slice(parser.nextNonspace)
+ .match(reATXHeadingMarker))
+ ) {
+ parser.advanceNextNonspace();
+ parser.advanceOffset(match[0].length, false);
+ parser.closeUnmatchedBlocks();
+ var container = parser.addChild("heading", parser.nextNonspace);
+ container.level = match[0].trim().length; // number of #s
+ // remove trailing ###s:
+ container._string_content = parser.currentLine
+ .slice(parser.offset)
+ .replace(/^[ \t]*#+[ \t]*$/, "")
+ .replace(/[ \t]+#+[ \t]*$/, "");
+ parser.advanceOffset(parser.currentLine.length - parser.offset);
+ return 2;
+ } else {
+ return 0;
+ }
+ },
+
+ // Fenced code block
+ function(parser) {
+ var match;
+ if (
+ !parser.indented &&
+ (match = parser.currentLine
+ .slice(parser.nextNonspace)
+ .match(reCodeFence))
+ ) {
+ var fenceLength = match[0].length;
+ parser.closeUnmatchedBlocks();
+ var container = parser.addChild("code_block", parser.nextNonspace);
+ container._isFenced = true;
+ container._fenceLength = fenceLength;
+ container._fenceChar = match[0][0];
+ container._fenceOffset = parser.indent;
+ parser.advanceNextNonspace();
+ parser.advanceOffset(fenceLength, false);
+ return 2;
+ } else {
+ return 0;
+ }
+ },
+
+ // HTML block
+ function(parser, container) {
+ if (
+ !parser.indented &&
+ peek$1(parser.currentLine, parser.nextNonspace) === C_LESSTHAN$1
+ ) {
+ var s = parser.currentLine.slice(parser.nextNonspace);
+ var blockType;
+
+ for (blockType = 1; blockType <= 7; blockType++) {
+ if (
+ reHtmlBlockOpen[blockType].test(s) &&
+ (blockType < 7 || (container.type !== "paragraph" &&
+ !(!parser.allClosed && !parser.blank &&
+ parser.tip.type === "paragraph") // maybe lazy
+ ))
+ ) {
+ parser.closeUnmatchedBlocks();
+ // We don't adjust parser.offset;
+ // spaces are part of the HTML block:
+ var b = parser.addChild("html_block", parser.offset);
+ b._htmlBlockType = blockType;
+ return 2;
+ }
+ }
+ }
+
+ return 0;
+ },
+
+ // Setext heading
+ function(parser, container) {
+ var match;
+ if (
+ !parser.indented &&
+ container.type === "paragraph" &&
+ (match = parser.currentLine
+ .slice(parser.nextNonspace)
+ .match(reSetextHeadingLine))
+ ) {
+ parser.closeUnmatchedBlocks();
+ // resolve reference link definitiosn
+ var pos;
+ while (
+ peek$1(container._string_content, 0) === C_OPEN_BRACKET$1 &&
+ (pos = parser.inlineParser.parseReference(
+ container._string_content,
+ parser.refmap
+ ))
+ ) {
+ container._string_content = container._string_content.slice(
+ pos
+ );
+ }
+ if (container._string_content.length > 0) {
+ var heading = new Node("heading", container.sourcepos);
+ heading.level = match[0][0] === "=" ? 1 : 2;
+ heading._string_content = container._string_content;
+ container.insertAfter(heading);
+ container.unlink();
+ parser.tip = heading;
+ parser.advanceOffset(
+ parser.currentLine.length - parser.offset,
+ false
+ );
+ return 2;
+ } else {
+ return 0;
+ }
+ } else {
+ return 0;
+ }
+ },
+
+ // thematic break
+ function(parser) {
+ if (
+ !parser.indented &&
+ reThematicBreak.test(parser.currentLine.slice(parser.nextNonspace))
+ ) {
+ parser.closeUnmatchedBlocks();
+ parser.addChild("thematic_break", parser.nextNonspace);
+ parser.advanceOffset(
+ parser.currentLine.length - parser.offset,
+ false
+ );
+ return 2;
+ } else {
+ return 0;
+ }
+ },
+
+ // list item
+ function(parser, container) {
+ var data;
+
+ if (
+ (!parser.indented || container.type === "list") &&
+ (data = parseListMarker(parser, container))
+ ) {
+ parser.closeUnmatchedBlocks();
+
+ // add the list if needed
+ if (
+ parser.tip.type !== "list" ||
+ !listsMatch(container._listData, data)
+ ) {
+ container = parser.addChild("list", parser.nextNonspace);
+ container._listData = data;
+ }
+
+ // add the list item
+ container = parser.addChild("item", parser.nextNonspace);
+ container._listData = data;
+ return 1;
+ } else {
+ return 0;
+ }
+ },
+
+ // indented code block
+ function(parser) {
+ if (
+ parser.indented &&
+ parser.tip.type !== "paragraph" &&
+ !parser.blank
+ ) {
+ // indented code
+ parser.advanceOffset(CODE_INDENT, true);
+ parser.closeUnmatchedBlocks();
+ parser.addChild("code_block", parser.offset);
+ return 2;
+ } else {
+ return 0;
+ }
+ }
+ ];
+
+ var advanceOffset = function(count, columns) {
+ var currentLine = this.currentLine;
+ var charsToTab, charsToAdvance;
+ var c;
+ while (count > 0 && (c = currentLine[this.offset])) {
+ if (c === "\t") {
+ charsToTab = 4 - (this.column % 4);
+ if (columns) {
+ this.partiallyConsumedTab = charsToTab > count;
+ charsToAdvance = charsToTab > count ? count : charsToTab;
+ this.column += charsToAdvance;
+ this.offset += this.partiallyConsumedTab ? 0 : 1;
+ count -= charsToAdvance;
+ } else {
+ this.partiallyConsumedTab = false;
+ this.column += charsToTab;
+ this.offset += 1;
+ count -= 1;
+ }
+ } else {
+ this.partiallyConsumedTab = false;
+ this.offset += 1;
+ this.column += 1; // assume ascii; block starts are ascii
+ count -= 1;
+ }
+ }
+ };
+
+ var advanceNextNonspace = function() {
+ this.offset = this.nextNonspace;
+ this.column = this.nextNonspaceColumn;
+ this.partiallyConsumedTab = false;
+ };
+
+ var findNextNonspace = function() {
+ var currentLine = this.currentLine;
+ var i = this.offset;
+ var cols = this.column;
+ var c;
+
+ while ((c = currentLine.charAt(i)) !== "") {
+ if (c === " ") {
+ i++;
+ cols++;
+ } else if (c === "\t") {
+ i++;
+ cols += 4 - (cols % 4);
+ } else {
+ break;
+ }
+ }
+ this.blank = c === "\n" || c === "\r" || c === "";
+ this.nextNonspace = i;
+ this.nextNonspaceColumn = cols;
+ this.indent = this.nextNonspaceColumn - this.column;
+ this.indented = this.indent >= CODE_INDENT;
+ };
+
+ // Analyze a line of text and update the document appropriately.
+ // We parse markdown text by calling this on each line of input,
+ // then finalizing the document.
+ var incorporateLine = function(ln) {
+ var all_matched = true;
+ var t;
+
+ var container = this.doc;
+ this.oldtip = this.tip;
+ this.offset = 0;
+ this.column = 0;
+ this.blank = false;
+ this.partiallyConsumedTab = false;
+ this.lineNumber += 1;
+
+ // replace NUL characters for security
+ if (ln.indexOf("\u0000") !== -1) {
+ ln = ln.replace(/\0/g, "\uFFFD");
+ }
+
+ this.currentLine = ln;
+
+ // For each containing block, try to parse the associated line start.
+ // Bail out on failure: container will point to the last matching block.
+ // Set all_matched to false if not all containers match.
+ var lastChild;
+ while ((lastChild = container._lastChild) && lastChild._open) {
+ container = lastChild;
+
+ this.findNextNonspace();
+
+ switch (this.blocks[container.type].continue(this, container)) {
+ case 0: // we've matched, keep going
+ break;
+ case 1: // we've failed to match a block
+ all_matched = false;
+ break;
+ case 2: // we've hit end of line for fenced code close and can return
+ return;
+ default:
+ throw "continue returned illegal value, must be 0, 1, or 2";
+ }
+ if (!all_matched) {
+ container = container._parent; // back up to last matching block
+ break;
+ }
+ }
+
+ this.allClosed = container === this.oldtip;
+ this.lastMatchedContainer = container;
+
+ var matchedLeaf =
+ container.type !== "paragraph" && blocks[container.type].acceptsLines;
+ var starts = this.blockStarts;
+ var startsLen = starts.length;
+ // Unless last matched container is a code block, try new container starts,
+ // adding children to the last matched container:
+ while (!matchedLeaf) {
+ this.findNextNonspace();
+
+ // this is a little performance optimization:
+ if (
+ !this.indented &&
+ !reMaybeSpecial.test(ln.slice(this.nextNonspace))
+ ) {
+ this.advanceNextNonspace();
+ break;
+ }
+
+ var i = 0;
+ while (i < startsLen) {
+ var res = starts[i](this, container);
+ if (res === 1) {
+ container = this.tip;
+ break;
+ } else if (res === 2) {
+ container = this.tip;
+ matchedLeaf = true;
+ break;
+ } else {
+ i++;
+ }
+ }
+
+ if (i === startsLen) {
+ // nothing matched
+ this.advanceNextNonspace();
+ break;
+ }
+ }
+
+ // What remains at the offset is a text line. Add the text to the
+ // appropriate container.
+
+ // First check for a lazy paragraph continuation:
+ if (!this.allClosed && !this.blank && this.tip.type === "paragraph") {
+ // lazy paragraph continuation
+ this.addLine();
+ } else {
+ // not a lazy continuation
+
+ // finalize any blocks not matched
+ this.closeUnmatchedBlocks();
+ if (this.blank && container.lastChild) {
+ container.lastChild._lastLineBlank = true;
+ }
+
+ t = container.type;
+
+ // Block quote lines are never blank as they start with >
+ // and we don't count blanks in fenced code for purposes of tight/loose
+ // lists or breaking out of lists. We also don't set _lastLineBlank
+ // on an empty list item, or if we just closed a fenced block.
+ var lastLineBlank =
+ this.blank &&
+ !(
+ t === "block_quote" ||
+ (t === "code_block" && container._isFenced) ||
+ (t === "item" &&
+ !container._firstChild &&
+ container.sourcepos[0][0] === this.lineNumber)
+ );
+
+ // propagate lastLineBlank up through parents:
+ var cont = container;
+ while (cont) {
+ cont._lastLineBlank = lastLineBlank;
+ cont = cont._parent;
+ }
+
+ if (this.blocks[t].acceptsLines) {
+ this.addLine();
+ // if HtmlBlock, check for end condition
+ if (
+ t === "html_block" &&
+ container._htmlBlockType >= 1 &&
+ container._htmlBlockType <= 5 &&
+ reHtmlBlockClose[container._htmlBlockType].test(
+ this.currentLine.slice(this.offset)
+ )
+ ) {
+ this.lastLineLength = ln.length;
+ this.finalize(container, this.lineNumber);
+ }
+ } else if (this.offset < ln.length && !this.blank) {
+ // create paragraph container for line
+ container = this.addChild("paragraph", this.offset);
+ this.advanceNextNonspace();
+ this.addLine();
+ }
+ }
+ this.lastLineLength = ln.length;
+ };
+
+ // Finalize a block. Close it and do any necessary postprocessing,
+ // e.g. creating string_content from strings, setting the 'tight'
+ // or 'loose' status of a list, and parsing the beginnings
+ // of paragraphs for reference definitions. Reset the tip to the
+ // parent of the closed block.
+ var finalize = function(block, lineNumber) {
+ var above = block._parent;
+ block._open = false;
+ block.sourcepos[1] = [lineNumber, this.lastLineLength];
+
+ this.blocks[block.type].finalize(this, block);
+
+ this.tip = above;
+ };
+
+ // Walk through a block & children recursively, parsing string content
+ // into inline content where appropriate.
+ var processInlines = function(block) {
+ var node, event, t;
+ var walker = block.walker();
+ this.inlineParser.refmap = this.refmap;
+ this.inlineParser.options = this.options;
+ while ((event = walker.next())) {
+ node = event.node;
+ t = node.type;
+ if (!event.entering && (t === "paragraph" || t === "heading")) {
+ this.inlineParser.parse(node);
+ }
+ }
+ };
+
+ var Document = function() {
+ var doc = new Node("document", [
+ [1, 1],
+ [0, 0]
+ ]);
+ return doc;
+ };
+
+ // The main parsing function. Returns a parsed document AST.
+ var parse = function(input) {
+ this.doc = new Document();
+ this.tip = this.doc;
+ this.refmap = {};
+ this.lineNumber = 0;
+ this.lastLineLength = 0;
+ this.offset = 0;
+ this.column = 0;
+ this.lastMatchedContainer = this.doc;
+ this.currentLine = "";
+ if (this.options.time) {
+ console.time("preparing input");
+ }
+ var lines = input.split(reLineEnding);
+ var len = lines.length;
+ if (input.charCodeAt(input.length - 1) === C_NEWLINE$1) {
+ // ignore last blank line created by final newline
+ len -= 1;
+ }
+ if (this.options.time) {
+ console.timeEnd("preparing input");
+ }
+ if (this.options.time) {
+ console.time("block parsing");
+ }
+ for (var i = 0; i < len; i++) {
+ this.incorporateLine(lines[i]);
+ }
+ while (this.tip) {
+ this.finalize(this.tip, len);
+ }
+ if (this.options.time) {
+ console.timeEnd("block parsing");
+ }
+ if (this.options.time) {
+ console.time("inline parsing");
+ }
+ this.processInlines(this.doc);
+ if (this.options.time) {
+ console.timeEnd("inline parsing");
+ }
+ return this.doc;
+ };
+
+ // The Parser object.
+ function Parser(options) {
+ return {
+ doc: new Document(),
+ blocks: blocks,
+ blockStarts: blockStarts,
+ tip: this.doc,
+ oldtip: this.doc,
+ currentLine: "",
+ lineNumber: 0,
+ offset: 0,
+ column: 0,
+ nextNonspace: 0,
+ nextNonspaceColumn: 0,
+ indent: 0,
+ indented: false,
+ blank: false,
+ partiallyConsumedTab: false,
+ allClosed: true,
+ lastMatchedContainer: this.doc,
+ refmap: {},
+ lastLineLength: 0,
+ inlineParser: new InlineParser(options),
+ findNextNonspace: findNextNonspace,
+ advanceOffset: advanceOffset,
+ advanceNextNonspace: advanceNextNonspace,
+ addLine: addLine,
+ addChild: addChild,
+ incorporateLine: incorporateLine,
+ finalize: finalize,
+ processInlines: processInlines,
+ closeUnmatchedBlocks: closeUnmatchedBlocks,
+ parse: parse,
+ options: options || {}
+ };
+ }
+
+ function Renderer() {}
+
+ /**
+ * Walks the AST and calls member methods for each Node type.
+ *
+ * @param ast {Node} The root of the abstract syntax tree.
+ */
+ function render(ast) {
+ var walker = ast.walker(),
+ event,
+ type;
+
+ this.buffer = "";
+ this.lastOut = "\n";
+
+ while ((event = walker.next())) {
+ type = event.node.type;
+ if (this[type]) {
+ this[type](event.node, event.entering);
+ }
+ }
+ return this.buffer;
+ }
+
+ /**
+ * Concatenate a literal string to the buffer.
+ *
+ * @param str {String} The string to concatenate.
+ */
+ function lit(str) {
+ this.buffer += str;
+ this.lastOut = str;
+ }
+
+ /**
+ * Output a newline to the buffer.
+ */
+ function cr() {
+ if (this.lastOut !== "\n") {
+ this.lit("\n");
+ }
+ }
+
+ /**
+ * Concatenate a string to the buffer possibly escaping the content.
+ *
+ * Concrete renderer implementations should override this method.
+ *
+ * @param str {String} The string to concatenate.
+ */
+ function out(str) {
+ this.lit(str);
+ }
+
+ /**
+ * Escape a string for the target renderer.
+ *
+ * Abstract function that should be implemented by concrete
+ * renderer implementations.
+ *
+ * @param str {String} The string to escape.
+ */
+ function esc(str) {
+ return str;
+ }
+
+ Renderer.prototype.render = render;
+ Renderer.prototype.out = out;
+ Renderer.prototype.lit = lit;
+ Renderer.prototype.cr = cr;
+ Renderer.prototype.esc = esc;
+
+ var reUnsafeProtocol = /^javascript:|vbscript:|file:|data:/i;
+ var reSafeDataProtocol = /^data:image\/(?:png|gif|jpeg|webp)/i;
+
+ var potentiallyUnsafe = function(url) {
+ return reUnsafeProtocol.test(url) && !reSafeDataProtocol.test(url);
+ };
+
+ // Helper function to produce an HTML tag.
+ function tag(name, attrs, selfclosing) {
+ if (this.disableTags > 0) {
+ return;
+ }
+ this.buffer += "<" + name;
+ if (attrs && attrs.length > 0) {
+ var i = 0;
+ var attrib;
+ while ((attrib = attrs[i]) !== undefined) {
+ this.buffer += " " + attrib[0] + '="' + attrib[1] + '"';
+ i++;
+ }
+ }
+ if (selfclosing) {
+ this.buffer += " /";
+ }
+ this.buffer += ">";
+ this.lastOut = ">";
+ }
+
+ function HtmlRenderer(options) {
+ options = options || {};
+ // by default, soft breaks are rendered as newlines in HTML
+ options.softbreak = options.softbreak || "\n";
+ // set to "
" to make them hard breaks
+ // set to " " if you want to ignore line wrapping in source
+ this.esc = options.esc || escapeXml;
+ // escape html with a custom function
+ // else use escapeXml
+
+ this.disableTags = 0;
+ this.lastOut = "\n";
+ this.options = options;
+ }
+
+ /* Node methods */
+
+ function text$1(node) {
+ this.out(node.literal);
+ }
+
+ function softbreak() {
+ this.lit(this.options.softbreak);
+ }
+
+ function linebreak() {
+ this.tag("br", [], true);
+ this.cr();
+ }
+
+ function link(node, entering) {
+ var attrs = this.attrs(node);
+ if (entering) {
+ if (!(this.options.safe && potentiallyUnsafe(node.destination))) {
+ attrs.push(["href", this.esc(node.destination)]);
+ }
+ if (node.title) {
+ attrs.push(["title", this.esc(node.title)]);
+ }
+ this.tag("a", attrs);
+ } else {
+ this.tag("/a");
+ }
+ }
+
+ function image$1(node, entering) {
+ if (entering) {
+ if (this.disableTags === 0) {
+ if (this.options.safe && potentiallyUnsafe(node.destination)) {
+ this.lit('');
+ }
+ }
+ }
+
+ function emph(node, entering) {
+ this.tag(entering ? "em" : "/em");
+ }
+
+ function strong(node, entering) {
+ this.tag(entering ? "strong" : "/strong");
+ }
+
+ function paragraph(node, entering) {
+ var grandparent = node.parent.parent,
+ attrs = this.attrs(node);
+ if (grandparent !== null && grandparent.type === "list") {
+ if (grandparent.listTight) {
+ return;
+ }
+ }
+ if (entering) {
+ this.cr();
+ this.tag("p", attrs);
+ } else {
+ this.tag("/p");
+ this.cr();
+ }
+ }
+
+ function heading(node, entering) {
+ var tagname = "h" + node.level,
+ attrs = this.attrs(node);
+ if (entering) {
+ this.cr();
+ this.tag(tagname, attrs);
+ } else {
+ this.tag("/" + tagname);
+ this.cr();
+ }
+ }
+
+ function code(node) {
+ this.tag("code");
+ this.out(node.literal);
+ this.tag("/code");
+ }
+
+ function code_block(node) {
+ var info_words = node.info ? node.info.split(/\s+/) : [],
+ attrs = this.attrs(node);
+ if (info_words.length > 0 && info_words[0].length > 0) {
+ attrs.push(["class", "language-" + this.esc(info_words[0])]);
+ }
+ this.cr();
+ this.tag("pre");
+ this.tag("code", attrs);
+ this.out(node.literal);
+ this.tag("/code");
+ this.tag("/pre");
+ this.cr();
+ }
+
+ function thematic_break(node) {
+ var attrs = this.attrs(node);
+ this.cr();
+ this.tag("hr", attrs, true);
+ this.cr();
+ }
+
+ function block_quote(node, entering) {
+ var attrs = this.attrs(node);
+ if (entering) {
+ this.cr();
+ this.tag("blockquote", attrs);
+ this.cr();
+ } else {
+ this.cr();
+ this.tag("/blockquote");
+ this.cr();
+ }
+ }
+
+ function list(node, entering) {
+ var tagname = node.listType === "bullet" ? "ul" : "ol",
+ attrs = this.attrs(node);
+
+ if (entering) {
+ var start = node.listStart;
+ if (start !== null && start !== 1) {
+ attrs.push(["start", start.toString()]);
+ }
+ this.cr();
+ this.tag(tagname, attrs);
+ this.cr();
+ } else {
+ this.cr();
+ this.tag("/" + tagname);
+ this.cr();
+ }
+ }
+
+ function item(node, entering) {
+ var attrs = this.attrs(node);
+ if (entering) {
+ this.tag("li", attrs);
+ } else {
+ this.tag("/li");
+ this.cr();
+ }
+ }
+
+ function html_inline(node) {
+ if (this.options.safe) {
+ this.lit("");
+ } else {
+ this.lit(node.literal);
+ }
+ }
+
+ function html_block(node) {
+ this.cr();
+ if (this.options.safe) {
+ this.lit("");
+ } else {
+ this.lit(node.literal);
+ }
+ this.cr();
+ }
+
+ function custom_inline(node, entering) {
+ if (entering && node.onEnter) {
+ this.lit(node.onEnter);
+ } else if (!entering && node.onExit) {
+ this.lit(node.onExit);
+ }
+ }
+
+ function custom_block(node, entering) {
+ this.cr();
+ if (entering && node.onEnter) {
+ this.lit(node.onEnter);
+ } else if (!entering && node.onExit) {
+ this.lit(node.onExit);
+ }
+ this.cr();
+ }
+
+ /* Helper methods */
+
+ function out$1(s) {
+ this.lit(this.esc(s));
+ }
+
+ function attrs(node) {
+ var att = [];
+ if (this.options.sourcepos) {
+ var pos = node.sourcepos;
+ if (pos) {
+ att.push([
+ "data-sourcepos",
+ String(pos[0][0]) +
+ ":" +
+ String(pos[0][1]) +
+ "-" +
+ String(pos[1][0]) +
+ ":" +
+ String(pos[1][1])
+ ]);
+ }
+ }
+ return att;
+ }
+
+ // quick browser-compatible inheritance
+ HtmlRenderer.prototype = Object.create(Renderer.prototype);
+
+ HtmlRenderer.prototype.text = text$1;
+ HtmlRenderer.prototype.html_inline = html_inline;
+ HtmlRenderer.prototype.html_block = html_block;
+ HtmlRenderer.prototype.softbreak = softbreak;
+ HtmlRenderer.prototype.linebreak = linebreak;
+ HtmlRenderer.prototype.link = link;
+ HtmlRenderer.prototype.image = image$1;
+ HtmlRenderer.prototype.emph = emph;
+ HtmlRenderer.prototype.strong = strong;
+ HtmlRenderer.prototype.paragraph = paragraph;
+ HtmlRenderer.prototype.heading = heading;
+ HtmlRenderer.prototype.code = code;
+ HtmlRenderer.prototype.code_block = code_block;
+ HtmlRenderer.prototype.thematic_break = thematic_break;
+ HtmlRenderer.prototype.block_quote = block_quote;
+ HtmlRenderer.prototype.list = list;
+ HtmlRenderer.prototype.item = item;
+ HtmlRenderer.prototype.custom_inline = custom_inline;
+ HtmlRenderer.prototype.custom_block = custom_block;
+
+ HtmlRenderer.prototype.esc = escapeXml;
+
+ HtmlRenderer.prototype.out = out$1;
+ HtmlRenderer.prototype.tag = tag;
+ HtmlRenderer.prototype.attrs = attrs;
+
+ var reXMLTag = /\<[^>]*\>/;
+
+ function toTagName(s) {
+ return s.replace(/([a-z])([A-Z])/g, "$1_$2").toLowerCase();
+ }
+
+ function XmlRenderer(options) {
+ options = options || {};
+
+ this.disableTags = 0;
+ this.lastOut = "\n";
+
+ this.indentLevel = 0;
+ this.indent = " ";
+
+ this.esc = options.esc || escapeXml;
+ // escape html with a custom function
+ // else use escapeXml
+
+ this.options = options;
+ }
+
+ function render$1(ast) {
+ this.buffer = "";
+
+ var attrs;
+ var tagname;
+ var walker = ast.walker();
+ var event, node, entering;
+ var container;
+ var selfClosing;
+ var nodetype;
+
+ var options = this.options;
+
+ if (options.time) {
+ console.time("rendering");
+ }
+
+ this.buffer += '\n';
+ this.buffer += '\n';
+
+ while ((event = walker.next())) {
+ entering = event.entering;
+ node = event.node;
+ nodetype = node.type;
+
+ container = node.isContainer;
+
+ selfClosing =
+ nodetype === "thematic_break" ||
+ nodetype === "linebreak" ||
+ nodetype === "softbreak";
+
+ tagname = toTagName(nodetype);
+
+ if (entering) {
+ attrs = [];
+
+ switch (nodetype) {
+ case "document":
+ attrs.push(["xmlns", "http://commonmark.org/xml/1.0"]);
+ break;
+ case "list":
+ if (node.listType !== null) {
+ attrs.push(["type", node.listType.toLowerCase()]);
+ }
+ if (node.listStart !== null) {
+ attrs.push(["start", String(node.listStart)]);
+ }
+ if (node.listTight !== null) {
+ attrs.push([
+ "tight",
+ node.listTight ? "true" : "false"
+ ]);
+ }
+ var delim = node.listDelimiter;
+ if (delim !== null) {
+ var delimword = "";
+ if (delim === ".") {
+ delimword = "period";
+ } else {
+ delimword = "paren";
+ }
+ attrs.push(["delimiter", delimword]);
+ }
+ break;
+ case "code_block":
+ if (node.info) {
+ attrs.push(["info", node.info]);
+ }
+ break;
+ case "heading":
+ attrs.push(["level", String(node.level)]);
+ break;
+ case "link":
+ case "image":
+ attrs.push(["destination", node.destination]);
+ attrs.push(["title", node.title]);
+ break;
+ case "custom_inline":
+ case "custom_block":
+ attrs.push(["on_enter", node.onEnter]);
+ attrs.push(["on_exit", node.onExit]);
+ break;
+ }
+ if (options.sourcepos) {
+ var pos = node.sourcepos;
+ if (pos) {
+ attrs.push([
+ "sourcepos",
+ String(pos[0][0]) +
+ ":" +
+ String(pos[0][1]) +
+ "-" +
+ String(pos[1][0]) +
+ ":" +
+ String(pos[1][1])
+ ]);
+ }
+ }
+
+ this.cr();
+ this.out(this.tag(tagname, attrs, selfClosing));
+ if (container) {
+ this.indentLevel += 1;
+ } else if (!container && !selfClosing) {
+ var lit = node.literal;
+ if (lit) {
+ this.out(this.esc(lit));
+ }
+ this.out(this.tag("/" + tagname));
+ }
+ } else {
+ this.indentLevel -= 1;
+ this.cr();
+ this.out(this.tag("/" + tagname));
+ }
+ }
+ if (options.time) {
+ console.timeEnd("rendering");
+ }
+ this.buffer += "\n";
+ return this.buffer;
+ }
+
+ function out$2(s) {
+ if (this.disableTags > 0) {
+ this.buffer += s.replace(reXMLTag, "");
+ } else {
+ this.buffer += s;
+ }
+ this.lastOut = s;
+ }
+
+ function cr$1() {
+ if (this.lastOut !== "\n") {
+ this.buffer += "\n";
+ this.lastOut = "\n";
+ for (var i = this.indentLevel; i > 0; i--) {
+ this.buffer += this.indent;
+ }
+ }
+ }
+
+ // Helper function to produce an XML tag.
+ function tag$1(name, attrs, selfclosing) {
+ var result = "<" + name;
+ if (attrs && attrs.length > 0) {
+ var i = 0;
+ var attrib;
+ while ((attrib = attrs[i]) !== undefined) {
+ result += " " + attrib[0] + '="' + this.esc(attrib[1]) + '"';
+ i++;
+ }
+ }
+ if (selfclosing) {
+ result += " /";
+ }
+ result += ">";
+ return result;
+ }
+
+ // quick browser-compatible inheritance
+ XmlRenderer.prototype = Object.create(Renderer.prototype);
+
+ XmlRenderer.prototype.render = render$1;
+ XmlRenderer.prototype.out = out$2;
+ XmlRenderer.prototype.cr = cr$1;
+ XmlRenderer.prototype.tag = tag$1;
+ XmlRenderer.prototype.esc = escapeXml;
+
+ exports.HtmlRenderer = HtmlRenderer;
+ exports.Node = Node;
+ exports.Parser = Parser;
+ exports.Renderer = Renderer;
+ exports.XmlRenderer = XmlRenderer;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
diff --git a/lib/docs/index.html b/lib/docs/index.html
index e2c0d79e23..6b9f95a7d0 100644
--- a/lib/docs/index.html
+++ b/lib/docs/index.html
@@ -24,6 +24,7 @@
--search-bg-color: #f3f3f3;
--search-bg-color-focus: #ffffff;
--search-sh-color: rgba(0, 0, 0, 0.18);
+ --search-other-results-color: rgb(100, 100, 100);
--help-sh-color: rgba(0, 0, 0, 0.75);
--help-bg-color: #aaa;
}
@@ -83,6 +84,7 @@
.flex-right {
display: flex;
+ flex-direction: column;
overflow: auto;
-webkit-overflow-scrolling: touch;
flex-grow: 1;
@@ -200,7 +202,7 @@
}
#guides {
- padding: 1rem 0.7rem 2.4rem 1.4rem;
+ padding: 0rem 0.7rem 2.4rem 1.4rem;
box-sizing: border-box;
font-size: 1rem;
background-color: var(--bg-color);
@@ -209,7 +211,7 @@
/* docs section */
.docs {
- padding: 1rem 0.7rem 2.4rem 1.4rem;
+ padding: 0rem 0.7rem 2.4rem 1.4rem;
font-size: 1rem;
background-color: var(--bg-color);
overflow-wrap: break-word;
@@ -247,7 +249,38 @@
top: 5px;
left: 5px;
}
-
+
+ .other-results {
+ line-height: 1em;
+ position: relative;
+ outline: 0;
+ border: 0;
+ color: var(--search-other-results-color);
+ text-align: center;
+ height: 1.5em;
+ opacity: .5;
+ }
+ .other-results:before {
+ content: '';
+ background: var(--search-other-results-color);
+ position: absolute;
+ left: 0;
+ top: 50%;
+ width: 100%;
+ height: 1px;
+ }
+
+ .other-results:after {
+ content: "other results";
+ position: relative;
+ display: inline-block;
+ padding: 0 .5em;
+ line-height: 1.5em;
+ color: var(--search-other-results-color);
+ background-color: var(--bg-color);
+ }
+
+
.docs a {
color: var(--link-color);
}
@@ -505,6 +538,7 @@
--search-bg-color: #3c3c3c;
--search-bg-color-focus: #000;
--search-sh-color: rgba(255, 255, 255, 0.28);
+ --search-other-results-color: rgba(255, 255, 255, 0.28);
--help-sh-color: rgba(142, 142, 142, 0.5);
--help-bg-color: #333;
}
@@ -717,22 +751,38 @@
Here are some things you can try:
-Press ? to see keyboard shortcuts and Esc to return.
-