Rules-For-Quantumult-X/Scripts/AdBlock/Wechat/UnlockLink.js

4171 lines
140 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

let persisVal = read("UnblockURLinWeChat");
let useCache = persisVal.useCache === "true"; //是否在微信中用快照显示被封禁的链接
let forceRedirect = persisVal.forceRedirect === "true"; //是否在微信中进行强制重定向,允许的情况下可能出现循环重定向
let wechatExportKey = persisVal.wechatExportKey || ""; //微信的一个 key暂未研究如何生成测试中仅 macOS 微信打开链接跳转浏览器时会缺失,导致无法解析原始链接
if (typeof $argument != "undefined") {
let arg = Object.fromEntries($argument.split("&").map((item) => item.split("=")));
useCache = arg.useCache === "true";
forceRedirect = arg.forceRedirect === "ture";
}
const respBody = $response.body;
//const cacheURL = "https://webcache.googleusercontent.com/search?q=cache:";
const cacheURL = "https://web.archive.org/web/20991231999999/";
const alipayScheme = "alipays://platformapi/startapp?appId=20000067&url=";
const isQuanX = typeof $notify != "undefined";
const isSurgeiOS =
"undefined" !== typeof $environment &&
$environment["surge-version"] &&
$environment.system == "iOS";
const isLooniOS = typeof $loon != "undefined" && /iPhone/.test($loon);
const isStashiOS =
"undefined" !== typeof $environment &&
$environment["stash-version"] &&
$environment.system == "iOS";
const isShadowrocket = "undefined" !== typeof $rocket;
const isLanceX = "undefined" != typeof $native;
const redirectStatus = isQuanX ? "HTTP/1.1 302 Temporary Redirect" : 302;
const cgiDataReg = /var cgiData = ([\s\S]*);\s*<\/script>/;
let cgiData = JSON.parse(cgiDataReg.exec(respBody)[1].replace(/\\/g, ""));
// HTML entities by https://github.com/mathiasbynens/he
// prettier-ignore
(function (r) {
var e = "object" == typeof exports && exports,
a = "object" == typeof module && module && module.exports == e && module,
t = "object" == typeof global && global;
t.global !== t && t.window !== t || (r = t);
var o = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g, s = /[\x01-\x7F]/g,
u = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,
c = /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,
l = {
"­": "shy",
"": "zwnj",
"": "zwj",
"": "lrm",
"": "ic",
"": "it",
"": "af",
"": "rlm",
"": "ZeroWidthSpace",
"": "NoBreak",
"̑": "DownBreve",
"⃛": "tdot",
"⃜": "DotDot",
"\t": "Tab",
"\n": "NewLine",
"": "puncsp",
"": "MediumSpace",
"": "thinsp",
"": "hairsp",
"": "emsp13",
"": "ensp",
"": "emsp14",
"": "emsp",
"": "numsp",
" ": "nbsp",
"": "ThickSpace",
"‾": "oline",
_: "lowbar",
"": "dash",
"": "ndash",
"—": "mdash",
"―": "horbar",
",": "comma",
";": "semi",
"⁏": "bsemi",
":": "colon",
"⩴": "Colone",
"!": "excl",
"¡": "iexcl",
"?": "quest",
"¿": "iquest",
".": "period",
"‥": "nldr",
"…": "mldr",
"·": "middot",
"'": "apos",
"": "lsquo",
"": "rsquo",
"": "sbquo",
"": "lsaquo",
"": "rsaquo",
'"': "quot",
"“": "ldquo",
"”": "rdquo",
"„": "bdquo",
"«": "laquo",
"»": "raquo",
"(": "lpar",
")": "rpar",
"[": "lsqb",
"]": "rsqb",
"{": "lcub",
"}": "rcub",
"⌈": "lceil",
"⌉": "rceil",
"⌊": "lfloor",
"⌋": "rfloor",
"⦅": "lopar",
"⦆": "ropar",
"⦋": "lbrke",
"⦌": "rbrke",
"⦍": "lbrkslu",
"⦎": "rbrksld",
"⦏": "lbrksld",
"⦐": "rbrkslu",
"⦑": "langd",
"⦒": "rangd",
"⦓": "lparlt",
"⦔": "rpargt",
"⦕": "gtlPar",
"⦖": "ltrPar",
"⟦": "lobrk",
"⟧": "robrk",
"⟨": "lang",
"⟩": "rang",
"⟪": "Lang",
"⟫": "Rang",
"⟬": "loang",
"⟭": "roang",
"": "lbbrk",
"": "rbbrk",
"‖": "Vert",
"§": "sect",
"¶": "para",
"@": "commat",
"*": "ast",
"/": "sol",
undefined: null,
"&": "amp",
"#": "num",
"%": "percnt",
"‰": "permil",
"‱": "pertenk",
"†": "dagger",
"‡": "Dagger",
"•": "bull",
"": "hybull",
"": "prime",
"″": "Prime",
"‴": "tprime",
"⁗": "qprime",
"": "bprime",
"": "caret",
"`": "grave",
"´": "acute",
"˜": "tilde",
"^": "Hat",
"¯": "macr",
"˘": "breve",
"˙": "dot",
"¨": "die",
"˚": "ring",
"˝": "dblac",
"¸": "cedil",
"˛": "ogon",
"ˆ": "circ",
"ˇ": "caron",
"°": "deg",
"©": "copy",
"®": "reg",
"℗": "copysr",
"℘": "wp",
"℞": "rx",
"℧": "mho",
"℩": "iiota",
"←": "larr",
"↚": "nlarr",
"→": "rarr",
"↛": "nrarr",
"↑": "uarr",
"↓": "darr",
"↔": "harr",
"↮": "nharr",
"↕": "varr",
"↖": "nwarr",
"↗": "nearr",
"↘": "searr",
"↙": "swarr",
"↝": "rarrw",
"↝̸": "nrarrw",
"↞": "Larr",
"↟": "Uarr",
"↠": "Rarr",
"↡": "Darr",
"↢": "larrtl",
"↣": "rarrtl",
"↤": "mapstoleft",
"↥": "mapstoup",
"↦": "map",
"↧": "mapstodown",
"↩": "larrhk",
"↪": "rarrhk",
"↫": "larrlp",
"↬": "rarrlp",
"↭": "harrw",
"↰": "lsh",
"↱": "rsh",
"↲": "ldsh",
"↳": "rdsh",
"↵": "crarr",
"↶": "cularr",
"↷": "curarr",
"↺": "olarr",
"↻": "orarr",
"↼": "lharu",
"↽": "lhard",
"↾": "uharr",
"↿": "uharl",
"⇀": "rharu",
"⇁": "rhard",
"⇂": "dharr",
"⇃": "dharl",
"⇄": "rlarr",
"⇅": "udarr",
"⇆": "lrarr",
"⇇": "llarr",
"⇈": "uuarr",
"⇉": "rrarr",
"⇊": "ddarr",
"⇋": "lrhar",
"⇌": "rlhar",
"⇐": "lArr",
"⇍": "nlArr",
"⇑": "uArr",
"⇒": "rArr",
"⇏": "nrArr",
"⇓": "dArr",
"⇔": "iff",
"⇎": "nhArr",
"⇕": "vArr",
"⇖": "nwArr",
"⇗": "neArr",
"⇘": "seArr",
"⇙": "swArr",
"⇚": "lAarr",
"⇛": "rAarr",
"⇝": "zigrarr",
"⇤": "larrb",
"⇥": "rarrb",
"⇵": "duarr",
"⇽": "loarr",
"⇾": "roarr",
"⇿": "hoarr",
"∀": "forall",
"∁": "comp",
"∂": "part",
"∂̸": "npart",
"∃": "exist",
"∄": "nexist",
"∅": "empty",
"∇": "Del",
"∈": "in",
"∉": "notin",
"∋": "ni",
"∌": "notni",
"϶": "bepsi",
"∏": "prod",
"∐": "coprod",
"∑": "sum",
"+": "plus",
"±": "pm",
"÷": "div",
"×": "times",
"<": "lt",
"≮": "nlt",
"<⃒": "nvlt",
"=": "equals",
"≠": "ne",
"=⃥": "bne",
"⩵": "Equal",
">": "gt",
"≯": "ngt",
">⃒": "nvgt",
"¬": "not",
"|": "vert",
"¦": "brvbar",
"": "minus",
"∓": "mp",
"∔": "plusdo",
"": "frasl",
"": "setmn",
"": "lowast",
"∘": "compfn",
"√": "Sqrt",
"∝": "prop",
"∞": "infin",
"∟": "angrt",
"∠": "ang",
"∠⃒": "nang",
"∡": "angmsd",
"∢": "angsph",
"": "mid",
"∤": "nmid",
"∥": "par",
"∦": "npar",
"∧": "and",
"": "or",
"∩": "cap",
"∩︀": "caps",
"": "cup",
"": "cups",
"∫": "int",
"∬": "Int",
"∭": "tint",
"⨌": "qint",
"∮": "oint",
"∯": "Conint",
"∰": "Cconint",
"∱": "cwint",
"∲": "cwconint",
"∳": "awconint",
"∴": "there4",
"∵": "becaus",
"": "ratio",
"∷": "Colon",
"∸": "minusd",
"∺": "mDDot",
"∻": "homtht",
"": "sim",
"≁": "nsim",
"∼⃒": "nvsim",
"∽": "bsim",
"∽̱": "race",
"∾": "ac",
"∾̳": "acE",
"∿": "acd",
"≀": "wr",
"≂": "esim",
"≂̸": "nesim",
"≃": "sime",
"≄": "nsime",
"≅": "cong",
"≇": "ncong",
"≆": "simne",
"≈": "ap",
"≉": "nap",
"≊": "ape",
"≋": "apid",
"≋̸": "napid",
"≌": "bcong",
"≍": "CupCap",
"≭": "NotCupCap",
"≍⃒": "nvap",
"≎": "bump",
"≎̸": "nbump",
"≏": "bumpe",
"≏̸": "nbumpe",
"≐": "doteq",
"≐̸": "nedot",
"≑": "eDot",
"≒": "efDot",
"≓": "erDot",
"≔": "colone",
"≕": "ecolon",
"≖": "ecir",
"≗": "cire",
"≙": "wedgeq",
"≚": "veeeq",
"≜": "trie",
"≟": "equest",
"≡": "equiv",
"≢": "nequiv",
"≡⃥": "bnequiv",
"≤": "le",
"≰": "nle",
"≤⃒": "nvle",
"≥": "ge",
"≱": "nge",
"≥⃒": "nvge",
"≦": "lE",
"≦̸": "nlE",
"≧": "gE",
"≧̸": "ngE",
"≨︀": "lvnE",
"≨": "lnE",
"≩": "gnE",
"≩︀": "gvnE",
"≪": "ll",
"≪̸": "nLtv",
"≪⃒": "nLt",
"≫": "gg",
"≫̸": "nGtv",
"≫⃒": "nGt",
"≬": "twixt",
"≲": "lsim",
"≴": "nlsim",
"≳": "gsim",
"≵": "ngsim",
"≶": "lg",
"≸": "ntlg",
"≷": "gl",
"≹": "ntgl",
"≺": "pr",
"⊀": "npr",
"≻": "sc",
"⊁": "nsc",
"≼": "prcue",
"⋠": "nprcue",
"≽": "sccue",
"⋡": "nsccue",
"≾": "prsim",
"≿": "scsim",
"≿̸": "NotSucceedsTilde",
"⊂": "sub",
"⊄": "nsub",
"⊂⃒": "vnsub",
"⊃": "sup",
"⊅": "nsup",
"⊃⃒": "vnsup",
"⊆": "sube",
"⊈": "nsube",
"⊇": "supe",
"⊉": "nsupe",
"⊊︀": "vsubne",
"⊊": "subne",
"⊋︀": "vsupne",
"⊋": "supne",
"⊍": "cupdot",
"⊎": "uplus",
"⊏": "sqsub",
"⊏̸": "NotSquareSubset",
"⊐": "sqsup",
"⊐̸": "NotSquareSuperset",
"⊑": "sqsube",
"⋢": "nsqsube",
"⊒": "sqsupe",
"⋣": "nsqsupe",
"⊓": "sqcap",
"⊓︀": "sqcaps",
"⊔": "sqcup",
"⊔︀": "sqcups",
"⊕": "oplus",
"⊖": "ominus",
"⊗": "otimes",
"⊘": "osol",
"⊙": "odot",
"⊚": "ocir",
"⊛": "oast",
"⊝": "odash",
"⊞": "plusb",
"⊟": "minusb",
"⊠": "timesb",
"⊡": "sdotb",
"⊢": "vdash",
"⊬": "nvdash",
"⊣": "dashv",
"": "top",
"⊥": "bot",
"⊧": "models",
"⊨": "vDash",
"⊭": "nvDash",
"⊩": "Vdash",
"⊮": "nVdash",
"⊪": "Vvdash",
"⊫": "VDash",
"⊯": "nVDash",
"⊰": "prurel",
"⊲": "vltri",
"⋪": "nltri",
"⊳": "vrtri",
"⋫": "nrtri",
"⊴": "ltrie",
"⋬": "nltrie",
"⊴⃒": "nvltrie",
"⊵": "rtrie",
"⋭": "nrtrie",
"⊵⃒": "nvrtrie",
"⊶": "origof",
"⊷": "imof",
"⊸": "mumap",
"⊹": "hercon",
"⊺": "intcal",
"⊻": "veebar",
"⊽": "barvee",
"⊾": "angrtvb",
"⊿": "lrtri",
"⋀": "Wedge",
"": "Vee",
"⋂": "xcap",
"": "xcup",
"⋄": "diam",
"⋅": "sdot",
"⋆": "Star",
"⋇": "divonx",
"⋈": "bowtie",
"⋉": "ltimes",
"⋊": "rtimes",
"⋋": "lthree",
"⋌": "rthree",
"⋍": "bsime",
"⋎": "cuvee",
"⋏": "cuwed",
"⋐": "Sub",
"⋑": "Sup",
"⋒": "Cap",
"⋓": "Cup",
"⋔": "fork",
"⋕": "epar",
"⋖": "ltdot",
"⋗": "gtdot",
"⋘": "Ll",
"⋘̸": "nLl",
"⋙": "Gg",
"⋙̸": "nGg",
"⋚︀": "lesg",
"⋚": "leg",
"⋛": "gel",
"⋛︀": "gesl",
"⋞": "cuepr",
"⋟": "cuesc",
"⋦": "lnsim",
"⋧": "gnsim",
"⋨": "prnsim",
"⋩": "scnsim",
"⋮": "vellip",
"⋯": "ctdot",
"⋰": "utdot",
"⋱": "dtdot",
"⋲": "disin",
"⋳": "isinsv",
"⋴": "isins",
"⋵": "isindot",
"⋵̸": "notindot",
"⋶": "notinvc",
"⋷": "notinvb",
"⋹": "isinE",
"⋹̸": "notinE",
"⋺": "nisd",
"⋻": "xnis",
"⋼": "nis",
"⋽": "notnivc",
"⋾": "notnivb",
"⌅": "barwed",
"⌆": "Barwed",
"⌌": "drcrop",
"⌍": "dlcrop",
"⌎": "urcrop",
"⌏": "ulcrop",
"⌐": "bnot",
"⌒": "profline",
"⌓": "profsurf",
"⌕": "telrec",
"⌖": "target",
"⌜": "ulcorn",
"⌝": "urcorn",
"⌞": "dlcorn",
"⌟": "drcorn",
"⌢": "frown",
"⌣": "smile",
"⌭": "cylcty",
"⌮": "profalar",
"⌶": "topbot",
"⌽": "ovbar",
"⌿": "solbar",
"⍼": "angzarr",
"⎰": "lmoust",
"⎱": "rmoust",
"⎴": "tbrk",
"⎵": "bbrk",
"⎶": "bbrktbrk",
"⏜": "OverParenthesis",
"⏝": "UnderParenthesis",
"⏞": "OverBrace",
"⏟": "UnderBrace",
"⏢": "trpezium",
"⏧": "elinters",
"␣": "blank",
"─": "boxh",
"│": "boxv",
"┌": "boxdr",
"┐": "boxdl",
"└": "boxur",
"┘": "boxul",
"├": "boxvr",
"┤": "boxvl",
"┬": "boxhd",
"┴": "boxhu",
"┼": "boxvh",
"═": "boxH",
"║": "boxV",
"╒": "boxdR",
"╓": "boxDr",
"╔": "boxDR",
"╕": "boxdL",
"╖": "boxDl",
"╗": "boxDL",
"╘": "boxuR",
"╙": "boxUr",
"╚": "boxUR",
"╛": "boxuL",
"╜": "boxUl",
"╝": "boxUL",
"╞": "boxvR",
"╟": "boxVr",
"╠": "boxVR",
"╡": "boxvL",
"╢": "boxVl",
"╣": "boxVL",
"╤": "boxHd",
"╥": "boxhD",
"╦": "boxHD",
"╧": "boxHu",
"╨": "boxhU",
"╩": "boxHU",
"╪": "boxvH",
"╫": "boxVh",
"╬": "boxVH",
"▀": "uhblk",
"▄": "lhblk",
"█": "block",
"░": "blk14",
"▒": "blk12",
"▓": "blk34",
"□": "squ",
"▪": "squf",
"▫": "EmptyVerySmallSquare",
"▭": "rect",
"▮": "marker",
"▱": "fltns",
"△": "xutri",
"▴": "utrif",
"▵": "utri",
"▸": "rtrif",
"▹": "rtri",
"▽": "xdtri",
"▾": "dtrif",
"▿": "dtri",
"◂": "ltrif",
"◃": "ltri",
"◊": "loz",
"○": "cir",
"◬": "tridot",
"◯": "xcirc",
"◸": "ultri",
"◹": "urtri",
"◺": "lltri",
"◻": "EmptySmallSquare",
"◼": "FilledSmallSquare",
"★": "starf",
"☆": "star",
"☎": "phone",
"♀": "female",
"♂": "male",
"♠": "spades",
"♣": "clubs",
"♥": "hearts",
"♦": "diams",
"♪": "sung",
"✓": "check",
"✗": "cross",
"✠": "malt",
"✶": "sext",
"❘": "VerticalSeparator",
"⟈": "bsolhsub",
"⟉": "suphsol",
"⟵": "xlarr",
"⟶": "xrarr",
"⟷": "xharr",
"⟸": "xlArr",
"⟹": "xrArr",
"⟺": "xhArr",
"⟼": "xmap",
"⟿": "dzigrarr",
"⤂": "nvlArr",
"⤃": "nvrArr",
"⤄": "nvHarr",
"⤅": "Map",
"⤌": "lbarr",
"⤍": "rbarr",
"⤎": "lBarr",
"⤏": "rBarr",
"⤐": "RBarr",
"⤑": "DDotrahd",
"⤒": "UpArrowBar",
"⤓": "DownArrowBar",
"⤖": "Rarrtl",
"⤙": "latail",
"⤚": "ratail",
"⤛": "lAtail",
"⤜": "rAtail",
"⤝": "larrfs",
"⤞": "rarrfs",
"⤟": "larrbfs",
"⤠": "rarrbfs",
"⤣": "nwarhk",
"⤤": "nearhk",
"⤥": "searhk",
"⤦": "swarhk",
"⤧": "nwnear",
"⤨": "toea",
"⤩": "tosa",
"⤪": "swnwar",
"⤳": "rarrc",
"⤳̸": "nrarrc",
"⤵": "cudarrr",
"⤶": "ldca",
"⤷": "rdca",
"⤸": "cudarrl",
"⤹": "larrpl",
"⤼": "curarrm",
"⤽": "cularrp",
"⥅": "rarrpl",
"⥈": "harrcir",
"⥉": "Uarrocir",
"⥊": "lurdshar",
"⥋": "ldrushar",
"⥎": "LeftRightVector",
"⥏": "RightUpDownVector",
"⥐": "DownLeftRightVector",
"⥑": "LeftUpDownVector",
"⥒": "LeftVectorBar",
"⥓": "RightVectorBar",
"⥔": "RightUpVectorBar",
"⥕": "RightDownVectorBar",
"⥖": "DownLeftVectorBar",
"⥗": "DownRightVectorBar",
"⥘": "LeftUpVectorBar",
"⥙": "LeftDownVectorBar",
"⥚": "LeftTeeVector",
"⥛": "RightTeeVector",
"⥜": "RightUpTeeVector",
"⥝": "RightDownTeeVector",
"⥞": "DownLeftTeeVector",
"⥟": "DownRightTeeVector",
"⥠": "LeftUpTeeVector",
"⥡": "LeftDownTeeVector",
"⥢": "lHar",
"⥣": "uHar",
"⥤": "rHar",
"⥥": "dHar",
"⥦": "luruhar",
"⥧": "ldrdhar",
"⥨": "ruluhar",
"⥩": "rdldhar",
"⥪": "lharul",
"⥫": "llhard",
"⥬": "rharul",
"⥭": "lrhard",
"⥮": "udhar",
"⥯": "duhar",
"⥰": "RoundImplies",
"⥱": "erarr",
"⥲": "simrarr",
"⥳": "larrsim",
"⥴": "rarrsim",
"⥵": "rarrap",
"⥶": "ltlarr",
"⥸": "gtrarr",
"⥹": "subrarr",
"⥻": "suplarr",
"⥼": "lfisht",
"⥽": "rfisht",
"⥾": "ufisht",
"⥿": "dfisht",
"⦚": "vzigzag",
"⦜": "vangrt",
"⦝": "angrtvbd",
"⦤": "ange",
"⦥": "range",
"⦦": "dwangle",
"⦧": "uwangle",
"⦨": "angmsdaa",
"⦩": "angmsdab",
"⦪": "angmsdac",
"⦫": "angmsdad",
"⦬": "angmsdae",
"⦭": "angmsdaf",
"⦮": "angmsdag",
"⦯": "angmsdah",
"⦰": "bemptyv",
"⦱": "demptyv",
"⦲": "cemptyv",
"⦳": "raemptyv",
"⦴": "laemptyv",
"⦵": "ohbar",
"⦶": "omid",
"⦷": "opar",
"⦹": "operp",
"⦻": "olcross",
"⦼": "odsold",
"⦾": "olcir",
"⦿": "ofcir",
"⧀": "olt",
"⧁": "ogt",
"⧂": "cirscir",
"⧃": "cirE",
"⧄": "solb",
"⧅": "bsolb",
"⧉": "boxbox",
"⧍": "trisb",
"⧎": "rtriltri",
"⧏": "LeftTriangleBar",
"⧏̸": "NotLeftTriangleBar",
"⧐": "RightTriangleBar",
"⧐̸": "NotRightTriangleBar",
"⧜": "iinfin",
"⧝": "infintie",
"⧞": "nvinfin",
"⧣": "eparsl",
"⧤": "smeparsl",
"⧥": "eqvparsl",
"⧫": "lozf",
"⧴": "RuleDelayed",
"⧶": "dsol",
"⨀": "xodot",
"⨁": "xoplus",
"⨂": "xotime",
"⨄": "xuplus",
"⨆": "xsqcup",
"⨍": "fpartint",
"⨐": "cirfnint",
"⨑": "awint",
"⨒": "rppolint",
"⨓": "scpolint",
"⨔": "npolint",
"⨕": "pointint",
"⨖": "quatint",
"⨗": "intlarhk",
"⨢": "pluscir",
"⨣": "plusacir",
"⨤": "simplus",
"⨥": "plusdu",
"⨦": "plussim",
"⨧": "plustwo",
"⨩": "mcomma",
"⨪": "minusdu",
"⨭": "loplus",
"⨮": "roplus",
"": "Cross",
"⨰": "timesd",
"⨱": "timesbar",
"⨳": "smashp",
"⨴": "lotimes",
"⨵": "rotimes",
"⨶": "otimesas",
"⨷": "Otimes",
"⨸": "odiv",
"⨹": "triplus",
"⨺": "triminus",
"⨻": "tritime",
"⨼": "iprod",
"⨿": "amalg",
"⩀": "capdot",
"⩂": "ncup",
"⩃": "ncap",
"⩄": "capand",
"⩅": "cupor",
"⩆": "cupcap",
"⩇": "capcup",
"⩈": "cupbrcap",
"⩉": "capbrcup",
"⩊": "cupcup",
"⩋": "capcap",
"⩌": "ccups",
"⩍": "ccaps",
"⩐": "ccupssm",
"⩓": "And",
"⩔": "Or",
"⩕": "andand",
"⩖": "oror",
"⩗": "orslope",
"⩘": "andslope",
"⩚": "andv",
"⩛": "orv",
"⩜": "andd",
"⩝": "ord",
"⩟": "wedbar",
"⩦": "sdote",
"⩪": "simdot",
"⩭": "congdot",
"⩭̸": "ncongdot",
"⩮": "easter",
"⩯": "apacir",
"⩰": "apE",
"⩰̸": "napE",
"⩱": "eplus",
"⩲": "pluse",
"⩳": "Esim",
"⩷": "eDDot",
"⩸": "equivDD",
"⩹": "ltcir",
"⩺": "gtcir",
"⩻": "ltquest",
"⩼": "gtquest",
"⩽": "les",
"⩽̸": "nles",
"⩾": "ges",
"⩾̸": "nges",
"⩿": "lesdot",
"⪀": "gesdot",
"⪁": "lesdoto",
"⪂": "gesdoto",
"⪃": "lesdotor",
"⪄": "gesdotol",
"⪅": "lap",
"⪆": "gap",
"⪇": "lne",
"⪈": "gne",
"⪉": "lnap",
"⪊": "gnap",
"⪋": "lEg",
"⪌": "gEl",
"⪍": "lsime",
"⪎": "gsime",
"⪏": "lsimg",
"⪐": "gsiml",
"⪑": "lgE",
"⪒": "glE",
"⪓": "lesges",
"⪔": "gesles",
"⪕": "els",
"⪖": "egs",
"⪗": "elsdot",
"⪘": "egsdot",
"⪙": "el",
"⪚": "eg",
"⪝": "siml",
"⪞": "simg",
"⪟": "simlE",
"⪠": "simgE",
"⪡": "LessLess",
"⪡̸": "NotNestedLessLess",
"⪢": "GreaterGreater",
"⪢̸": "NotNestedGreaterGreater",
"⪤": "glj",
"⪥": "gla",
"⪦": "ltcc",
"⪧": "gtcc",
"⪨": "lescc",
"⪩": "gescc",
"⪪": "smt",
"⪫": "lat",
"⪬": "smte",
"⪬︀": "smtes",
"⪭": "late",
"⪭︀": "lates",
"⪮": "bumpE",
"⪯": "pre",
"⪯̸": "npre",
"⪰": "sce",
"⪰̸": "nsce",
"⪳": "prE",
"⪴": "scE",
"⪵": "prnE",
"⪶": "scnE",
"⪷": "prap",
"⪸": "scap",
"⪹": "prnap",
"⪺": "scnap",
"⪻": "Pr",
"⪼": "Sc",
"⪽": "subdot",
"⪾": "supdot",
"⪿": "subplus",
"⫀": "supplus",
"⫁": "submult",
"⫂": "supmult",
"⫃": "subedot",
"⫄": "supedot",
"⫅": "subE",
"⫅̸": "nsubE",
"⫆": "supE",
"⫆̸": "nsupE",
"⫇": "subsim",
"⫈": "supsim",
"⫋︀": "vsubnE",
"⫋": "subnE",
"⫌︀": "vsupnE",
"⫌": "supnE",
"⫏": "csub",
"⫐": "csup",
"⫑": "csube",
"⫒": "csupe",
"⫓": "subsup",
"⫔": "supsub",
"⫕": "subsub",
"⫖": "supsup",
"⫗": "suphsub",
"⫘": "supdsub",
"⫙": "forkv",
"⫚": "topfork",
"⫛": "mlcp",
"⫤": "Dashv",
"⫦": "Vdashl",
"⫧": "Barv",
"⫨": "vBar",
"⫩": "vBarv",
"⫫": "Vbar",
"⫬": "Not",
"⫭": "bNot",
"⫮": "rnmid",
"⫯": "cirmid",
"⫰": "midcir",
"⫱": "topcir",
"⫲": "nhpar",
"⫳": "parsim",
"⫽": "parsl",
"⫽⃥": "nparsl",
"♭": "flat",
"♮": "natur",
"♯": "sharp",
"¤": "curren",
"¢": "cent",
$: "dollar",
"£": "pound",
"¥": "yen",
"€": "euro",
"¹": "sup1",
"½": "half",
"⅓": "frac13",
"¼": "frac14",
"⅕": "frac15",
"⅙": "frac16",
"⅛": "frac18",
"²": "sup2",
"⅔": "frac23",
"⅖": "frac25",
"³": "sup3",
"¾": "frac34",
"⅗": "frac35",
"⅜": "frac38",
"⅘": "frac45",
"⅚": "frac56",
"⅝": "frac58",
"⅞": "frac78",
"𝒶": "ascr",
"𝕒": "aopf",
"𝔞": "afr",
"𝔸": "Aopf",
"𝔄": "Afr",
"𝒜": "Ascr",
"ª": "ordf",
"á": "aacute",
"Á": "Aacute",
"à": "agrave",
"À": "Agrave",
"ă": "abreve",
"Ă": "Abreve",
"â": "acirc",
"Â": "Acirc",
"å": "aring",
"Å": "angst",
"ä": "auml",
"Ä": "Auml",
"ã": "atilde",
"Ã": "Atilde",
"ą": "aogon",
"Ą": "Aogon",
"ā": "amacr",
"Ā": "Amacr",
"æ": "aelig",
"Æ": "AElig",
"𝒷": "bscr",
"𝕓": "bopf",
"𝔟": "bfr",
"𝔹": "Bopf",
"": "Bscr",
"𝔅": "Bfr",
"𝔠": "cfr",
"𝒸": "cscr",
"𝕔": "copf",
"": "Cfr",
"𝒞": "Cscr",
"": "Copf",
"ć": "cacute",
"Ć": "Cacute",
"ĉ": "ccirc",
"Ĉ": "Ccirc",
"č": "ccaron",
"Č": "Ccaron",
"ċ": "cdot",
"Ċ": "Cdot",
"ç": "ccedil",
"Ç": "Ccedil",
"℅": "incare",
"𝔡": "dfr",
"": "dd",
"𝕕": "dopf",
"𝒹": "dscr",
"𝒟": "Dscr",
"𝔇": "Dfr",
"": "DD",
"𝔻": "Dopf",
"ď": "dcaron",
"Ď": "Dcaron",
"đ": "dstrok",
"Đ": "Dstrok",
"ð": "eth",
"Ð": "ETH",
"": "ee",
"": "escr",
"𝔢": "efr",
"𝕖": "eopf",
"": "Escr",
"𝔈": "Efr",
"𝔼": "Eopf",
"é": "eacute",
"É": "Eacute",
"è": "egrave",
"È": "Egrave",
"ê": "ecirc",
"Ê": "Ecirc",
"ě": "ecaron",
"Ě": "Ecaron",
"ë": "euml",
"Ë": "Euml",
"ė": "edot",
"Ė": "Edot",
"ę": "eogon",
"Ę": "Eogon",
"ē": "emacr",
"Ē": "Emacr",
"𝔣": "ffr",
"𝕗": "fopf",
"𝒻": "fscr",
"𝔉": "Ffr",
"𝔽": "Fopf",
"": "Fscr",
"ff": "fflig",
"ffi": "ffilig",
"ffl": "ffllig",
"fi": "filig",
fj: "fjlig",
"fl": "fllig",
"ƒ": "fnof",
"": "gscr",
"𝕘": "gopf",
"𝔤": "gfr",
"𝒢": "Gscr",
"𝔾": "Gopf",
"𝔊": "Gfr",
"ǵ": "gacute",
"ğ": "gbreve",
"Ğ": "Gbreve",
"ĝ": "gcirc",
"Ĝ": "Gcirc",
"ġ": "gdot",
"Ġ": "Gdot",
"Ģ": "Gcedil",
"𝔥": "hfr",
"": "planckh",
"𝒽": "hscr",
"𝕙": "hopf",
"": "Hscr",
"": "Hfr",
"": "Hopf",
"ĥ": "hcirc",
"Ĥ": "Hcirc",
"ℏ": "hbar",
"ħ": "hstrok",
"Ħ": "Hstrok",
"𝕚": "iopf",
"𝔦": "ifr",
"𝒾": "iscr",
"": "ii",
"𝕀": "Iopf",
"": "Iscr",
"": "Im",
"í": "iacute",
"Í": "Iacute",
"ì": "igrave",
"Ì": "Igrave",
"î": "icirc",
"Î": "Icirc",
"ï": "iuml",
"Ï": "Iuml",
"ĩ": "itilde",
"Ĩ": "Itilde",
"İ": "Idot",
"į": "iogon",
"Į": "Iogon",
"ī": "imacr",
"Ī": "Imacr",
"ij": "ijlig",
"IJ": "IJlig",
"ı": "imath",
"𝒿": "jscr",
"𝕛": "jopf",
"𝔧": "jfr",
"𝒥": "Jscr",
"𝔍": "Jfr",
"𝕁": "Jopf",
"ĵ": "jcirc",
"Ĵ": "Jcirc",
"ȷ": "jmath",
"𝕜": "kopf",
"𝓀": "kscr",
"𝔨": "kfr",
"𝒦": "Kscr",
"𝕂": "Kopf",
"𝔎": "Kfr",
"ķ": "kcedil",
"Ķ": "Kcedil",
"𝔩": "lfr",
"𝓁": "lscr",
"": "ell",
"𝕝": "lopf",
"": "Lscr",
"𝔏": "Lfr",
"𝕃": "Lopf",
"ĺ": "lacute",
"Ĺ": "Lacute",
"ľ": "lcaron",
"Ľ": "Lcaron",
"ļ": "lcedil",
"Ļ": "Lcedil",
"ł": "lstrok",
"Ł": "Lstrok",
"ŀ": "lmidot",
"Ŀ": "Lmidot",
"𝔪": "mfr",
"𝕞": "mopf",
"𝓂": "mscr",
"𝔐": "Mfr",
"𝕄": "Mopf",
"": "Mscr",
"𝔫": "nfr",
"𝕟": "nopf",
"𝓃": "nscr",
"": "Nopf",
"𝒩": "Nscr",
"𝔑": "Nfr",
"ń": "nacute",
"Ń": "Nacute",
"ň": "ncaron",
"Ň": "Ncaron",
"ñ": "ntilde",
"Ñ": "Ntilde",
"ņ": "ncedil",
"Ņ": "Ncedil",
"№": "numero",
"ŋ": "eng",
"Ŋ": "ENG",
"𝕠": "oopf",
"𝔬": "ofr",
"": "oscr",
"𝒪": "Oscr",
"𝔒": "Ofr",
"𝕆": "Oopf",
"º": "ordm",
"ó": "oacute",
"Ó": "Oacute",
"ò": "ograve",
"Ò": "Ograve",
"ô": "ocirc",
"Ô": "Ocirc",
"ö": "ouml",
"Ö": "Ouml",
"ő": "odblac",
"Ő": "Odblac",
"õ": "otilde",
"Õ": "Otilde",
"ø": "oslash",
"Ø": "Oslash",
"ō": "omacr",
"Ō": "Omacr",
"œ": "oelig",
"Œ": "OElig",
"𝔭": "pfr",
"𝓅": "pscr",
"𝕡": "popf",
"": "Popf",
"𝔓": "Pfr",
"𝒫": "Pscr",
"𝕢": "qopf",
"𝔮": "qfr",
"𝓆": "qscr",
"𝒬": "Qscr",
"𝔔": "Qfr",
"": "Qopf",
"ĸ": "kgreen",
"𝔯": "rfr",
"𝕣": "ropf",
"𝓇": "rscr",
"": "Rscr",
"": "Re",
"": "Ropf",
"ŕ": "racute",
"Ŕ": "Racute",
"ř": "rcaron",
"Ř": "Rcaron",
"ŗ": "rcedil",
"Ŗ": "Rcedil",
"𝕤": "sopf",
"𝓈": "sscr",
"𝔰": "sfr",
"𝕊": "Sopf",
"𝔖": "Sfr",
"𝒮": "Sscr",
"Ⓢ": "oS",
"ś": "sacute",
"Ś": "Sacute",
"ŝ": "scirc",
"Ŝ": "Scirc",
"š": "scaron",
"Š": "Scaron",
"ş": "scedil",
"Ş": "Scedil",
"ß": "szlig",
"𝔱": "tfr",
"𝓉": "tscr",
"𝕥": "topf",
"𝒯": "Tscr",
"𝔗": "Tfr",
"𝕋": "Topf",
"ť": "tcaron",
"Ť": "Tcaron",
"ţ": "tcedil",
"Ţ": "Tcedil",
"™": "trade",
"ŧ": "tstrok",
"Ŧ": "Tstrok",
"𝓊": "uscr",
"𝕦": "uopf",
"𝔲": "ufr",
"𝕌": "Uopf",
"𝔘": "Ufr",
"𝒰": "Uscr",
"ú": "uacute",
"Ú": "Uacute",
"ù": "ugrave",
"Ù": "Ugrave",
"ŭ": "ubreve",
"Ŭ": "Ubreve",
"û": "ucirc",
"Û": "Ucirc",
"ů": "uring",
"Ů": "Uring",
"ü": "uuml",
"Ü": "Uuml",
"ű": "udblac",
"Ű": "Udblac",
"ũ": "utilde",
"Ũ": "Utilde",
"ų": "uogon",
"Ų": "Uogon",
"ū": "umacr",
"Ū": "Umacr",
"𝔳": "vfr",
"𝕧": "vopf",
"𝓋": "vscr",
"𝔙": "Vfr",
"𝕍": "Vopf",
"𝒱": "Vscr",
"𝕨": "wopf",
"𝓌": "wscr",
"𝔴": "wfr",
"𝒲": "Wscr",
"𝕎": "Wopf",
"𝔚": "Wfr",
"ŵ": "wcirc",
"Ŵ": "Wcirc",
"𝔵": "xfr",
"𝓍": "xscr",
"𝕩": "xopf",
"𝕏": "Xopf",
"𝔛": "Xfr",
"𝒳": "Xscr",
"𝔶": "yfr",
"𝓎": "yscr",
"𝕪": "yopf",
"𝒴": "Yscr",
"𝔜": "Yfr",
"𝕐": "Yopf",
"ý": "yacute",
"Ý": "Yacute",
"ŷ": "ycirc",
"Ŷ": "Ycirc",
"ÿ": "yuml",
"Ÿ": "Yuml",
"𝓏": "zscr",
"𝔷": "zfr",
"𝕫": "zopf",
"": "Zfr",
"": "Zopf",
"𝒵": "Zscr",
"ź": "zacute",
"Ź": "Zacute",
"ž": "zcaron",
"Ž": "Zcaron",
"ż": "zdot",
"Ż": "Zdot",
"Ƶ": "imped",
"þ": "thorn",
"Þ": "THORN",
"ʼn": "napos",
"α": "alpha",
"Α": "Alpha",
"β": "beta",
"Β": "Beta",
"γ": "gamma",
"Γ": "Gamma",
"δ": "delta",
"Δ": "Delta",
"ε": "epsi",
"ϵ": "epsiv",
"Ε": "Epsilon",
"ϝ": "gammad",
"Ϝ": "Gammad",
"ζ": "zeta",
"Ζ": "Zeta",
"η": "eta",
"Η": "Eta",
"θ": "theta",
"ϑ": "thetav",
"Θ": "Theta",
"ι": "iota",
"Ι": "Iota",
"κ": "kappa",
"ϰ": "kappav",
"Κ": "Kappa",
"λ": "lambda",
"Λ": "Lambda",
"μ": "mu",
"µ": "micro",
"Μ": "Mu",
"ν": "nu",
"Ν": "Nu",
"ξ": "xi",
"Ξ": "Xi",
"ο": "omicron",
"Ο": "Omicron",
"π": "pi",
"ϖ": "piv",
"Π": "Pi",
"ρ": "rho",
"ϱ": "rhov",
"Ρ": "Rho",
"σ": "sigma",
"Σ": "Sigma",
"ς": "sigmaf",
"τ": "tau",
"Τ": "Tau",
"υ": "upsi",
"Υ": "Upsilon",
"ϒ": "Upsi",
"φ": "phi",
"ϕ": "phiv",
"Φ": "Phi",
"χ": "chi",
"Χ": "Chi",
"ψ": "psi",
"Ψ": "Psi",
"ω": "omega",
"Ω": "ohm",
"а": "acy",
"А": "Acy",
"б": "bcy",
"Б": "Bcy",
"в": "vcy",
"В": "Vcy",
"г": "gcy",
"Г": "Gcy",
"ѓ": "gjcy",
"Ѓ": "GJcy",
"д": "dcy",
"Д": "Dcy",
"ђ": "djcy",
"Ђ": "DJcy",
"е": "iecy",
"Е": "IEcy",
"ё": "iocy",
"Ё": "IOcy",
"є": "jukcy",
"Є": "Jukcy",
"ж": "zhcy",
"Ж": "ZHcy",
"з": "zcy",
"З": "Zcy",
"ѕ": "dscy",
"Ѕ": "DScy",
"и": "icy",
"И": "Icy",
"і": "iukcy",
"І": "Iukcy",
"ї": "yicy",
"Ї": "YIcy",
"й": "jcy",
"Й": "Jcy",
"ј": "jsercy",
"Ј": "Jsercy",
"к": "kcy",
"К": "Kcy",
"ќ": "kjcy",
"Ќ": "KJcy",
"л": "lcy",
"Л": "Lcy",
"љ": "ljcy",
"Љ": "LJcy",
"м": "mcy",
"М": "Mcy",
"н": "ncy",
"Н": "Ncy",
"њ": "njcy",
"Њ": "NJcy",
"о": "ocy",
"О": "Ocy",
"п": "pcy",
"П": "Pcy",
"р": "rcy",
"Р": "Rcy",
"с": "scy",
"С": "Scy",
"т": "tcy",
"Т": "Tcy",
"ћ": "tshcy",
"Ћ": "TSHcy",
"у": "ucy",
"У": "Ucy",
"ў": "ubrcy",
"Ў": "Ubrcy",
"ф": "fcy",
"Ф": "Fcy",
"х": "khcy",
"Х": "KHcy",
"ц": "tscy",
"Ц": "TScy",
"ч": "chcy",
"Ч": "CHcy",
"џ": "dzcy",
"Џ": "DZcy",
"ш": "shcy",
"Ш": "SHcy",
"щ": "shchcy",
"Щ": "SHCHcy",
"ъ": "hardcy",
"Ъ": "HARDcy",
"ы": "ycy",
"Ы": "Ycy",
"ь": "softcy",
"Ь": "SOFTcy",
"э": "ecy",
"Э": "Ecy",
"ю": "yucy",
"Ю": "YUcy",
"я": "yacy",
"Я": "YAcy",
"ℵ": "aleph",
"ℶ": "beth",
"ℷ": "gimel",
"ℸ": "daleth"
}, i = /["&'<>`]/g, n = {'"': "&quot;", "&": "&amp;", "'": "&#x27;", "<": "&lt;", ">": "&gt;", "`": "&#x60;"},
p = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/,
d = /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,
g = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g,
m = {
aacute: "á",
Aacute: "Á",
abreve: "ă",
Abreve: "Ă",
ac: "∾",
acd: "∿",
acE: "∾̳",
acirc: "â",
Acirc: "Â",
acute: "´",
acy: "а",
Acy: "А",
aelig: "æ",
AElig: "Æ",
af: "",
afr: "𝔞",
Afr: "𝔄",
agrave: "à",
Agrave: "À",
alefsym: "ℵ",
aleph: "ℵ",
alpha: "α",
Alpha: "Α",
amacr: "ā",
Amacr: "Ā",
amalg: "⨿",
amp: "&",
AMP: "&",
and: "∧",
And: "⩓",
andand: "⩕",
andd: "⩜",
andslope: "⩘",
andv: "⩚",
ang: "∠",
ange: "⦤",
angle: "∠",
angmsd: "∡",
angmsdaa: "⦨",
angmsdab: "⦩",
angmsdac: "⦪",
angmsdad: "⦫",
angmsdae: "⦬",
angmsdaf: "⦭",
angmsdag: "⦮",
angmsdah: "⦯",
angrt: "∟",
angrtvb: "⊾",
angrtvbd: "⦝",
angsph: "∢",
angst: "Å",
angzarr: "⍼",
aogon: "ą",
Aogon: "Ą",
aopf: "𝕒",
Aopf: "𝔸",
ap: "≈",
apacir: "⩯",
ape: "≊",
apE: "⩰",
apid: "≋",
apos: "'",
ApplyFunction: "",
approx: "≈",
approxeq: "≊",
aring: "å",
Aring: "Å",
ascr: "𝒶",
Ascr: "𝒜",
Assign: "≔",
ast: "*",
asymp: "≈",
asympeq: "≍",
atilde: "ã",
Atilde: "Ã",
auml: "ä",
Auml: "Ä",
awconint: "∳",
awint: "⨑",
backcong: "≌",
backepsilon: "϶",
backprime: "",
backsim: "∽",
backsimeq: "⋍",
Backslash: "",
Barv: "⫧",
barvee: "⊽",
barwed: "⌅",
Barwed: "⌆",
barwedge: "⌅",
bbrk: "⎵",
bbrktbrk: "⎶",
bcong: "≌",
bcy: "б",
Bcy: "Б",
bdquo: "„",
becaus: "∵",
because: "∵",
Because: "∵",
bemptyv: "⦰",
bepsi: "϶",
bernou: "",
Bernoullis: "",
beta: "β",
Beta: "Β",
beth: "ℶ",
between: "≬",
bfr: "𝔟",
Bfr: "𝔅",
bigcap: "⋂",
bigcirc: "◯",
bigcup: "",
bigodot: "⨀",
bigoplus: "⨁",
bigotimes: "⨂",
bigsqcup: "⨆",
bigstar: "★",
bigtriangledown: "▽",
bigtriangleup: "△",
biguplus: "⨄",
bigvee: "",
bigwedge: "⋀",
bkarow: "⤍",
blacklozenge: "⧫",
blacksquare: "▪",
blacktriangle: "▴",
blacktriangledown: "▾",
blacktriangleleft: "◂",
blacktriangleright: "▸",
blank: "␣",
blk12: "▒",
blk14: "░",
blk34: "▓",
block: "█",
bne: "=⃥",
bnequiv: "≡⃥",
bnot: "⌐",
bNot: "⫭",
bopf: "𝕓",
Bopf: "𝔹",
bot: "⊥",
bottom: "⊥",
bowtie: "⋈",
boxbox: "⧉",
boxdl: "┐",
boxdL: "╕",
boxDl: "╖",
boxDL: "╗",
boxdr: "┌",
boxdR: "╒",
boxDr: "╓",
boxDR: "╔",
boxh: "─",
boxH: "═",
boxhd: "┬",
boxhD: "╥",
boxHd: "╤",
boxHD: "╦",
boxhu: "┴",
boxhU: "╨",
boxHu: "╧",
boxHU: "╩",
boxminus: "⊟",
boxplus: "⊞",
boxtimes: "⊠",
boxul: "┘",
boxuL: "╛",
boxUl: "╜",
boxUL: "╝",
boxur: "└",
boxuR: "╘",
boxUr: "╙",
boxUR: "╚",
boxv: "│",
boxV: "║",
boxvh: "┼",
boxvH: "╪",
boxVh: "╫",
boxVH: "╬",
boxvl: "┤",
boxvL: "╡",
boxVl: "╢",
boxVL: "╣",
boxvr: "├",
boxvR: "╞",
boxVr: "╟",
boxVR: "╠",
bprime: "",
breve: "˘",
Breve: "˘",
brvbar: "¦",
bscr: "𝒷",
Bscr: "",
bsemi: "⁏",
bsim: "∽",
bsime: "⋍",
bsol: "\\",
bsolb: "⧅",
bsolhsub: "⟈",
bull: "•",
bullet: "•",
bump: "≎",
bumpe: "≏",
bumpE: "⪮",
bumpeq: "≏",
Bumpeq: "≎",
cacute: "ć",
Cacute: "Ć",
cap: "∩",
Cap: "⋒",
capand: "⩄",
capbrcup: "⩉",
capcap: "⩋",
capcup: "⩇",
capdot: "⩀",
CapitalDifferentialD: "",
caps: "∩︀",
caret: "",
caron: "ˇ",
Cayleys: "",
ccaps: "⩍",
ccaron: "č",
Ccaron: "Č",
ccedil: "ç",
Ccedil: "Ç",
ccirc: "ĉ",
Ccirc: "Ĉ",
Cconint: "∰",
ccups: "⩌",
ccupssm: "⩐",
cdot: "ċ",
Cdot: "Ċ",
cedil: "¸",
Cedilla: "¸",
cemptyv: "⦲",
cent: "¢",
centerdot: "·",
CenterDot: "·",
cfr: "𝔠",
Cfr: "",
chcy: "ч",
CHcy: "Ч",
check: "✓",
checkmark: "✓",
chi: "χ",
Chi: "Χ",
cir: "○",
circ: "ˆ",
circeq: "≗",
circlearrowleft: "↺",
circlearrowright: "↻",
circledast: "⊛",
circledcirc: "⊚",
circleddash: "⊝",
CircleDot: "⊙",
circledR: "®",
circledS: "Ⓢ",
CircleMinus: "⊖",
CirclePlus: "⊕",
CircleTimes: "⊗",
cire: "≗",
cirE: "⧃",
cirfnint: "⨐",
cirmid: "⫯",
cirscir: "⧂",
ClockwiseContourIntegral: "∲",
CloseCurlyDoubleQuote: "”",
CloseCurlyQuote: "",
clubs: "♣",
clubsuit: "♣",
colon: ":",
Colon: "∷",
colone: "≔",
Colone: "⩴",
coloneq: "≔",
comma: ",",
commat: "@",
comp: "∁",
compfn: "∘",
complement: "∁",
complexes: "",
cong: "≅",
congdot: "⩭",
Congruent: "≡",
conint: "∮",
Conint: "∯",
ContourIntegral: "∮",
copf: "𝕔",
Copf: "",
coprod: "∐",
Coproduct: "∐",
copy: "©",
COPY: "©",
copysr: "℗",
CounterClockwiseContourIntegral: "∳",
crarr: "↵",
cross: "✗",
Cross: "",
cscr: "𝒸",
Cscr: "𝒞",
csub: "⫏",
csube: "⫑",
csup: "⫐",
csupe: "⫒",
ctdot: "⋯",
cudarrl: "⤸",
cudarrr: "⤵",
cuepr: "⋞",
cuesc: "⋟",
cularr: "↶",
cularrp: "⤽",
cup: "",
Cup: "⋓",
cupbrcap: "⩈",
cupcap: "⩆",
CupCap: "≍",
cupcup: "⩊",
cupdot: "⊍",
cupor: "⩅",
cups: "",
curarr: "↷",
curarrm: "⤼",
curlyeqprec: "⋞",
curlyeqsucc: "⋟",
curlyvee: "⋎",
curlywedge: "⋏",
curren: "¤",
curvearrowleft: "↶",
curvearrowright: "↷",
cuvee: "⋎",
cuwed: "⋏",
cwconint: "∲",
cwint: "∱",
cylcty: "⌭",
dagger: "†",
Dagger: "‡",
daleth: "ℸ",
darr: "↓",
dArr: "⇓",
Darr: "↡",
dash: "",
dashv: "⊣",
Dashv: "⫤",
dbkarow: "⤏",
dblac: "˝",
dcaron: "ď",
Dcaron: "Ď",
dcy: "д",
Dcy: "Д",
dd: "",
DD: "",
ddagger: "‡",
ddarr: "⇊",
DDotrahd: "⤑",
ddotseq: "⩷",
deg: "°",
Del: "∇",
delta: "δ",
Delta: "Δ",
demptyv: "⦱",
dfisht: "⥿",
dfr: "𝔡",
Dfr: "𝔇",
dHar: "⥥",
dharl: "⇃",
dharr: "⇂",
DiacriticalAcute: "´",
DiacriticalDot: "˙",
DiacriticalDoubleAcute: "˝",
DiacriticalGrave: "`",
DiacriticalTilde: "˜",
diam: "⋄",
diamond: "⋄",
Diamond: "⋄",
diamondsuit: "♦",
diams: "♦",
die: "¨",
DifferentialD: "",
digamma: "ϝ",
disin: "⋲",
div: "÷",
divide: "÷",
divideontimes: "⋇",
divonx: "⋇",
djcy: "ђ",
DJcy: "Ђ",
dlcorn: "⌞",
dlcrop: "⌍",
dollar: "$",
dopf: "𝕕",
Dopf: "𝔻",
dot: "˙",
Dot: "¨",
DotDot: "⃜",
doteq: "≐",
doteqdot: "≑",
DotEqual: "≐",
dotminus: "∸",
dotplus: "∔",
dotsquare: "⊡",
doublebarwedge: "⌆",
DoubleContourIntegral: "∯",
DoubleDot: "¨",
DoubleDownArrow: "⇓",
DoubleLeftArrow: "⇐",
DoubleLeftRightArrow: "⇔",
DoubleLeftTee: "⫤",
DoubleLongLeftArrow: "⟸",
DoubleLongLeftRightArrow: "⟺",
DoubleLongRightArrow: "⟹",
DoubleRightArrow: "⇒",
DoubleRightTee: "⊨",
DoubleUpArrow: "⇑",
DoubleUpDownArrow: "⇕",
DoubleVerticalBar: "∥",
downarrow: "↓",
Downarrow: "⇓",
DownArrow: "↓",
DownArrowBar: "⤓",
DownArrowUpArrow: "⇵",
DownBreve: "̑",
downdownarrows: "⇊",
downharpoonleft: "⇃",
downharpoonright: "⇂",
DownLeftRightVector: "⥐",
DownLeftTeeVector: "⥞",
DownLeftVector: "↽",
DownLeftVectorBar: "⥖",
DownRightTeeVector: "⥟",
DownRightVector: "⇁",
DownRightVectorBar: "⥗",
DownTee: "",
DownTeeArrow: "↧",
drbkarow: "⤐",
drcorn: "⌟",
drcrop: "⌌",
dscr: "𝒹",
Dscr: "𝒟",
dscy: "ѕ",
DScy: "Ѕ",
dsol: "⧶",
dstrok: "đ",
Dstrok: "Đ",
dtdot: "⋱",
dtri: "▿",
dtrif: "▾",
duarr: "⇵",
duhar: "⥯",
dwangle: "⦦",
dzcy: "џ",
DZcy: "Џ",
dzigrarr: "⟿",
eacute: "é",
Eacute: "É",
easter: "⩮",
ecaron: "ě",
Ecaron: "Ě",
ecir: "≖",
ecirc: "ê",
Ecirc: "Ê",
ecolon: "≕",
ecy: "э",
Ecy: "Э",
eDDot: "⩷",
edot: "ė",
eDot: "≑",
Edot: "Ė",
ee: "",
efDot: "≒",
efr: "𝔢",
Efr: "𝔈",
eg: "⪚",
egrave: "è",
Egrave: "È",
egs: "⪖",
egsdot: "⪘",
el: "⪙",
Element: "∈",
elinters: "⏧",
ell: "",
els: "⪕",
elsdot: "⪗",
emacr: "ē",
Emacr: "Ē",
empty: "∅",
emptyset: "∅",
EmptySmallSquare: "◻",
emptyv: "∅",
EmptyVerySmallSquare: "▫",
emsp: "",
emsp13: "",
emsp14: "",
eng: "ŋ",
ENG: "Ŋ",
ensp: "",
eogon: "ę",
Eogon: "Ę",
eopf: "𝕖",
Eopf: "𝔼",
epar: "⋕",
eparsl: "⧣",
eplus: "⩱",
epsi: "ε",
epsilon: "ε",
Epsilon: "Ε",
epsiv: "ϵ",
eqcirc: "≖",
eqcolon: "≕",
eqsim: "≂",
eqslantgtr: "⪖",
eqslantless: "⪕",
Equal: "⩵",
equals: "=",
EqualTilde: "≂",
equest: "≟",
Equilibrium: "⇌",
equiv: "≡",
equivDD: "⩸",
eqvparsl: "⧥",
erarr: "⥱",
erDot: "≓",
escr: "",
Escr: "",
esdot: "≐",
esim: "≂",
Esim: "⩳",
eta: "η",
Eta: "Η",
eth: "ð",
ETH: "Ð",
euml: "ë",
Euml: "Ë",
euro: "€",
excl: "!",
exist: "∃",
Exists: "∃",
expectation: "",
exponentiale: "",
ExponentialE: "",
fallingdotseq: "≒",
fcy: "ф",
Fcy: "Ф",
female: "♀",
ffilig: "ffi",
fflig: "ff",
ffllig: "ffl",
ffr: "𝔣",
Ffr: "𝔉",
filig: "fi",
FilledSmallSquare: "◼",
FilledVerySmallSquare: "▪",
fjlig: "fj",
flat: "♭",
fllig: "fl",
fltns: "▱",
fnof: "ƒ",
fopf: "𝕗",
Fopf: "𝔽",
forall: "∀",
ForAll: "∀",
fork: "⋔",
forkv: "⫙",
Fouriertrf: "",
fpartint: "⨍",
frac12: "½",
frac13: "⅓",
frac14: "¼",
frac15: "⅕",
frac16: "⅙",
frac18: "⅛",
frac23: "⅔",
frac25: "⅖",
frac34: "¾",
frac35: "⅗",
frac38: "⅜",
frac45: "⅘",
frac56: "⅚",
frac58: "⅝",
frac78: "⅞",
frasl: "",
frown: "⌢",
fscr: "𝒻",
Fscr: "",
gacute: "ǵ",
gamma: "γ",
Gamma: "Γ",
gammad: "ϝ",
Gammad: "Ϝ",
gap: "⪆",
gbreve: "ğ",
Gbreve: "Ğ",
Gcedil: "Ģ",
gcirc: "ĝ",
Gcirc: "Ĝ",
gcy: "г",
Gcy: "Г",
gdot: "ġ",
Gdot: "Ġ",
ge: "≥",
gE: "≧",
gel: "⋛",
gEl: "⪌",
geq: "≥",
geqq: "≧",
geqslant: "⩾",
ges: "⩾",
gescc: "⪩",
gesdot: "⪀",
gesdoto: "⪂",
gesdotol: "⪄",
gesl: "⋛︀",
gesles: "⪔",
gfr: "𝔤",
Gfr: "𝔊",
gg: "≫",
Gg: "⋙",
ggg: "⋙",
gimel: "ℷ",
gjcy: "ѓ",
GJcy: "Ѓ",
gl: "≷",
gla: "⪥",
glE: "⪒",
glj: "⪤",
gnap: "⪊",
gnapprox: "⪊",
gne: "⪈",
gnE: "≩",
gneq: "⪈",
gneqq: "≩",
gnsim: "⋧",
gopf: "𝕘",
Gopf: "𝔾",
grave: "`",
GreaterEqual: "≥",
GreaterEqualLess: "⋛",
GreaterFullEqual: "≧",
GreaterGreater: "⪢",
GreaterLess: "≷",
GreaterSlantEqual: "⩾",
GreaterTilde: "≳",
gscr: "",
Gscr: "𝒢",
gsim: "≳",
gsime: "⪎",
gsiml: "⪐",
gt: ">",
Gt: "≫",
GT: ">",
gtcc: "⪧",
gtcir: "⩺",
gtdot: "⋗",
gtlPar: "⦕",
gtquest: "⩼",
gtrapprox: "⪆",
gtrarr: "⥸",
gtrdot: "⋗",
gtreqless: "⋛",
gtreqqless: "⪌",
gtrless: "≷",
gtrsim: "≳",
gvertneqq: "≩︀",
gvnE: "≩︀",
Hacek: "ˇ",
hairsp: "",
half: "½",
hamilt: "",
hardcy: "ъ",
HARDcy: "Ъ",
harr: "↔",
hArr: "⇔",
harrcir: "⥈",
harrw: "↭",
Hat: "^",
hbar: "ℏ",
hcirc: "ĥ",
Hcirc: "Ĥ",
hearts: "♥",
heartsuit: "♥",
hellip: "…",
hercon: "⊹",
hfr: "𝔥",
Hfr: "",
HilbertSpace: "",
hksearow: "⤥",
hkswarow: "⤦",
hoarr: "⇿",
homtht: "∻",
hookleftarrow: "↩",
hookrightarrow: "↪",
hopf: "𝕙",
Hopf: "",
horbar: "―",
HorizontalLine: "─",
hscr: "𝒽",
Hscr: "",
hslash: "ℏ",
hstrok: "ħ",
Hstrok: "Ħ",
HumpDownHump: "≎",
HumpEqual: "≏",
hybull: "",
hyphen: "",
iacute: "í",
Iacute: "Í",
ic: "",
icirc: "î",
Icirc: "Î",
icy: "и",
Icy: "И",
Idot: "İ",
iecy: "е",
IEcy: "Е",
iexcl: "¡",
iff: "⇔",
ifr: "𝔦",
Ifr: "",
igrave: "ì",
Igrave: "Ì",
ii: "",
iiiint: "⨌",
iiint: "∭",
iinfin: "⧜",
iiota: "℩",
ijlig: "ij",
IJlig: "IJ",
Im: "",
imacr: "ī",
Imacr: "Ī",
image: "",
ImaginaryI: "",
imagline: "",
imagpart: "",
imath: "ı",
imof: "⊷",
imped: "Ƶ",
Implies: "⇒",
in: "∈",
incare: "℅",
infin: "∞",
infintie: "⧝",
inodot: "ı",
int: "∫",
Int: "∬",
intcal: "⊺",
integers: "",
Integral: "∫",
intercal: "⊺",
Intersection: "⋂",
intlarhk: "⨗",
intprod: "⨼",
InvisibleComma: "",
InvisibleTimes: "",
iocy: "ё",
IOcy: "Ё",
iogon: "į",
Iogon: "Į",
iopf: "𝕚",
Iopf: "𝕀",
iota: "ι",
Iota: "Ι",
iprod: "⨼",
iquest: "¿",
iscr: "𝒾",
Iscr: "",
isin: "∈",
isindot: "⋵",
isinE: "⋹",
isins: "⋴",
isinsv: "⋳",
isinv: "∈",
it: "",
itilde: "ĩ",
Itilde: "Ĩ",
iukcy: "і",
Iukcy: "І",
iuml: "ï",
Iuml: "Ï",
jcirc: "ĵ",
Jcirc: "Ĵ",
jcy: "й",
Jcy: "Й",
jfr: "𝔧",
Jfr: "𝔍",
jmath: "ȷ",
jopf: "𝕛",
Jopf: "𝕁",
jscr: "𝒿",
Jscr: "𝒥",
jsercy: "ј",
Jsercy: "Ј",
jukcy: "є",
Jukcy: "Є",
kappa: "κ",
Kappa: "Κ",
kappav: "ϰ",
kcedil: "ķ",
Kcedil: "Ķ",
kcy: "к",
Kcy: "К",
kfr: "𝔨",
Kfr: "𝔎",
kgreen: "ĸ",
khcy: "х",
KHcy: "Х",
kjcy: "ќ",
KJcy: "Ќ",
kopf: "𝕜",
Kopf: "𝕂",
kscr: "𝓀",
Kscr: "𝒦",
lAarr: "⇚",
lacute: "ĺ",
Lacute: "Ĺ",
laemptyv: "⦴",
lagran: "",
lambda: "λ",
Lambda: "Λ",
lang: "⟨",
Lang: "⟪",
langd: "⦑",
langle: "⟨",
lap: "⪅",
Laplacetrf: "",
laquo: "«",
larr: "←",
lArr: "⇐",
Larr: "↞",
larrb: "⇤",
larrbfs: "⤟",
larrfs: "⤝",
larrhk: "↩",
larrlp: "↫",
larrpl: "⤹",
larrsim: "⥳",
larrtl: "↢",
lat: "⪫",
latail: "⤙",
lAtail: "⤛",
late: "⪭",
lates: "⪭︀",
lbarr: "⤌",
lBarr: "⤎",
lbbrk: "",
lbrace: "{",
lbrack: "[",
lbrke: "⦋",
lbrksld: "⦏",
lbrkslu: "⦍",
lcaron: "ľ",
Lcaron: "Ľ",
lcedil: "ļ",
Lcedil: "Ļ",
lceil: "⌈",
lcub: "{",
lcy: "л",
Lcy: "Л",
ldca: "⤶",
ldquo: "“",
ldquor: "„",
ldrdhar: "⥧",
ldrushar: "⥋",
ldsh: "↲",
le: "≤",
lE: "≦",
LeftAngleBracket: "⟨",
leftarrow: "←",
Leftarrow: "⇐",
LeftArrow: "←",
LeftArrowBar: "⇤",
LeftArrowRightArrow: "⇆",
leftarrowtail: "↢",
LeftCeiling: "⌈",
LeftDoubleBracket: "⟦",
LeftDownTeeVector: "⥡",
LeftDownVector: "⇃",
LeftDownVectorBar: "⥙",
LeftFloor: "⌊",
leftharpoondown: "↽",
leftharpoonup: "↼",
leftleftarrows: "⇇",
leftrightarrow: "↔",
Leftrightarrow: "⇔",
LeftRightArrow: "↔",
leftrightarrows: "⇆",
leftrightharpoons: "⇋",
leftrightsquigarrow: "↭",
LeftRightVector: "⥎",
LeftTee: "⊣",
LeftTeeArrow: "↤",
LeftTeeVector: "⥚",
leftthreetimes: "⋋",
LeftTriangle: "⊲",
LeftTriangleBar: "⧏",
LeftTriangleEqual: "⊴",
LeftUpDownVector: "⥑",
LeftUpTeeVector: "⥠",
LeftUpVector: "↿",
LeftUpVectorBar: "⥘",
LeftVector: "↼",
LeftVectorBar: "⥒",
leg: "⋚",
lEg: "⪋",
leq: "≤",
leqq: "≦",
leqslant: "⩽",
les: "⩽",
lescc: "⪨",
lesdot: "⩿",
lesdoto: "⪁",
lesdotor: "⪃",
lesg: "⋚︀",
lesges: "⪓",
lessapprox: "⪅",
lessdot: "⋖",
lesseqgtr: "⋚",
lesseqqgtr: "⪋",
LessEqualGreater: "⋚",
LessFullEqual: "≦",
LessGreater: "≶",
lessgtr: "≶",
LessLess: "⪡",
lesssim: "≲",
LessSlantEqual: "⩽",
LessTilde: "≲",
lfisht: "⥼",
lfloor: "⌊",
lfr: "𝔩",
Lfr: "𝔏",
lg: "≶",
lgE: "⪑",
lHar: "⥢",
lhard: "↽",
lharu: "↼",
lharul: "⥪",
lhblk: "▄",
ljcy: "љ",
LJcy: "Љ",
ll: "≪",
Ll: "⋘",
llarr: "⇇",
llcorner: "⌞",
Lleftarrow: "⇚",
llhard: "⥫",
lltri: "◺",
lmidot: "ŀ",
Lmidot: "Ŀ",
lmoust: "⎰",
lmoustache: "⎰",
lnap: "⪉",
lnapprox: "⪉",
lne: "⪇",
lnE: "≨",
lneq: "⪇",
lneqq: "≨",
lnsim: "⋦",
loang: "⟬",
loarr: "⇽",
lobrk: "⟦",
longleftarrow: "⟵",
Longleftarrow: "⟸",
LongLeftArrow: "⟵",
longleftrightarrow: "⟷",
Longleftrightarrow: "⟺",
LongLeftRightArrow: "⟷",
longmapsto: "⟼",
longrightarrow: "⟶",
Longrightarrow: "⟹",
LongRightArrow: "⟶",
looparrowleft: "↫",
looparrowright: "↬",
lopar: "⦅",
lopf: "𝕝",
Lopf: "𝕃",
loplus: "⨭",
lotimes: "⨴",
lowast: "",
lowbar: "_",
LowerLeftArrow: "↙",
LowerRightArrow: "↘",
loz: "◊",
lozenge: "◊",
lozf: "⧫",
lpar: "(",
lparlt: "⦓",
lrarr: "⇆",
lrcorner: "⌟",
lrhar: "⇋",
lrhard: "⥭",
lrm: "",
lrtri: "⊿",
lsaquo: "",
lscr: "𝓁",
Lscr: "",
lsh: "↰",
Lsh: "↰",
lsim: "≲",
lsime: "⪍",
lsimg: "⪏",
lsqb: "[",
lsquo: "",
lsquor: "",
lstrok: "ł",
Lstrok: "Ł",
lt: "<",
Lt: "≪",
LT: "<",
ltcc: "⪦",
ltcir: "⩹",
ltdot: "⋖",
lthree: "⋋",
ltimes: "⋉",
ltlarr: "⥶",
ltquest: "⩻",
ltri: "◃",
ltrie: "⊴",
ltrif: "◂",
ltrPar: "⦖",
lurdshar: "⥊",
luruhar: "⥦",
lvertneqq: "≨︀",
lvnE: "≨︀",
macr: "¯",
male: "♂",
malt: "✠",
maltese: "✠",
map: "↦",
Map: "⤅",
mapsto: "↦",
mapstodown: "↧",
mapstoleft: "↤",
mapstoup: "↥",
marker: "▮",
mcomma: "⨩",
mcy: "м",
Mcy: "М",
mdash: "—",
mDDot: "∺",
measuredangle: "∡",
MediumSpace: "",
Mellintrf: "",
mfr: "𝔪",
Mfr: "𝔐",
mho: "℧",
micro: "µ",
mid: "",
midast: "*",
midcir: "⫰",
middot: "·",
minus: "",
minusb: "⊟",
minusd: "∸",
minusdu: "⨪",
MinusPlus: "∓",
mlcp: "⫛",
mldr: "…",
mnplus: "∓",
models: "⊧",
mopf: "𝕞",
Mopf: "𝕄",
mp: "∓",
mscr: "𝓂",
Mscr: "",
mstpos: "∾",
mu: "μ",
Mu: "Μ",
multimap: "⊸",
mumap: "⊸",
nabla: "∇",
nacute: "ń",
Nacute: "Ń",
nang: "∠⃒",
nap: "≉",
napE: "⩰̸",
napid: "≋̸",
napos: "ʼn",
napprox: "≉",
natur: "♮",
natural: "♮",
naturals: "",
nbsp: " ",
nbump: "≎̸",
nbumpe: "≏̸",
ncap: "⩃",
ncaron: "ň",
Ncaron: "Ň",
ncedil: "ņ",
Ncedil: "Ņ",
ncong: "≇",
ncongdot: "⩭̸",
ncup: "⩂",
ncy: "н",
Ncy: "Н",
ndash: "",
ne: "≠",
nearhk: "⤤",
nearr: "↗",
neArr: "⇗",
nearrow: "↗",
nedot: "≐̸",
NegativeMediumSpace: "",
NegativeThickSpace: "",
NegativeThinSpace: "",
NegativeVeryThinSpace: "",
nequiv: "≢",
nesear: "⤨",
nesim: "≂̸",
NestedGreaterGreater: "≫",
NestedLessLess: "≪",
NewLine: "\n",
nexist: "∄",
nexists: "∄",
nfr: "𝔫",
Nfr: "𝔑",
nge: "≱",
ngE: "≧̸",
ngeq: "≱",
ngeqq: "≧̸",
ngeqslant: "⩾̸",
nges: "⩾̸",
nGg: "⋙̸",
ngsim: "≵",
ngt: "≯",
nGt: "≫⃒",
ngtr: "≯",
nGtv: "≫̸",
nharr: "↮",
nhArr: "⇎",
nhpar: "⫲",
ni: "∋",
nis: "⋼",
nisd: "⋺",
niv: "∋",
njcy: "њ",
NJcy: "Њ",
nlarr: "↚",
nlArr: "⇍",
nldr: "‥",
nle: "≰",
nlE: "≦̸",
nleftarrow: "↚",
nLeftarrow: "⇍",
nleftrightarrow: "↮",
nLeftrightarrow: "⇎",
nleq: "≰",
nleqq: "≦̸",
nleqslant: "⩽̸",
nles: "⩽̸",
nless: "≮",
nLl: "⋘̸",
nlsim: "≴",
nlt: "≮",
nLt: "≪⃒",
nltri: "⋪",
nltrie: "⋬",
nLtv: "≪̸",
nmid: "∤",
NoBreak: "",
NonBreakingSpace: " ",
nopf: "𝕟",
Nopf: "",
not: "¬",
Not: "⫬",
NotCongruent: "≢",
NotCupCap: "≭",
NotDoubleVerticalBar: "∦",
NotElement: "∉",
NotEqual: "≠",
NotEqualTilde: "≂̸",
NotExists: "∄",
NotGreater: "≯",
NotGreaterEqual: "≱",
NotGreaterFullEqual: "≧̸",
NotGreaterGreater: "≫̸",
NotGreaterLess: "≹",
NotGreaterSlantEqual: "⩾̸",
NotGreaterTilde: "≵",
NotHumpDownHump: "≎̸",
NotHumpEqual: "≏̸",
notin: "∉",
notindot: "⋵̸",
notinE: "⋹̸",
notinva: "∉",
notinvb: "⋷",
notinvc: "⋶",
NotLeftTriangle: "⋪",
NotLeftTriangleBar: "⧏̸",
NotLeftTriangleEqual: "⋬",
NotLess: "≮",
NotLessEqual: "≰",
NotLessGreater: "≸",
NotLessLess: "≪̸",
NotLessSlantEqual: "⩽̸",
NotLessTilde: "≴",
NotNestedGreaterGreater: "⪢̸",
NotNestedLessLess: "⪡̸",
notni: "∌",
notniva: "∌",
notnivb: "⋾",
notnivc: "⋽",
NotPrecedes: "⊀",
NotPrecedesEqual: "⪯̸",
NotPrecedesSlantEqual: "⋠",
NotReverseElement: "∌",
NotRightTriangle: "⋫",
NotRightTriangleBar: "⧐̸",
NotRightTriangleEqual: "⋭",
NotSquareSubset: "⊏̸",
NotSquareSubsetEqual: "⋢",
NotSquareSuperset: "⊐̸",
NotSquareSupersetEqual: "⋣",
NotSubset: "⊂⃒",
NotSubsetEqual: "⊈",
NotSucceeds: "⊁",
NotSucceedsEqual: "⪰̸",
NotSucceedsSlantEqual: "⋡",
NotSucceedsTilde: "≿̸",
NotSuperset: "⊃⃒",
NotSupersetEqual: "⊉",
NotTilde: "≁",
NotTildeEqual: "≄",
NotTildeFullEqual: "≇",
NotTildeTilde: "≉",
NotVerticalBar: "∤",
npar: "∦",
nparallel: "∦",
nparsl: "⫽⃥",
npart: "∂̸",
npolint: "⨔",
npr: "⊀",
nprcue: "⋠",
npre: "⪯̸",
nprec: "⊀",
npreceq: "⪯̸",
nrarr: "↛",
nrArr: "⇏",
nrarrc: "⤳̸",
nrarrw: "↝̸",
nrightarrow: "↛",
nRightarrow: "⇏",
nrtri: "⋫",
nrtrie: "⋭",
nsc: "⊁",
nsccue: "⋡",
nsce: "⪰̸",
nscr: "𝓃",
Nscr: "𝒩",
nshortmid: "∤",
nshortparallel: "∦",
nsim: "≁",
nsime: "≄",
nsimeq: "≄",
nsmid: "∤",
nspar: "∦",
nsqsube: "⋢",
nsqsupe: "⋣",
nsub: "⊄",
nsube: "⊈",
nsubE: "⫅̸",
nsubset: "⊂⃒",
nsubseteq: "⊈",
nsubseteqq: "⫅̸",
nsucc: "⊁",
nsucceq: "⪰̸",
nsup: "⊅",
nsupe: "⊉",
nsupE: "⫆̸",
nsupset: "⊃⃒",
nsupseteq: "⊉",
nsupseteqq: "⫆̸",
ntgl: "≹",
ntilde: "ñ",
Ntilde: "Ñ",
ntlg: "≸",
ntriangleleft: "⋪",
ntrianglelefteq: "⋬",
ntriangleright: "⋫",
ntrianglerighteq: "⋭",
nu: "ν",
Nu: "Ν",
num: "#",
numero: "№",
numsp: "",
nvap: "≍⃒",
nvdash: "⊬",
nvDash: "⊭",
nVdash: "⊮",
nVDash: "⊯",
nvge: "≥⃒",
nvgt: ">⃒",
nvHarr: "⤄",
nvinfin: "⧞",
nvlArr: "⤂",
nvle: "≤⃒",
nvlt: "<⃒",
nvltrie: "⊴⃒",
nvrArr: "⤃",
nvrtrie: "⊵⃒",
nvsim: "∼⃒",
nwarhk: "⤣",
nwarr: "↖",
nwArr: "⇖",
nwarrow: "↖",
nwnear: "⤧",
oacute: "ó",
Oacute: "Ó",
oast: "⊛",
ocir: "⊚",
ocirc: "ô",
Ocirc: "Ô",
ocy: "о",
Ocy: "О",
odash: "⊝",
odblac: "ő",
Odblac: "Ő",
odiv: "⨸",
odot: "⊙",
odsold: "⦼",
oelig: "œ",
OElig: "Œ",
ofcir: "⦿",
ofr: "𝔬",
Ofr: "𝔒",
ogon: "˛",
ograve: "ò",
Ograve: "Ò",
ogt: "⧁",
ohbar: "⦵",
ohm: "Ω",
oint: "∮",
olarr: "↺",
olcir: "⦾",
olcross: "⦻",
oline: "‾",
olt: "⧀",
omacr: "ō",
Omacr: "Ō",
omega: "ω",
Omega: "Ω",
omicron: "ο",
Omicron: "Ο",
omid: "⦶",
ominus: "⊖",
oopf: "𝕠",
Oopf: "𝕆",
opar: "⦷",
OpenCurlyDoubleQuote: "“",
OpenCurlyQuote: "",
operp: "⦹",
oplus: "⊕",
or: "",
Or: "⩔",
orarr: "↻",
ord: "⩝",
order: "",
orderof: "",
ordf: "ª",
ordm: "º",
origof: "⊶",
oror: "⩖",
orslope: "⩗",
orv: "⩛",
oS: "Ⓢ",
oscr: "",
Oscr: "𝒪",
oslash: "ø",
Oslash: "Ø",
osol: "⊘",
otilde: "õ",
Otilde: "Õ",
otimes: "⊗",
Otimes: "⨷",
otimesas: "⨶",
ouml: "ö",
Ouml: "Ö",
ovbar: "⌽",
OverBar: "‾",
OverBrace: "⏞",
OverBracket: "⎴",
OverParenthesis: "⏜",
par: "∥",
para: "¶",
parallel: "∥",
parsim: "⫳",
parsl: "⫽",
part: "∂",
PartialD: "∂",
pcy: "п",
Pcy: "П",
percnt: "%",
period: ".",
permil: "‰",
perp: "⊥",
pertenk: "‱",
pfr: "𝔭",
Pfr: "𝔓",
phi: "φ",
Phi: "Φ",
phiv: "ϕ",
phmmat: "",
phone: "☎",
pi: "π",
Pi: "Π",
pitchfork: "⋔",
piv: "ϖ",
planck: "ℏ",
planckh: "",
plankv: "ℏ",
plus: "+",
plusacir: "⨣",
plusb: "⊞",
pluscir: "⨢",
plusdo: "∔",
plusdu: "⨥",
pluse: "⩲",
PlusMinus: "±",
plusmn: "±",
plussim: "⨦",
plustwo: "⨧",
pm: "±",
Poincareplane: "",
pointint: "⨕",
popf: "𝕡",
Popf: "",
pound: "£",
pr: "≺",
Pr: "⪻",
prap: "⪷",
prcue: "≼",
pre: "⪯",
prE: "⪳",
prec: "≺",
precapprox: "⪷",
preccurlyeq: "≼",
Precedes: "≺",
PrecedesEqual: "⪯",
PrecedesSlantEqual: "≼",
PrecedesTilde: "≾",
preceq: "⪯",
precnapprox: "⪹",
precneqq: "⪵",
precnsim: "⋨",
precsim: "≾",
prime: "",
Prime: "″",
primes: "",
prnap: "⪹",
prnE: "⪵",
prnsim: "⋨",
prod: "∏",
Product: "∏",
profalar: "⌮",
profline: "⌒",
profsurf: "⌓",
prop: "∝",
Proportion: "∷",
Proportional: "∝",
propto: "∝",
prsim: "≾",
prurel: "⊰",
pscr: "𝓅",
Pscr: "𝒫",
psi: "ψ",
Psi: "Ψ",
puncsp: "",
qfr: "𝔮",
Qfr: "𝔔",
qint: "⨌",
qopf: "𝕢",
Qopf: "",
qprime: "⁗",
qscr: "𝓆",
Qscr: "𝒬",
quaternions: "",
quatint: "⨖",
quest: "?",
questeq: "≟",
quot: '"',
QUOT: '"',
rAarr: "⇛",
race: "∽̱",
racute: "ŕ",
Racute: "Ŕ",
radic: "√",
raemptyv: "⦳",
rang: "⟩",
Rang: "⟫",
rangd: "⦒",
range: "⦥",
rangle: "⟩",
raquo: "»",
rarr: "→",
rArr: "⇒",
Rarr: "↠",
rarrap: "⥵",
rarrb: "⇥",
rarrbfs: "⤠",
rarrc: "⤳",
rarrfs: "⤞",
rarrhk: "↪",
rarrlp: "↬",
rarrpl: "⥅",
rarrsim: "⥴",
rarrtl: "↣",
Rarrtl: "⤖",
rarrw: "↝",
ratail: "⤚",
rAtail: "⤜",
ratio: "",
rationals: "",
rbarr: "⤍",
rBarr: "⤏",
RBarr: "⤐",
rbbrk: "",
rbrace: "}",
rbrack: "]",
rbrke: "⦌",
rbrksld: "⦎",
rbrkslu: "⦐",
rcaron: "ř",
Rcaron: "Ř",
rcedil: "ŗ",
Rcedil: "Ŗ",
rceil: "⌉",
rcub: "}",
rcy: "р",
Rcy: "Р",
rdca: "⤷",
rdldhar: "⥩",
rdquo: "”",
rdquor: "”",
rdsh: "↳",
Re: "",
real: "",
realine: "",
realpart: "",
reals: "",
rect: "▭",
reg: "®",
REG: "®",
ReverseElement: "∋",
ReverseEquilibrium: "⇋",
ReverseUpEquilibrium: "⥯",
rfisht: "⥽",
rfloor: "⌋",
rfr: "𝔯",
Rfr: "",
rHar: "⥤",
rhard: "⇁",
rharu: "⇀",
rharul: "⥬",
rho: "ρ",
Rho: "Ρ",
rhov: "ϱ",
RightAngleBracket: "⟩",
rightarrow: "→",
Rightarrow: "⇒",
RightArrow: "→",
RightArrowBar: "⇥",
RightArrowLeftArrow: "⇄",
rightarrowtail: "↣",
RightCeiling: "⌉",
RightDoubleBracket: "⟧",
RightDownTeeVector: "⥝",
RightDownVector: "⇂",
RightDownVectorBar: "⥕",
RightFloor: "⌋",
rightharpoondown: "⇁",
rightharpoonup: "⇀",
rightleftarrows: "⇄",
rightleftharpoons: "⇌",
rightrightarrows: "⇉",
rightsquigarrow: "↝",
RightTee: "⊢",
RightTeeArrow: "↦",
RightTeeVector: "⥛",
rightthreetimes: "⋌",
RightTriangle: "⊳",
RightTriangleBar: "⧐",
RightTriangleEqual: "⊵",
RightUpDownVector: "⥏",
RightUpTeeVector: "⥜",
RightUpVector: "↾",
RightUpVectorBar: "⥔",
RightVector: "⇀",
RightVectorBar: "⥓",
ring: "˚",
risingdotseq: "≓",
rlarr: "⇄",
rlhar: "⇌",
rlm: "",
rmoust: "⎱",
rmoustache: "⎱",
rnmid: "⫮",
roang: "⟭",
roarr: "⇾",
robrk: "⟧",
ropar: "⦆",
ropf: "𝕣",
Ropf: "",
roplus: "⨮",
rotimes: "⨵",
RoundImplies: "⥰",
rpar: ")",
rpargt: "⦔",
rppolint: "⨒",
rrarr: "⇉",
Rrightarrow: "⇛",
rsaquo: "",
rscr: "𝓇",
Rscr: "",
rsh: "↱",
Rsh: "↱",
rsqb: "]",
rsquo: "",
rsquor: "",
rthree: "⋌",
rtimes: "⋊",
rtri: "▹",
rtrie: "⊵",
rtrif: "▸",
rtriltri: "⧎",
RuleDelayed: "⧴",
ruluhar: "⥨",
rx: "℞",
sacute: "ś",
Sacute: "Ś",
sbquo: "",
sc: "≻",
Sc: "⪼",
scap: "⪸",
scaron: "š",
Scaron: "Š",
sccue: "≽",
sce: "⪰",
scE: "⪴",
scedil: "ş",
Scedil: "Ş",
scirc: "ŝ",
Scirc: "Ŝ",
scnap: "⪺",
scnE: "⪶",
scnsim: "⋩",
scpolint: "⨓",
scsim: "≿",
scy: "с",
Scy: "С",
sdot: "⋅",
sdotb: "⊡",
sdote: "⩦",
searhk: "⤥",
searr: "↘",
seArr: "⇘",
searrow: "↘",
sect: "§",
semi: ";",
seswar: "⤩",
setminus: "",
setmn: "",
sext: "✶",
sfr: "𝔰",
Sfr: "𝔖",
sfrown: "⌢",
sharp: "♯",
shchcy: "щ",
SHCHcy: "Щ",
shcy: "ш",
SHcy: "Ш",
ShortDownArrow: "↓",
ShortLeftArrow: "←",
shortmid: "",
shortparallel: "∥",
ShortRightArrow: "→",
ShortUpArrow: "↑",
shy: "­",
sigma: "σ",
Sigma: "Σ",
sigmaf: "ς",
sigmav: "ς",
sim: "",
simdot: "⩪",
sime: "≃",
simeq: "≃",
simg: "⪞",
simgE: "⪠",
siml: "⪝",
simlE: "⪟",
simne: "≆",
simplus: "⨤",
simrarr: "⥲",
slarr: "←",
SmallCircle: "∘",
smallsetminus: "",
smashp: "⨳",
smeparsl: "⧤",
smid: "",
smile: "⌣",
smt: "⪪",
smte: "⪬",
smtes: "⪬︀",
softcy: "ь",
SOFTcy: "Ь",
sol: "/",
solb: "⧄",
solbar: "⌿",
sopf: "𝕤",
Sopf: "𝕊",
spades: "♠",
spadesuit: "♠",
spar: "∥",
sqcap: "⊓",
sqcaps: "⊓︀",
sqcup: "⊔",
sqcups: "⊔︀",
Sqrt: "√",
sqsub: "⊏",
sqsube: "⊑",
sqsubset: "⊏",
sqsubseteq: "⊑",
sqsup: "⊐",
sqsupe: "⊒",
sqsupset: "⊐",
sqsupseteq: "⊒",
squ: "□",
square: "□",
Square: "□",
SquareIntersection: "⊓",
SquareSubset: "⊏",
SquareSubsetEqual: "⊑",
SquareSuperset: "⊐",
SquareSupersetEqual: "⊒",
SquareUnion: "⊔",
squarf: "▪",
squf: "▪",
srarr: "→",
sscr: "𝓈",
Sscr: "𝒮",
ssetmn: "",
ssmile: "⌣",
sstarf: "⋆",
star: "☆",
Star: "⋆",
starf: "★",
straightepsilon: "ϵ",
straightphi: "ϕ",
strns: "¯",
sub: "⊂",
Sub: "⋐",
subdot: "⪽",
sube: "⊆",
subE: "⫅",
subedot: "⫃",
submult: "⫁",
subne: "⊊",
subnE: "⫋",
subplus: "⪿",
subrarr: "⥹",
subset: "⊂",
Subset: "⋐",
subseteq: "⊆",
subseteqq: "⫅",
SubsetEqual: "⊆",
subsetneq: "⊊",
subsetneqq: "⫋",
subsim: "⫇",
subsub: "⫕",
subsup: "⫓",
succ: "≻",
succapprox: "⪸",
succcurlyeq: "≽",
Succeeds: "≻",
SucceedsEqual: "⪰",
SucceedsSlantEqual: "≽",
SucceedsTilde: "≿",
succeq: "⪰",
succnapprox: "⪺",
succneqq: "⪶",
succnsim: "⋩",
succsim: "≿",
SuchThat: "∋",
sum: "∑",
Sum: "∑",
sung: "♪",
sup: "⊃",
Sup: "⋑",
sup1: "¹",
sup2: "²",
sup3: "³",
supdot: "⪾",
supdsub: "⫘",
supe: "⊇",
supE: "⫆",
supedot: "⫄",
Superset: "⊃",
SupersetEqual: "⊇",
suphsol: "⟉",
suphsub: "⫗",
suplarr: "⥻",
supmult: "⫂",
supne: "⊋",
supnE: "⫌",
supplus: "⫀",
supset: "⊃",
Supset: "⋑",
supseteq: "⊇",
supseteqq: "⫆",
supsetneq: "⊋",
supsetneqq: "⫌",
supsim: "⫈",
supsub: "⫔",
supsup: "⫖",
swarhk: "⤦",
swarr: "↙",
swArr: "⇙",
swarrow: "↙",
swnwar: "⤪",
szlig: "ß",
Tab: "\t",
target: "⌖",
tau: "τ",
Tau: "Τ",
tbrk: "⎴",
tcaron: "ť",
Tcaron: "Ť",
tcedil: "ţ",
Tcedil: "Ţ",
tcy: "т",
Tcy: "Т",
tdot: "⃛",
telrec: "⌕",
tfr: "𝔱",
Tfr: "𝔗",
there4: "∴",
therefore: "∴",
Therefore: "∴",
theta: "θ",
Theta: "Θ",
thetasym: "ϑ",
thetav: "ϑ",
thickapprox: "≈",
thicksim: "",
ThickSpace: "",
thinsp: "",
ThinSpace: "",
thkap: "≈",
thksim: "",
thorn: "þ",
THORN: "Þ",
tilde: "˜",
Tilde: "",
TildeEqual: "≃",
TildeFullEqual: "≅",
TildeTilde: "≈",
times: "×",
timesb: "⊠",
timesbar: "⨱",
timesd: "⨰",
tint: "∭",
toea: "⤨",
top: "",
topbot: "⌶",
topcir: "⫱",
topf: "𝕥",
Topf: "𝕋",
topfork: "⫚",
tosa: "⤩",
tprime: "‴",
trade: "™",
TRADE: "™",
triangle: "▵",
triangledown: "▿",
triangleleft: "◃",
trianglelefteq: "⊴",
triangleq: "≜",
triangleright: "▹",
trianglerighteq: "⊵",
tridot: "◬",
trie: "≜",
triminus: "⨺",
TripleDot: "⃛",
triplus: "⨹",
trisb: "⧍",
tritime: "⨻",
trpezium: "⏢",
tscr: "𝓉",
Tscr: "𝒯",
tscy: "ц",
TScy: "Ц",
tshcy: "ћ",
TSHcy: "Ћ",
tstrok: "ŧ",
Tstrok: "Ŧ",
twixt: "≬",
twoheadleftarrow: "↞",
twoheadrightarrow: "↠",
uacute: "ú",
Uacute: "Ú",
uarr: "↑",
uArr: "⇑",
Uarr: "↟",
Uarrocir: "⥉",
ubrcy: "ў",
Ubrcy: "Ў",
ubreve: "ŭ",
Ubreve: "Ŭ",
ucirc: "û",
Ucirc: "Û",
ucy: "у",
Ucy: "У",
udarr: "⇅",
udblac: "ű",
Udblac: "Ű",
udhar: "⥮",
ufisht: "⥾",
ufr: "𝔲",
Ufr: "𝔘",
ugrave: "ù",
Ugrave: "Ù",
uHar: "⥣",
uharl: "↿",
uharr: "↾",
uhblk: "▀",
ulcorn: "⌜",
ulcorner: "⌜",
ulcrop: "⌏",
ultri: "◸",
umacr: "ū",
Umacr: "Ū",
uml: "¨",
UnderBar: "_",
UnderBrace: "⏟",
UnderBracket: "⎵",
UnderParenthesis: "⏝",
Union: "",
UnionPlus: "⊎",
uogon: "ų",
Uogon: "Ų",
uopf: "𝕦",
Uopf: "𝕌",
uparrow: "↑",
Uparrow: "⇑",
UpArrow: "↑",
UpArrowBar: "⤒",
UpArrowDownArrow: "⇅",
updownarrow: "↕",
Updownarrow: "⇕",
UpDownArrow: "↕",
UpEquilibrium: "⥮",
upharpoonleft: "↿",
upharpoonright: "↾",
uplus: "⊎",
UpperLeftArrow: "↖",
UpperRightArrow: "↗",
upsi: "υ",
Upsi: "ϒ",
upsih: "ϒ",
upsilon: "υ",
Upsilon: "Υ",
UpTee: "⊥",
UpTeeArrow: "↥",
upuparrows: "⇈",
urcorn: "⌝",
urcorner: "⌝",
urcrop: "⌎",
uring: "ů",
Uring: "Ů",
urtri: "◹",
uscr: "𝓊",
Uscr: "𝒰",
utdot: "⋰",
utilde: "ũ",
Utilde: "Ũ",
utri: "▵",
utrif: "▴",
uuarr: "⇈",
uuml: "ü",
Uuml: "Ü",
uwangle: "⦧",
vangrt: "⦜",
varepsilon: "ϵ",
varkappa: "ϰ",
varnothing: "∅",
varphi: "ϕ",
varpi: "ϖ",
varpropto: "∝",
varr: "↕",
vArr: "⇕",
varrho: "ϱ",
varsigma: "ς",
varsubsetneq: "⊊︀",
varsubsetneqq: "⫋︀",
varsupsetneq: "⊋︀",
varsupsetneqq: "⫌︀",
vartheta: "ϑ",
vartriangleleft: "⊲",
vartriangleright: "⊳",
vBar: "⫨",
Vbar: "⫫",
vBarv: "⫩",
vcy: "в",
Vcy: "В",
vdash: "⊢",
vDash: "⊨",
Vdash: "⊩",
VDash: "⊫",
Vdashl: "⫦",
vee: "",
Vee: "",
veebar: "⊻",
veeeq: "≚",
vellip: "⋮",
verbar: "|",
Verbar: "‖",
vert: "|",
Vert: "‖",
VerticalBar: "",
VerticalLine: "|",
VerticalSeparator: "❘",
VerticalTilde: "≀",
VeryThinSpace: "",
vfr: "𝔳",
Vfr: "𝔙",
vltri: "⊲",
vnsub: "⊂⃒",
vnsup: "⊃⃒",
vopf: "𝕧",
Vopf: "𝕍",
vprop: "∝",
vrtri: "⊳",
vscr: "𝓋",
Vscr: "𝒱",
vsubne: "⊊︀",
vsubnE: "⫋︀",
vsupne: "⊋︀",
vsupnE: "⫌︀",
Vvdash: "⊪",
vzigzag: "⦚",
wcirc: "ŵ",
Wcirc: "Ŵ",
wedbar: "⩟",
wedge: "∧",
Wedge: "⋀",
wedgeq: "≙",
weierp: "℘",
wfr: "𝔴",
Wfr: "𝔚",
wopf: "𝕨",
Wopf: "𝕎",
wp: "℘",
wr: "≀",
wreath: "≀",
wscr: "𝓌",
Wscr: "𝒲",
xcap: "⋂",
xcirc: "◯",
xcup: "",
xdtri: "▽",
xfr: "𝔵",
Xfr: "𝔛",
xharr: "⟷",
xhArr: "⟺",
xi: "ξ",
Xi: "Ξ",
xlarr: "⟵",
xlArr: "⟸",
xmap: "⟼",
xnis: "⋻",
xodot: "⨀",
xopf: "𝕩",
Xopf: "𝕏",
xoplus: "⨁",
xotime: "⨂",
xrarr: "⟶",
xrArr: "⟹",
xscr: "𝓍",
Xscr: "𝒳",
xsqcup: "⨆",
xuplus: "⨄",
xutri: "△",
xvee: "",
xwedge: "⋀",
yacute: "ý",
Yacute: "Ý",
yacy: "я",
YAcy: "Я",
ycirc: "ŷ",
Ycirc: "Ŷ",
ycy: "ы",
Ycy: "Ы",
yen: "¥",
yfr: "𝔶",
Yfr: "𝔜",
yicy: "ї",
YIcy: "Ї",
yopf: "𝕪",
Yopf: "𝕐",
yscr: "𝓎",
Yscr: "𝒴",
yucy: "ю",
YUcy: "Ю",
yuml: "ÿ",
Yuml: "Ÿ",
zacute: "ź",
Zacute: "Ź",
zcaron: "ž",
Zcaron: "Ž",
zcy: "з",
Zcy: "З",
zdot: "ż",
Zdot: "Ż",
zeetrf: "",
ZeroWidthSpace: "",
zeta: "ζ",
Zeta: "Ζ",
zfr: "𝔷",
Zfr: "",
zhcy: "ж",
ZHcy: "Ж",
zigrarr: "⇝",
zopf: "𝕫",
Zopf: "",
zscr: "𝓏",
Zscr: "𝒵",
zwj: "",
zwnj: ""
}, f = {
aacute: "á",
Aacute: "Á",
acirc: "â",
Acirc: "Â",
acute: "´",
aelig: "æ",
AElig: "Æ",
agrave: "à",
Agrave: "À",
amp: "&",
AMP: "&",
aring: "å",
Aring: "Å",
atilde: "ã",
Atilde: "Ã",
auml: "ä",
Auml: "Ä",
brvbar: "¦",
ccedil: "ç",
Ccedil: "Ç",
cedil: "¸",
cent: "¢",
copy: "©",
COPY: "©",
curren: "¤",
deg: "°",
divide: "÷",
eacute: "é",
Eacute: "É",
ecirc: "ê",
Ecirc: "Ê",
egrave: "è",
Egrave: "È",
eth: "ð",
ETH: "Ð",
euml: "ë",
Euml: "Ë",
frac12: "½",
frac14: "¼",
frac34: "¾",
gt: ">",
GT: ">",
iacute: "í",
Iacute: "Í",
icirc: "î",
Icirc: "Î",
iexcl: "¡",
igrave: "ì",
Igrave: "Ì",
iquest: "¿",
iuml: "ï",
Iuml: "Ï",
laquo: "«",
lt: "<",
LT: "<",
macr: "¯",
micro: "µ",
middot: "·",
nbsp: " ",
not: "¬",
ntilde: "ñ",
Ntilde: "Ñ",
oacute: "ó",
Oacute: "Ó",
ocirc: "ô",
Ocirc: "Ô",
ograve: "ò",
Ograve: "Ò",
ordf: "ª",
ordm: "º",
oslash: "ø",
Oslash: "Ø",
otilde: "õ",
Otilde: "Õ",
ouml: "ö",
Ouml: "Ö",
para: "¶",
plusmn: "±",
pound: "£",
quot: '"',
QUOT: '"',
raquo: "»",
reg: "®",
REG: "®",
sect: "§",
shy: "­",
sup1: "¹",
sup2: "²",
sup3: "³",
szlig: "ß",
thorn: "þ",
THORN: "Þ",
times: "×",
uacute: "ú",
Uacute: "Ú",
ucirc: "û",
Ucirc: "Û",
ugrave: "ù",
Ugrave: "Ù",
uml: "¨",
uuml: "ü",
Uuml: "Ü",
yacute: "ý",
Yacute: "Ý",
yen: "¥",
yuml: "ÿ"
}, b = {
0: "<22>",
128: "€",
130: "",
131: "ƒ",
132: "„",
133: "…",
134: "†",
135: "‡",
136: "ˆ",
137: "‰",
138: "Š",
139: "",
140: "Œ",
142: "Ž",
145: "",
146: "",
147: "“",
148: "”",
149: "•",
150: "",
151: "—",
152: "˜",
153: "™",
154: "š",
155: "",
156: "œ",
158: "ž",
159: "Ÿ"
},
h = [1, 2, 3, 4, 5, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 64976, 64977, 64978, 64979, 64980, 64981, 64982, 64983, 64984, 64985, 64986, 64987, 64988, 64989, 64990, 64991, 64992, 64993, 64994, 64995, 64996, 64997, 64998, 64999, 65e3, 65001, 65002, 65003, 65004, 65005, 65006, 65007, 65534, 65535, 131070, 131071, 196606, 196607, 262142, 262143, 327678, 327679, 393214, 393215, 458750, 458751, 524286, 524287, 589822, 589823, 655358, 655359, 720894, 720895, 786430, 786431, 851966, 851967, 917502, 917503, 983038, 983039, 1048574, 1048575, 1114110, 1114111],
q = String.fromCharCode, v = {}, w = v.hasOwnProperty, D = function (r, e) {
return w.call(r, e)
}, y = function (r, e) {
for (var a = -1, t = r.length; ++a < t;) if (r[a] == e) return !0;
return !1
}, A = function (r, e) {
if (!r) return e;
var a, t = {};
for (a in e) t[a] = D(r, a) ? r[a] : e[a];
return t
}, E = function (r, e) {
var a = "";
return r >= 55296 && r <= 57343 || r > 1114111 ? (e && L("character reference outside the permissible Unicode range"), "<22>") : D(b, r) ? (e && L("disallowed character reference"), b[r]) : (e && y(h, r) && L("disallowed character reference"), r > 65535 && (r -= 65536, a += q(r >>> 10 & 1023 | 55296), r = 56320 | 1023 & r), a += q(r), a)
}, x = function (r) {
return "&#x" + r.toString(16).toUpperCase() + ";"
}, k = function (r) {
return "&#" + r + ";"
}, L = function (r) {
throw Error("Parse error: " + r)
}, S = function (r, e) {
e = A(e, S.options);
var a = e.strict;
a && d.test(r) && L("forbidden code point");
var t = e.encodeEverything, n = e.useNamedReferences, p = e.allowUnsafeSymbols, g = e.decimal ? k : x,
m = function (r) {
return g(r.charCodeAt(0))
};
return t ? (r = r.replace(s, function (r) {
return n && D(l, r) ? "&" + l[r] + ";" : m(r)
}), n && (r = r.replace(/&gt;\u20D2/g, "&nvgt;").replace(/&lt;\u20D2/g, "&nvlt;").replace(/&#x66;&#x6A;/g, "&fjlig;")), n && (r = r.replace(c, function (r) {
return "&" + l[r] + ";"
}))) : n ? (p || (r = r.replace(i, function (r) {
return "&" + l[r] + ";"
})), r = r.replace(/&gt;\u20D2/g, "&nvgt;").replace(/&lt;\u20D2/g, "&nvlt;"), r = r.replace(c, function (r) {
return "&" + l[r] + ";"
})) : p || (r = r.replace(i, m)), r.replace(o, function (r) {
var e = r.charCodeAt(0), a = r.charCodeAt(1), t = 1024 * (e - 55296) + a - 56320 + 65536;
return g(t)
}).replace(u, m)
};
S.options = {allowUnsafeSymbols: !1, encodeEverything: !1, strict: !1, useNamedReferences: !1, decimal: !1};
var C = function (r, e) {
e = A(e, C.options);
var a = e.strict;
return a && p.test(r) && L("malformed character reference"), r.replace(g, function (r, t, o, s, u, c, l, i, n) {
var p, d, g, b, h, q;
return t ? (h = t, m[h]) : o ? (h = o, q = s, q && e.isAttributeValue ? (a && "=" == q && L("`&` did not start a character reference"), r) : (a && L("named character reference was not terminated by a semicolon"), f[h] + (q || ""))) : u ? (g = u, d = c, a && !d && L("character reference was not terminated by a semicolon"), p = parseInt(g, 10), E(p, a)) : l ? (b = l, d = i, a && !d && L("character reference was not terminated by a semicolon"), p = parseInt(b, 16), E(p, a)) : (a && L("named character reference was not terminated by a semicolon"), r)
})
};
C.options = {isAttributeValue: !1, strict: !1};
var B = function (r) {
return r.replace(i, function (r) {
return n[r]
})
}, T = {version: "1.2.0", encode: S, decode: C, escape: B, unescape: C};
if ("function" == typeof define && "object" == typeof define.amd && define.amd) define(function () {
return T
}); else if (e && !e.nodeType) if (a) a.exports = T; else for (var R in T) D(T, R) && (e[R] = T[R]); else r.he = T
})(this);
// base64 by https://github.com/dankogai/js-base64
// prettier-ignore
!function (t, n) {
var r, e;
"object" == typeof exports && "undefined" != typeof module ? module.exports = n() : "function" == typeof define && define.amd ? define(n) : (r = t.Base64, (e = n()).noConflict = function () {
return t.Base64 = r, e
}, t.Meteor && (Base64 = e), t.Base64 = e)
}("undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : this, (function () {
"use strict";
var t, n = "3.7.2", r = "function" == typeof atob, e = "function" == typeof btoa, o = "function" == typeof Buffer,
u = "function" == typeof TextDecoder ? new TextDecoder : void 0,
i = "function" == typeof TextEncoder ? new TextEncoder : void 0,
f = Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),
c = (t = {}, f.forEach((function (n, r) {
return t[n] = r
})), t), a = /^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,
d = String.fromCharCode.bind(String),
s = "function" == typeof Uint8Array.from ? Uint8Array.from.bind(Uint8Array) : function (t, n) {
return void 0 === n && (n = function (t) {
return t
}), new Uint8Array(Array.prototype.slice.call(t, 0).map(n))
}, l = function (t) {
return t.replace(/=/g, "").replace(/[+\/]/g, (function (t) {
return "+" == t ? "-" : "_"
}))
}, h = function (t) {
return t.replace(/[^A-Za-z0-9\+\/]/g, "")
}, p = function (t) {
for (var n, r, e, o, u = "", i = t.length % 3, c = 0; c < t.length;) {
if ((r = t.charCodeAt(c++)) > 255 || (e = t.charCodeAt(c++)) > 255 || (o = t.charCodeAt(c++)) > 255) throw new TypeError("invalid character found");
u += f[(n = r << 16 | e << 8 | o) >> 18 & 63] + f[n >> 12 & 63] + f[n >> 6 & 63] + f[63 & n]
}
return i ? u.slice(0, i - 3) + "===".substring(i) : u
}, y = e ? function (t) {
return btoa(t)
} : o ? function (t) {
return Buffer.from(t, "binary").toString("base64")
} : p, A = o ? function (t) {
return Buffer.from(t).toString("base64")
} : function (t) {
for (var n = [], r = 0, e = t.length; r < e; r += 4096) n.push(d.apply(null, t.subarray(r, r + 4096)));
return y(n.join(""))
}, b = function (t, n) {
return void 0 === n && (n = !1), n ? l(A(t)) : A(t)
}, g = function (t) {
if (t.length < 2) return (n = t.charCodeAt(0)) < 128 ? t : n < 2048 ? d(192 | n >>> 6) + d(128 | 63 & n) : d(224 | n >>> 12 & 15) + d(128 | n >>> 6 & 63) + d(128 | 63 & n);
var n = 65536 + 1024 * (t.charCodeAt(0) - 55296) + (t.charCodeAt(1) - 56320);
return d(240 | n >>> 18 & 7) + d(128 | n >>> 12 & 63) + d(128 | n >>> 6 & 63) + d(128 | 63 & n)
}, B = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g, x = function (t) {
return t.replace(B, g)
}, C = o ? function (t) {
return Buffer.from(t, "utf8").toString("base64")
} : i ? function (t) {
return A(i.encode(t))
} : function (t) {
return y(x(t))
}, m = function (t, n) {
return void 0 === n && (n = !1), n ? l(C(t)) : C(t)
}, v = function (t) {
return m(t, !0)
}, U = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g, F = function (t) {
switch (t.length) {
case 4:
var n = ((7 & t.charCodeAt(0)) << 18 | (63 & t.charCodeAt(1)) << 12 | (63 & t.charCodeAt(2)) << 6 | 63 & t.charCodeAt(3)) - 65536;
return d(55296 + (n >>> 10)) + d(56320 + (1023 & n));
case 3:
return d((15 & t.charCodeAt(0)) << 12 | (63 & t.charCodeAt(1)) << 6 | 63 & t.charCodeAt(2));
default:
return d((31 & t.charCodeAt(0)) << 6 | 63 & t.charCodeAt(1))
}
}, w = function (t) {
return t.replace(U, F)
}, S = function (t) {
if (t = t.replace(/\s+/g, ""), !a.test(t)) throw new TypeError("malformed base64.");
t += "==".slice(2 - (3 & t.length));
for (var n, r, e, o = "", u = 0; u < t.length;) n = c[t.charAt(u++)] << 18 | c[t.charAt(u++)] << 12 | (r = c[t.charAt(u++)]) << 6 | (e = c[t.charAt(u++)]), o += 64 === r ? d(n >> 16 & 255) : 64 === e ? d(n >> 16 & 255, n >> 8 & 255) : d(n >> 16 & 255, n >> 8 & 255, 255 & n);
return o
}, E = r ? function (t) {
return atob(h(t))
} : o ? function (t) {
return Buffer.from(t, "base64").toString("binary")
} : S, D = o ? function (t) {
return s(Buffer.from(t, "base64"))
} : function (t) {
return s(E(t), (function (t) {
return t.charCodeAt(0)
}))
}, R = function (t) {
return D(T(t))
}, z = o ? function (t) {
return Buffer.from(t, "base64").toString("utf8")
} : u ? function (t) {
return u.decode(D(t))
} : function (t) {
return w(E(t))
}, T = function (t) {
return h(t.replace(/[-_]/g, (function (t) {
return "-" == t ? "+" : "/"
})))
}, Z = function (t) {
return z(T(t))
}, j = function (t) {
return {value: t, enumerable: !1, writable: !0, configurable: !0}
}, I = function () {
var t = function (t, n) {
return Object.defineProperty(String.prototype, t, j(n))
};
t("fromBase64", (function () {
return Z(this)
})), t("toBase64", (function (t) {
return m(this, t)
})), t("toBase64URI", (function () {
return m(this, !0)
})), t("toBase64URL", (function () {
return m(this, !0)
})), t("toUint8Array", (function () {
return R(this)
}))
}, O = function () {
var t = function (t, n) {
return Object.defineProperty(Uint8Array.prototype, t, j(n))
};
t("toBase64", (function (t) {
return b(this, t)
})), t("toBase64URI", (function () {
return b(this, !0)
})), t("toBase64URL", (function () {
return b(this, !0)
}))
}, P = {
version: n,
VERSION: "3.7.2",
atob: E,
atobPolyfill: S,
btoa: y,
btoaPolyfill: p,
fromBase64: Z,
toBase64: m,
encode: m,
encodeURI: v,
encodeURL: v,
utob: x,
btou: w,
decode: Z,
isValid: function (t) {
if ("string" != typeof t) return !1;
var n = t.replace(/\s+/g, "").replace(/={0,2}$/, "");
return !/[^\s0-9a-zA-Z\+/]/.test(n) || !/[^\s0-9a-zA-Z\-_]/.test(n)
},
fromUint8Array: b,
toUint8Array: R,
extendString: I,
extendUint8Array: O,
extendBuiltins: function () {
I(), O()
},
Base64: {}
};
return Object.keys(P).forEach((function (t) {
return P.Base64[t] = P[t]
})), P
}));
if (cgiData.type === "gray" || cgiData.type === "newgray" || cgiData.type === "empty") {
let trueURL = he.decode(
`${cgiData.hasOwnProperty("url") ? cgiData.url : /http(.*)/.exec(cgiData.desc)[0]}`
);
trueURL = trueURL.indexOf("http") == 0 ? trueURL : "http://" + trueURL;
if (/qr\.alipay/.test(trueURL)) {
notify("", "点击跳转到支付宝打开", trueURL, alipayScheme + encodeURIComponent(trueURL));
$done({});
} else {
if (trueURL.includes('https://spotify.link')) {
const pattern = /\$full_url=([^&]+)/;
trueURL = decodeURIComponent(trueURL).match(pattern)[1];
}
notify("", "点击跳转到浏览器打开", trueURL, trueURL);
if (forceRedirect) {
let redirect = {
status: redirectStatus,
headers: {
Location: trueURL,
},
};
if (isQuanX) redirect.body = respBody;
$done(redirect);
} else $done({});
}
} else if (cgiData.type === "block") {
!(async () => {
let url = cgiData.btns[0].url.replace("newreadtemplate", "redirecthelpcgi");
if (!/exportkey=(.+)/.test(url)) {
if (wechatExportKey) {
url += wechatExportKey;
} else {
$done({});
}
}
await get(url).then((resp) => {
let obj = JSON.parse(resp.body);
if (obj.hasOwnProperty("btns")) {
let trueURL = decodeURIComponent(/url=(.*)/.exec(obj.btns[0].url)[1]).replace(
/&block_?type(.*)/,
""
);
trueURL = trueURL.includes(".") ? trueURL : Base64.decode(trueURL);
trueURL = trueURL.indexOf("http") == 0 ? trueURL : "http://" + trueURL;
if (!trueURL.includes("web.archive.org/web")) {
notify("", "点击跳转到浏览器打开", trueURL, trueURL);
if (useCache) {
let cacheLink = cacheURL + trueURL;
let redirect = {
status: redirectStatus,
headers: {
Location: cacheLink,
},
};
if (isQuanX) redirect.body = respBody;
$done(redirect);
} else {
$done({});
}
} else {
$done({});
}
resolve(trueURL);
}
$done({});
resolve();
});
})();
} else {
$done({});
}
function notify(title = "", subtitle = "", content = "", open_url) {
if (isQuanX && /iOS/.test($environment.version)) {
let opts = {};
if (open_url) opts["open-url"] = open_url;
if (JSON.stringify(opts) == "{}") {
$notify(title, subtitle, content);
} else {
$notify(title, subtitle, content, opts);
}
} else if (isSurgeiOS || isStashiOS || isLanceX) {
let opts = {};
if (open_url) opts["url"] = open_url;
if (JSON.stringify(opts) == "{}") {
$notification.post(title, subtitle, content);
} else {
$notification.post(title, subtitle, content, opts);
}
} else if (isLooniOS) {
let opts = {};
if (open_url) opts["openUrl"] = open_url;
if (JSON.stringify(opts) == "{}") {
$notification.post(title, subtitle, content);
} else {
$notification.post(title, subtitle, content, opts);
}
} else if (isShadowrocket) {
if (open_url) {
$notification.post(title, subtitle, content, open_url);
} else {
$notification.post(title, subtitle, content);
}
}
}
function get(options) {
if (isQuanX) {
if (typeof options == "string") options = {url: options, method: "GET"};
return $task.fetch(options);
} else {
return new Promise((resolve, reject) => {
$httpClient.get(options, (err, response, body) => {
if (err) reject(err);
else resolve({statusCode: response.status, headers: response.headers, body});
});
});
}
}
function read(key) {
if (typeof $notify != "undefined") {
return JSON.parse($prefs.valueForKey(key) || "{}");
} else {
return JSON.parse($persistentStore.read(key) || "{}");
}
}