From d9c3ada9f8993ce838ac48e0249beaa08de24703 Mon Sep 17 00:00:00 2001 From: guncebektas Date: Mon, 25 Jul 2022 17:34:56 +0300 Subject: [PATCH 01/13] to ES6 v1 --- packages/htmljs/html.js | 168 +++++++++++++++++++-------------- packages/htmljs/htmljs_test.js | 31 +++--- packages/htmljs/package.js | 2 +- 3 files changed, 117 insertions(+), 84 deletions(-) diff --git a/packages/htmljs/html.js b/packages/htmljs/html.js index db6ef3b99..fb29cb464 100644 --- a/packages/htmljs/html.js +++ b/packages/htmljs/html.js @@ -1,28 +1,30 @@ +export const Tag = function () { +}; -export const Tag = function () {}; Tag.prototype.tagName = ''; // this will be set per Tag subclass Tag.prototype.attrs = null; Tag.prototype.children = Object.freeze ? Object.freeze([]) : []; Tag.prototype.htmljsType = Tag.htmljsType = ['Tag']; // Given "p" create the function `HTML.P`. -var makeTagConstructor = function (tagName) { - // Tag is the per-tagName constructor of a HTML.Tag subclass - var HTMLTag = function (...args) { +const makeTagConstructor = function (tagName) { + // Tag is the per-tagName constructor of an HTML.Tag subclass + const HTMLTag = function (...args) { // Work with or without `new`. If not called with `new`, // perform instantiation by recursively calling this constructor. // We can't pass varargs, so pass no args. - var instance = (this instanceof Tag) ? this : new HTMLTag; + const instance = (this instanceof Tag) ? this : new HTMLTag; + + let i = 0; + const attrs = args.length && args[0]; - var i = 0; - var attrs = args.length && args[0]; if (attrs && (typeof attrs === 'object')) { - // Treat vanilla JS object as an attributes dictionary. - if (! isConstructedObject(attrs)) { + // Treat vanilla JS objects as an attributes' dictionary. + if (!isConstructedObject(attrs)) { instance.attrs = attrs; i++; } else if (attrs instanceof Attrs) { - var array = attrs.value; + const array = attrs.value; if (array.length === 1) { instance.attrs = array[0]; } else if (array.length > 1) { @@ -32,16 +34,17 @@ var makeTagConstructor = function (tagName) { } } - // If no children, don't create an array at all, use the prototype's // (frozen, empty) array. This way we don't create an empty array // every time someone creates a tag without `new` and this constructor // calls itself with no arguments (above). - if (i < args.length) + if (i < args.length) { instance.children = args.slice(i); + } return instance; }; + HTMLTag.prototype = new Tag; HTMLTag.prototype.constructor = HTMLTag; HTMLTag.prototype.tagName = tagName; @@ -55,53 +58,53 @@ export function Attrs(...args) { // Work with or without `new`. If not called with `new`, // perform instantiation by recursively calling this constructor. // We can't pass varargs, so pass no args. - var instance = (this instanceof Attrs) ? this : new Attrs; + const instance = (this instanceof Attrs) ? this : new Attrs; instance.value = args; return instance; } -////////////////////////////// KNOWN ELEMENTS +// KNOWN ELEMENTS export const HTMLTags = {}; -export function getTag (tagName) { - var symbolName = getSymbolName(tagName); - if (symbolName === tagName) // all-caps tagName - throw new Error("Use the lowercase or camelCase form of '" + tagName + "' here"); +export function getTag(tagName) { + const symbolName = getSymbolName(tagName); + + if (symbolName === tagName) { + // all-caps tagName + throw new Error(`Use the lowercase or camelCase form of "${tagName}" here`); + } - if (! HTMLTags[symbolName]) + if (!HTMLTags[symbolName]) { HTMLTags[symbolName] = makeTagConstructor(tagName); + } return HTMLTags[symbolName]; } -export function ensureTag(tagName) { - getTag(tagName); // don't return it -} - -export function isTagEnsured (tagName) { +export function isTagEnsured(tagName) { return isKnownElement(tagName); } -export function getSymbolName (tagName) { +export function getSymbolName(tagName) { // "foo-bar" -> "FOO_BAR" return tagName.toUpperCase().replace(/-/g, '_'); } +// HTML + SVG element names export const knownHTMLElementNames = 'a abbr acronym address applet area article aside audio b base basefont bdi bdo big blockquote body br button canvas caption center cite code col colgroup command data datagrid datalist dd del details dfn dir div dl dt em embed eventsource fieldset figcaption figure font footer form frame frameset h1 h2 h3 h4 h5 h6 head header hgroup hr html i iframe img input ins isindex kbd keygen label legend li link main map mark menu meta meter nav noframes noscript object ol optgroup option output p param pre progress q rp rt ruby s samp script section select small source span strike strong style sub summary sup table tbody td textarea tfoot th thead time title tr track tt u ul var video wbr'.split(' '); -// (we add the SVG ones below) - +// We add the SVG one's below export const knownSVGElementNames = 'altGlyph altGlyphDef altGlyphItem animate animateColor animateMotion animateTransform circle clipPath color-profile cursor defs desc ellipse feBlend feColorMatrix feComponentTransfer feComposite feConvolveMatrix feDiffuseLighting feDisplacementMap feDistantLight feFlood feFuncA feFuncB feFuncG feFuncR feGaussianBlur feImage feMerge feMergeNode feMorphology feOffset fePointLight feSpecularLighting feSpotLight feTile feTurbulence filter font font-face font-face-format font-face-name font-face-src font-face-uri foreignObject g glyph glyphRef hkern image line linearGradient marker mask metadata missing-glyph path pattern polygon polyline radialGradient rect set stop style svg switch symbol text textPath title tref tspan use view vkern'.split(' '); // Append SVG element names to list of known element names export const knownElementNames = knownHTMLElementNames.concat(knownSVGElementNames); +// VOID element names export const voidElementNames = 'area base br col command embed hr img input keygen link meta param source track wbr'.split(' '); - -var voidElementSet = new Set(voidElementNames); -var knownElementSet = new Set(knownElementNames); -var knownSVGElementSet = new Set(knownSVGElementNames); +const knownElementSet = new Set(knownElementNames); +const knownSVGElementSet = new Set(knownSVGElementNames); +const voidElementSet = new Set(voidElementNames); export function isKnownElement(tagName) { return knownElementSet.has(tagName); @@ -115,57 +118,67 @@ export function isVoidElement(tagName) { return voidElementSet.has(tagName); } - // Ensure tags for all known elements knownElementNames.forEach(ensureTag); +export function ensureTag(tagName) { + getTag(tagName); // don't return it +} export function CharRef(attrs) { - if (! (this instanceof CharRef)) + if (!(this instanceof CharRef)) { // called without `new` return new CharRef(attrs); + } - if (! (attrs && attrs.html && attrs.str)) - throw new Error( - "HTML.CharRef must be constructed with ({html:..., str:...})"); + if (!(attrs && attrs.html && attrs.str)) { + throw new Error("HTML.CharRef must be constructed with ({html:..., str:...})"); + } this.html = attrs.html; this.str = attrs.str; } + CharRef.prototype.htmljsType = CharRef.htmljsType = ['CharRef']; export function Comment(value) { - if (! (this instanceof Comment)) + if (!(this instanceof Comment)) { // called without `new` return new Comment(value); + } - if (typeof value !== 'string') + if (typeof value !== 'string') { throw new Error('HTML.Comment must be constructed with a string'); + } this.value = value; + // Kill illegal hyphens in comment value (no way to escape them in HTML) this.sanitizedValue = value.replace(/^-|--+|-$/g, ''); } + Comment.prototype.htmljsType = Comment.htmljsType = ['Comment']; export function Raw(value) { - if (! (this instanceof Raw)) + if (!(this instanceof Raw)) { // called without `new` return new Raw(value); + } - if (typeof value !== 'string') + if (typeof value !== 'string') { throw new Error('HTML.Raw must be constructed with a string'); + } this.value = value; } -Raw.prototype.htmljsType = Raw.htmljsType = ['Raw']; +Raw.prototype.htmljsType = Raw.htmljsType = ['Raw']; -export function isArray (x) { +export function isArray(x) { return x instanceof Array || Array.isArray(x); } -export function isConstructedObject (x) { +export function isConstructedObject(x) { // Figure out if `x` is "an instance of some class" or just a plain // object literal. It correctly treats an object literal like // `{ constructor: ... }` as an object literal. It won't detect @@ -173,24 +186,27 @@ export function isConstructedObject (x) { // if you assign to a prototype when setting up the class as in: // `Foo = function () { ... }; Foo.prototype = { ... }`, then // `(new Foo).constructor` is `Object`, not `Foo`). - if(!x || (typeof x !== 'object')) return false; + if (!x || (typeof x !== 'object')) return false; + // Is this a plain object? - let plain = false; - if(Object.getPrototypeOf(x) === null) { + let plain; + + if (Object.getPrototypeOf(x) === null) { plain = true; } else { let proto = x; - while(Object.getPrototypeOf(proto) !== null) { + + while (Object.getPrototypeOf(proto) !== null) { proto = Object.getPrototypeOf(proto); } + plain = Object.getPrototypeOf(x) === proto; } - return !plain && - (typeof x.constructor === 'function') && - (x instanceof x.constructor); + return !plain && (typeof x.constructor === 'function') && (x instanceof x.constructor); } + export function isNully (node) { if (node == null) // null or undefined @@ -198,41 +214,55 @@ export function isNully (node) { if (isArray(node)) { // is it an empty array or an array of all nully items? - for (var i = 0; i < node.length; i++) - if (! isNully(node[i])) + for (const item of node) + if (! isNully(item)) return false; + return true; } return false; } -export function isValidAttributeName (name) { +export function isValidAttributeName(name) { return /^[:_A-Za-z][:_A-Za-z0-9.\-]*/.test(name); } // If `attrs` is an array of attributes dictionaries, combines them -// into one. Removes attributes that are "nully." -export function flattenAttributes (attrs) { - if (! attrs) +// into one. Remove attributes that are "nully." +export function flattenAttributes(attrs) { + if (!attrs) { return attrs; + } - var isList = isArray(attrs); - if (isList && attrs.length === 0) + const isList = isArray(attrs); + + if (isList && attrs.length === 0) { return null; + } + + const result = {}; - var result = {}; - for (var i = 0, N = (isList ? attrs.length : 1); i < N; i++) { - var oneAttrs = (isList ? attrs[i] : attrs); - if ((typeof oneAttrs !== 'object') || - isConstructedObject(oneAttrs)) - throw new Error("Expected plain JS object as attrs, found: " + oneAttrs); - for (var name in oneAttrs) { - if (! isValidAttributeName(name)) - throw new Error("Illegal HTML attribute name: " + name); - var value = oneAttrs[name]; - if (! isNully(value)) + let i = 0; + const N = (isList ? attrs.length : 1); + + for (; i < N; i++) { + const oneAttrs = (isList ? attrs[i] : attrs); + + if ((typeof oneAttrs !== 'object') || isConstructedObject(oneAttrs)) { + throw new Error(`Expected plain JS object as attrs, found: ${oneAttrs}`); + } + + for (let name in oneAttrs) { + if (!isValidAttributeName(name)) { + throw new Error(`Illegal HTML attribute name: ${name}`); + } + + const value = oneAttrs[name]; + + if (!isNully(value)) { result[name] = value; + } } } diff --git a/packages/htmljs/htmljs_test.js b/packages/htmljs/htmljs_test.js index c20722ee5..7f6b3a4a6 100644 --- a/packages/htmljs/htmljs_test.js +++ b/packages/htmljs/htmljs_test.js @@ -1,9 +1,9 @@ import { HTML } from 'meteor/htmljs'; Tinytest.add("htmljs - getTag", function (test) { - var FOO = HTML.getTag('foo'); + const FOO = HTML.getTag('foo'); test.isTrue(HTML.FOO === FOO); - var x = FOO(); + const x = FOO(); test.equal(x.tagName, 'foo'); test.isTrue(x instanceof HTML.FOO); @@ -15,27 +15,28 @@ Tinytest.add("htmljs - getTag", function (test) { test.isTrue((new FOO) instanceof HTML.Tag); test.isFalse((new HTML.P) instanceof HTML.FOO); - var result = HTML.ensureTag('Bar'); + const result = HTML.ensureTag('Bar'); // void function's return checked intentionally test.equal(typeof result, 'undefined'); - var BAR = HTML.BAR; + + const BAR = HTML.BAR; test.equal(BAR().tagName, 'Bar'); }); Tinytest.add("htmljs - construction", function (test) { - var A = HTML.getTag('a'); - var B = HTML.getTag('b'); - var C = HTML.getTag('c'); + const A = HTML.getTag('a'); + const B = HTML.getTag('b'); + const C = HTML.getTag('c'); - var a = A(0, B({q:0}, C(A(B({})), 'foo'))); + const a = A(0, B({q: 0}, C(A(B({})), 'foo'))); test.equal(a.tagName, 'a'); test.equal(a.attrs, null); test.equal(a.children.length, 2); test.equal(a.children[0], 0); - var b = a.children[1]; + const b = a.children[1]; test.equal(b.tagName, 'b'); test.equal(b.attrs, {q:0}); test.equal(b.children.length, 1); - var c = b.children[0]; + const c = b.children[0]; test.equal(c.tagName, 'c'); test.equal(c.attrs, null); test.equal(c.children.length, 2); @@ -47,7 +48,7 @@ Tinytest.add("htmljs - construction", function (test) { test.equal(c.children[0].children[0].attrs, {}); test.equal(c.children[1], 'foo'); - var a2 = new A({m:1}, {n:2}, B(), {o:3}, 'foo'); + const a2 = new A({m: 1}, {n: 2}, B(), {o: 3}, 'foo'); test.equal(a2.tagName, 'a'); test.equal(a2.attrs, {m:1}); test.equal(a2.children.length, 4); @@ -58,7 +59,9 @@ Tinytest.add("htmljs - construction", function (test) { // tests of HTML.isConstructedObject (indirectly) test.equal(A({x:1}).children.length, 0); - var f = function () {}; + const f = function () { + }; + test.equal(A(new f).children.length, 1); test.equal(A(new Date).children.length, 1); test.equal(A({constructor: 'blah'}).children.length, 0); @@ -71,9 +74,9 @@ Tinytest.add("htmljs - construction", function (test) { }); // copied from here https://github.com/meteor/blaze/blob/ed9299ea32afdd04f33124957f22ce2b18b7f3ff/packages/html-tools/utils.js#L3 -// to avoid circular dependency between htmljs and html-tools pacakge. +// to avoid circular dependency between htmljs and html-tools package. // this circular dependency was blocking the publish process. -var asciiLowerCase = function (str) { +const asciiLowerCase = function (str) { return str.replace(/[A-Z]/g, function (c) { return String.fromCharCode(c.charCodeAt(0) + 32); }); diff --git a/packages/htmljs/package.js b/packages/htmljs/package.js index 1b9c26bc5..52d8cab4f 100644 --- a/packages/htmljs/package.js +++ b/packages/htmljs/package.js @@ -1,7 +1,7 @@ Package.describe({ name: 'htmljs', summary: "Small library for expressing HTML trees", - version: '1.1.1', + version: '1.1.2', git: 'https://github.com/meteor/blaze.git' }); From 48b6c77a621e1f7eb3f7ba4f140872aefcfa0eae Mon Sep 17 00:00:00 2001 From: guncebektas Date: Mon, 25 Jul 2022 20:49:53 +0300 Subject: [PATCH 02/13] htmljs to ES6 v1 (readme.md) --- packages/htmljs/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/htmljs/README.md b/packages/htmljs/README.md index d2b06c4b0..1ac4d80b6 100644 --- a/packages/htmljs/README.md +++ b/packages/htmljs/README.md @@ -5,7 +5,7 @@ syntax. It is used to render content in Blaze and to represent templates during compilation. ``` -var UL = HTML.UL, LI = HTML.LI, B = HTML.B; +let UL = HTML.UL, LI = HTML.LI, B = HTML.B; HTML.toHTML( UL({id: 'mylist'}, @@ -95,9 +95,9 @@ it must be written as `HTML.Attrs(attrs1, attrs2, ...)`, as in this example: ``` -var extraAttrs = {'class': "container"}; +let extraAttrs = {'class': "container"}; -var div = HTML.DIV(HTML.Attrs({id: "main"}, extraAttrs), +let div = HTML.DIV(HTML.Attrs({id: "main"}, extraAttrs), "This is the content."); div.attrs // => [{id: "main"}, {'class': "container"}] From 895c109697fb6f17518fb884704f6530441dfa99 Mon Sep 17 00:00:00 2001 From: guncebektas Date: Mon, 25 Jul 2022 20:56:31 +0300 Subject: [PATCH 03/13] html-tools to ES6 v1 --- packages/html-tools/charref.js | 4622 +++++++++++++------------ packages/html-tools/charref_tests.js | 28 +- packages/html-tools/main.js | 5 +- packages/html-tools/package.js | 2 +- packages/html-tools/parse.js | 374 +- packages/html-tools/parse_tests.js | 103 +- packages/html-tools/scanner.js | 32 +- packages/html-tools/templatetag.js | 12 +- packages/html-tools/tokenize.js | 216 +- packages/html-tools/tokenize_tests.js | 55 +- packages/html-tools/utils.js | 24 +- 11 files changed, 2766 insertions(+), 2707 deletions(-) diff --git a/packages/html-tools/charref.js b/packages/html-tools/charref.js index c0725abb0..d7b67363c 100644 --- a/packages/html-tools/charref.js +++ b/packages/html-tools/charref.js @@ -1,2282 +1,2285 @@ -import { makeRegexMatcher } from './scanner'; +import {makeRegexMatcher} from './scanner'; // http://www.whatwg.org/specs/web-apps/current-work/multipage/entities.json - // Note that some entities don't have a final semicolon! These are used to // make `<` (for example) with no semicolon a parse error but `&abcde` not. - -var ENTITIES = { - "Á": { "codepoints": [193], "characters": "\u00C1" }, - "Á": { "codepoints": [193], "characters": "\u00C1" }, - "á": { "codepoints": [225], "characters": "\u00E1" }, - "á": { "codepoints": [225], "characters": "\u00E1" }, - "Ă": { "codepoints": [258], "characters": "\u0102" }, - "ă": { "codepoints": [259], "characters": "\u0103" }, - "∾": { "codepoints": [8766], "characters": "\u223E" }, - "∿": { "codepoints": [8767], "characters": "\u223F" }, - "∾̳": { "codepoints": [8766, 819], "characters": "\u223E\u0333" }, - "Â": { "codepoints": [194], "characters": "\u00C2" }, - "Â": { "codepoints": [194], "characters": "\u00C2" }, - "â": { "codepoints": [226], "characters": "\u00E2" }, - "â": { "codepoints": [226], "characters": "\u00E2" }, - "´": { "codepoints": [180], "characters": "\u00B4" }, - "´": { "codepoints": [180], "characters": "\u00B4" }, - "А": { "codepoints": [1040], "characters": "\u0410" }, - "а": { "codepoints": [1072], "characters": "\u0430" }, - "Æ": { "codepoints": [198], "characters": "\u00C6" }, - "Æ": { "codepoints": [198], "characters": "\u00C6" }, - "æ": { "codepoints": [230], "characters": "\u00E6" }, - "æ": { "codepoints": [230], "characters": "\u00E6" }, - "⁡": { "codepoints": [8289], "characters": "\u2061" }, - "𝔄": { "codepoints": [120068], "characters": "\uD835\uDD04" }, - "𝔞": { "codepoints": [120094], "characters": "\uD835\uDD1E" }, - "À": { "codepoints": [192], "characters": "\u00C0" }, - "À": { "codepoints": [192], "characters": "\u00C0" }, - "à": { "codepoints": [224], "characters": "\u00E0" }, - "à": { "codepoints": [224], "characters": "\u00E0" }, - "ℵ": { "codepoints": [8501], "characters": "\u2135" }, - "ℵ": { "codepoints": [8501], "characters": "\u2135" }, - "Α": { "codepoints": [913], "characters": "\u0391" }, - "α": { "codepoints": [945], "characters": "\u03B1" }, - "Ā": { "codepoints": [256], "characters": "\u0100" }, - "ā": { "codepoints": [257], "characters": "\u0101" }, - "⨿": { "codepoints": [10815], "characters": "\u2A3F" }, - "&": { "codepoints": [38], "characters": "\u0026" }, - "&": { "codepoints": [38], "characters": "\u0026" }, - "&": { "codepoints": [38], "characters": "\u0026" }, - "&": { "codepoints": [38], "characters": "\u0026" }, - "⩕": { "codepoints": [10837], "characters": "\u2A55" }, - "⩓": { "codepoints": [10835], "characters": "\u2A53" }, - "∧": { "codepoints": [8743], "characters": "\u2227" }, - "⩜": { "codepoints": [10844], "characters": "\u2A5C" }, - "⩘": { "codepoints": [10840], "characters": "\u2A58" }, - "⩚": { "codepoints": [10842], "characters": "\u2A5A" }, - "∠": { "codepoints": [8736], "characters": "\u2220" }, - "⦤": { "codepoints": [10660], "characters": "\u29A4" }, - "∠": { "codepoints": [8736], "characters": "\u2220" }, - "⦨": { "codepoints": [10664], "characters": "\u29A8" }, - "⦩": { "codepoints": [10665], "characters": "\u29A9" }, - "⦪": { "codepoints": [10666], "characters": "\u29AA" }, - "⦫": { "codepoints": [10667], "characters": "\u29AB" }, - "⦬": { "codepoints": [10668], "characters": "\u29AC" }, - "⦭": { "codepoints": [10669], "characters": "\u29AD" }, - "⦮": { "codepoints": [10670], "characters": "\u29AE" }, - "⦯": { "codepoints": [10671], "characters": "\u29AF" }, - "∡": { "codepoints": [8737], "characters": "\u2221" }, - "∟": { "codepoints": [8735], "characters": "\u221F" }, - "⊾": { "codepoints": [8894], "characters": "\u22BE" }, - "⦝": { "codepoints": [10653], "characters": "\u299D" }, - "∢": { "codepoints": [8738], "characters": "\u2222" }, - "Å": { "codepoints": [197], "characters": "\u00C5" }, - "⍼": { "codepoints": [9084], "characters": "\u237C" }, - "Ą": { "codepoints": [260], "characters": "\u0104" }, - "ą": { "codepoints": [261], "characters": "\u0105" }, - "𝔸": { "codepoints": [120120], "characters": "\uD835\uDD38" }, - "𝕒": { "codepoints": [120146], "characters": "\uD835\uDD52" }, - "⩯": { "codepoints": [10863], "characters": "\u2A6F" }, - "≈": { "codepoints": [8776], "characters": "\u2248" }, - "⩰": { "codepoints": [10864], "characters": "\u2A70" }, - "≊": { "codepoints": [8778], "characters": "\u224A" }, - "≋": { "codepoints": [8779], "characters": "\u224B" }, - "'": { "codepoints": [39], "characters": "\u0027" }, - "⁡": { "codepoints": [8289], "characters": "\u2061" }, - "≈": { "codepoints": [8776], "characters": "\u2248" }, - "≊": { "codepoints": [8778], "characters": "\u224A" }, - "Å": { "codepoints": [197], "characters": "\u00C5" }, - "Å": { "codepoints": [197], "characters": "\u00C5" }, - "å": { "codepoints": [229], "characters": "\u00E5" }, - "å": { "codepoints": [229], "characters": "\u00E5" }, - "𝒜": { "codepoints": [119964], "characters": "\uD835\uDC9C" }, - "𝒶": { "codepoints": [119990], "characters": "\uD835\uDCB6" }, - "≔": { "codepoints": [8788], "characters": "\u2254" }, - "*": { "codepoints": [42], "characters": "\u002A" }, - "≈": { "codepoints": [8776], "characters": "\u2248" }, - "≍": { "codepoints": [8781], "characters": "\u224D" }, - "Ã": { "codepoints": [195], "characters": "\u00C3" }, - "Ã": { "codepoints": [195], "characters": "\u00C3" }, - "ã": { "codepoints": [227], "characters": "\u00E3" }, - "ã": { "codepoints": [227], "characters": "\u00E3" }, - "Ä": { "codepoints": [196], "characters": "\u00C4" }, - "Ä": { "codepoints": [196], "characters": "\u00C4" }, - "ä": { "codepoints": [228], "characters": "\u00E4" }, - "ä": { "codepoints": [228], "characters": "\u00E4" }, - "∳": { "codepoints": [8755], "characters": "\u2233" }, - "⨑": { "codepoints": [10769], "characters": "\u2A11" }, - "≌": { "codepoints": [8780], "characters": "\u224C" }, - "϶": { "codepoints": [1014], "characters": "\u03F6" }, - "‵": { "codepoints": [8245], "characters": "\u2035" }, - "∽": { "codepoints": [8765], "characters": "\u223D" }, - "⋍": { "codepoints": [8909], "characters": "\u22CD" }, - "∖": { "codepoints": [8726], "characters": "\u2216" }, - "⫧": { "codepoints": [10983], "characters": "\u2AE7" }, - "⊽": { "codepoints": [8893], "characters": "\u22BD" }, - "⌅": { "codepoints": [8965], "characters": "\u2305" }, - "⌆": { "codepoints": [8966], "characters": "\u2306" }, - "⌅": { "codepoints": [8965], "characters": "\u2305" }, - "⎵": { "codepoints": [9141], "characters": "\u23B5" }, - "⎶": { "codepoints": [9142], "characters": "\u23B6" }, - "≌": { "codepoints": [8780], "characters": "\u224C" }, - "Б": { "codepoints": [1041], "characters": "\u0411" }, - "б": { "codepoints": [1073], "characters": "\u0431" }, - "„": { "codepoints": [8222], "characters": "\u201E" }, - "∵": { "codepoints": [8757], "characters": "\u2235" }, - "∵": { "codepoints": [8757], "characters": "\u2235" }, - "∵": { "codepoints": [8757], "characters": "\u2235" }, - "⦰": { "codepoints": [10672], "characters": "\u29B0" }, - "϶": { "codepoints": [1014], "characters": "\u03F6" }, - "ℬ": { "codepoints": [8492], "characters": "\u212C" }, - "ℬ": { "codepoints": [8492], "characters": "\u212C" }, - "Β": { "codepoints": [914], "characters": "\u0392" }, - "β": { "codepoints": [946], "characters": "\u03B2" }, - "ℶ": { "codepoints": [8502], "characters": "\u2136" }, - "≬": { "codepoints": [8812], "characters": "\u226C" }, - "𝔅": { "codepoints": [120069], "characters": "\uD835\uDD05" }, - "𝔟": { "codepoints": [120095], "characters": "\uD835\uDD1F" }, - "⋂": { "codepoints": [8898], "characters": "\u22C2" }, - "◯": { "codepoints": [9711], "characters": "\u25EF" }, - "⋃": { "codepoints": [8899], "characters": "\u22C3" }, - "⨀": { "codepoints": [10752], "characters": "\u2A00" }, - "⨁": { "codepoints": [10753], "characters": "\u2A01" }, - "⨂": { "codepoints": [10754], "characters": "\u2A02" }, - "⨆": { "codepoints": [10758], "characters": "\u2A06" }, - "★": { "codepoints": [9733], "characters": "\u2605" }, - "▽": { "codepoints": [9661], "characters": "\u25BD" }, - "△": { "codepoints": [9651], "characters": "\u25B3" }, - "⨄": { "codepoints": [10756], "characters": "\u2A04" }, - "⋁": { "codepoints": [8897], "characters": "\u22C1" }, - "⋀": { "codepoints": [8896], "characters": "\u22C0" }, - "⤍": { "codepoints": [10509], "characters": "\u290D" }, - "⧫": { "codepoints": [10731], "characters": "\u29EB" }, - "▪": { "codepoints": [9642], "characters": "\u25AA" }, - "▴": { "codepoints": [9652], "characters": "\u25B4" }, - "▾": { "codepoints": [9662], "characters": "\u25BE" }, - "◂": { "codepoints": [9666], "characters": "\u25C2" }, - "▸": { "codepoints": [9656], "characters": "\u25B8" }, - "␣": { "codepoints": [9251], "characters": "\u2423" }, - "▒": { "codepoints": [9618], "characters": "\u2592" }, - "░": { "codepoints": [9617], "characters": "\u2591" }, - "▓": { "codepoints": [9619], "characters": "\u2593" }, - "█": { "codepoints": [9608], "characters": "\u2588" }, - "=⃥": { "codepoints": [61, 8421], "characters": "\u003D\u20E5" }, - "≡⃥": { "codepoints": [8801, 8421], "characters": "\u2261\u20E5" }, - "⫭": { "codepoints": [10989], "characters": "\u2AED" }, - "⌐": { "codepoints": [8976], "characters": "\u2310" }, - "𝔹": { "codepoints": [120121], "characters": "\uD835\uDD39" }, - "𝕓": { "codepoints": [120147], "characters": "\uD835\uDD53" }, - "⊥": { "codepoints": [8869], "characters": "\u22A5" }, - "⊥": { "codepoints": [8869], "characters": "\u22A5" }, - "⋈": { "codepoints": [8904], "characters": "\u22C8" }, - "⧉": { "codepoints": [10697], "characters": "\u29C9" }, - "┐": { "codepoints": [9488], "characters": "\u2510" }, - "╕": { "codepoints": [9557], "characters": "\u2555" }, - "╖": { "codepoints": [9558], "characters": "\u2556" }, - "╗": { "codepoints": [9559], "characters": "\u2557" }, - "┌": { "codepoints": [9484], "characters": "\u250C" }, - "╒": { "codepoints": [9554], "characters": "\u2552" }, - "╓": { "codepoints": [9555], "characters": "\u2553" }, - "╔": { "codepoints": [9556], "characters": "\u2554" }, - "─": { "codepoints": [9472], "characters": "\u2500" }, - "═": { "codepoints": [9552], "characters": "\u2550" }, - "┬": { "codepoints": [9516], "characters": "\u252C" }, - "╤": { "codepoints": [9572], "characters": "\u2564" }, - "╥": { "codepoints": [9573], "characters": "\u2565" }, - "╦": { "codepoints": [9574], "characters": "\u2566" }, - "┴": { "codepoints": [9524], "characters": "\u2534" }, - "╧": { "codepoints": [9575], "characters": "\u2567" }, - "╨": { "codepoints": [9576], "characters": "\u2568" }, - "╩": { "codepoints": [9577], "characters": "\u2569" }, - "⊟": { "codepoints": [8863], "characters": "\u229F" }, - "⊞": { "codepoints": [8862], "characters": "\u229E" }, - "⊠": { "codepoints": [8864], "characters": "\u22A0" }, - "┘": { "codepoints": [9496], "characters": "\u2518" }, - "╛": { "codepoints": [9563], "characters": "\u255B" }, - "╜": { "codepoints": [9564], "characters": "\u255C" }, - "╝": { "codepoints": [9565], "characters": "\u255D" }, - "└": { "codepoints": [9492], "characters": "\u2514" }, - "╘": { "codepoints": [9560], "characters": "\u2558" }, - "╙": { "codepoints": [9561], "characters": "\u2559" }, - "╚": { "codepoints": [9562], "characters": "\u255A" }, - "│": { "codepoints": [9474], "characters": "\u2502" }, - "║": { "codepoints": [9553], "characters": "\u2551" }, - "┼": { "codepoints": [9532], "characters": "\u253C" }, - "╪": { "codepoints": [9578], "characters": "\u256A" }, - "╫": { "codepoints": [9579], "characters": "\u256B" }, - "╬": { "codepoints": [9580], "characters": "\u256C" }, - "┤": { "codepoints": [9508], "characters": "\u2524" }, - "╡": { "codepoints": [9569], "characters": "\u2561" }, - "╢": { "codepoints": [9570], "characters": "\u2562" }, - "╣": { "codepoints": [9571], "characters": "\u2563" }, - "├": { "codepoints": [9500], "characters": "\u251C" }, - "╞": { "codepoints": [9566], "characters": "\u255E" }, - "╟": { "codepoints": [9567], "characters": "\u255F" }, - "╠": { "codepoints": [9568], "characters": "\u2560" }, - "‵": { "codepoints": [8245], "characters": "\u2035" }, - "˘": { "codepoints": [728], "characters": "\u02D8" }, - "˘": { "codepoints": [728], "characters": "\u02D8" }, - "¦": { "codepoints": [166], "characters": "\u00A6" }, - "¦": { "codepoints": [166], "characters": "\u00A6" }, - "𝒷": { "codepoints": [119991], "characters": "\uD835\uDCB7" }, - "ℬ": { "codepoints": [8492], "characters": "\u212C" }, - "⁏": { "codepoints": [8271], "characters": "\u204F" }, - "∽": { "codepoints": [8765], "characters": "\u223D" }, - "⋍": { "codepoints": [8909], "characters": "\u22CD" }, - "⧅": { "codepoints": [10693], "characters": "\u29C5" }, - "\": { "codepoints": [92], "characters": "\u005C" }, - "⟈": { "codepoints": [10184], "characters": "\u27C8" }, - "•": { "codepoints": [8226], "characters": "\u2022" }, - "•": { "codepoints": [8226], "characters": "\u2022" }, - "≎": { "codepoints": [8782], "characters": "\u224E" }, - "⪮": { "codepoints": [10926], "characters": "\u2AAE" }, - "≏": { "codepoints": [8783], "characters": "\u224F" }, - "≎": { "codepoints": [8782], "characters": "\u224E" }, - "≏": { "codepoints": [8783], "characters": "\u224F" }, - "Ć": { "codepoints": [262], "characters": "\u0106" }, - "ć": { "codepoints": [263], "characters": "\u0107" }, - "⩄": { "codepoints": [10820], "characters": "\u2A44" }, - "⩉": { "codepoints": [10825], "characters": "\u2A49" }, - "⩋": { "codepoints": [10827], "characters": "\u2A4B" }, - "∩": { "codepoints": [8745], "characters": "\u2229" }, - "⋒": { "codepoints": [8914], "characters": "\u22D2" }, - "⩇": { "codepoints": [10823], "characters": "\u2A47" }, - "⩀": { "codepoints": [10816], "characters": "\u2A40" }, - "ⅅ": { "codepoints": [8517], "characters": "\u2145" }, - "∩︀": { "codepoints": [8745, 65024], "characters": "\u2229\uFE00" }, - "⁁": { "codepoints": [8257], "characters": "\u2041" }, - "ˇ": { "codepoints": [711], "characters": "\u02C7" }, - "ℭ": { "codepoints": [8493], "characters": "\u212D" }, - "⩍": { "codepoints": [10829], "characters": "\u2A4D" }, - "Č": { "codepoints": [268], "characters": "\u010C" }, - "č": { "codepoints": [269], "characters": "\u010D" }, - "Ç": { "codepoints": [199], "characters": "\u00C7" }, - "Ç": { "codepoints": [199], "characters": "\u00C7" }, - "ç": { "codepoints": [231], "characters": "\u00E7" }, - "ç": { "codepoints": [231], "characters": "\u00E7" }, - "Ĉ": { "codepoints": [264], "characters": "\u0108" }, - "ĉ": { "codepoints": [265], "characters": "\u0109" }, - "∰": { "codepoints": [8752], "characters": "\u2230" }, - "⩌": { "codepoints": [10828], "characters": "\u2A4C" }, - "⩐": { "codepoints": [10832], "characters": "\u2A50" }, - "Ċ": { "codepoints": [266], "characters": "\u010A" }, - "ċ": { "codepoints": [267], "characters": "\u010B" }, - "¸": { "codepoints": [184], "characters": "\u00B8" }, - "¸": { "codepoints": [184], "characters": "\u00B8" }, - "¸": { "codepoints": [184], "characters": "\u00B8" }, - "⦲": { "codepoints": [10674], "characters": "\u29B2" }, - "¢": { "codepoints": [162], "characters": "\u00A2" }, - "¢": { "codepoints": [162], "characters": "\u00A2" }, - "·": { "codepoints": [183], "characters": "\u00B7" }, - "·": { "codepoints": [183], "characters": "\u00B7" }, - "𝔠": { "codepoints": [120096], "characters": "\uD835\uDD20" }, - "ℭ": { "codepoints": [8493], "characters": "\u212D" }, - "Ч": { "codepoints": [1063], "characters": "\u0427" }, - "ч": { "codepoints": [1095], "characters": "\u0447" }, - "✓": { "codepoints": [10003], "characters": "\u2713" }, - "✓": { "codepoints": [10003], "characters": "\u2713" }, - "Χ": { "codepoints": [935], "characters": "\u03A7" }, - "χ": { "codepoints": [967], "characters": "\u03C7" }, - "ˆ": { "codepoints": [710], "characters": "\u02C6" }, - "≗": { "codepoints": [8791], "characters": "\u2257" }, - "↺": { "codepoints": [8634], "characters": "\u21BA" }, - "↻": { "codepoints": [8635], "characters": "\u21BB" }, - "⊛": { "codepoints": [8859], "characters": "\u229B" }, - "⊚": { "codepoints": [8858], "characters": "\u229A" }, - "⊝": { "codepoints": [8861], "characters": "\u229D" }, - "⊙": { "codepoints": [8857], "characters": "\u2299" }, - "®": { "codepoints": [174], "characters": "\u00AE" }, - "Ⓢ": { "codepoints": [9416], "characters": "\u24C8" }, - "⊖": { "codepoints": [8854], "characters": "\u2296" }, - "⊕": { "codepoints": [8853], "characters": "\u2295" }, - "⊗": { "codepoints": [8855], "characters": "\u2297" }, - "○": { "codepoints": [9675], "characters": "\u25CB" }, - "⧃": { "codepoints": [10691], "characters": "\u29C3" }, - "≗": { "codepoints": [8791], "characters": "\u2257" }, - "⨐": { "codepoints": [10768], "characters": "\u2A10" }, - "⫯": { "codepoints": [10991], "characters": "\u2AEF" }, - "⧂": { "codepoints": [10690], "characters": "\u29C2" }, - "∲": { "codepoints": [8754], "characters": "\u2232" }, - "”": { "codepoints": [8221], "characters": "\u201D" }, - "’": { "codepoints": [8217], "characters": "\u2019" }, - "♣": { "codepoints": [9827], "characters": "\u2663" }, - "♣": { "codepoints": [9827], "characters": "\u2663" }, - ":": { "codepoints": [58], "characters": "\u003A" }, - "∷": { "codepoints": [8759], "characters": "\u2237" }, - "⩴": { "codepoints": [10868], "characters": "\u2A74" }, - "≔": { "codepoints": [8788], "characters": "\u2254" }, - "≔": { "codepoints": [8788], "characters": "\u2254" }, - ",": { "codepoints": [44], "characters": "\u002C" }, - "@": { "codepoints": [64], "characters": "\u0040" }, - "∁": { "codepoints": [8705], "characters": "\u2201" }, - "∘": { "codepoints": [8728], "characters": "\u2218" }, - "∁": { "codepoints": [8705], "characters": "\u2201" }, - "ℂ": { "codepoints": [8450], "characters": "\u2102" }, - "≅": { "codepoints": [8773], "characters": "\u2245" }, - "⩭": { "codepoints": [10861], "characters": "\u2A6D" }, - "≡": { "codepoints": [8801], "characters": "\u2261" }, - "∮": { "codepoints": [8750], "characters": "\u222E" }, - "∯": { "codepoints": [8751], "characters": "\u222F" }, - "∮": { "codepoints": [8750], "characters": "\u222E" }, - "𝕔": { "codepoints": [120148], "characters": "\uD835\uDD54" }, - "ℂ": { "codepoints": [8450], "characters": "\u2102" }, - "∐": { "codepoints": [8720], "characters": "\u2210" }, - "∐": { "codepoints": [8720], "characters": "\u2210" }, - "©": { "codepoints": [169], "characters": "\u00A9" }, - "©": { "codepoints": [169], "characters": "\u00A9" }, - "©": { "codepoints": [169], "characters": "\u00A9" }, - "©": { "codepoints": [169], "characters": "\u00A9" }, - "℗": { "codepoints": [8471], "characters": "\u2117" }, - "∳": { "codepoints": [8755], "characters": "\u2233" }, - "↵": { "codepoints": [8629], "characters": "\u21B5" }, - "✗": { "codepoints": [10007], "characters": "\u2717" }, - "⨯": { "codepoints": [10799], "characters": "\u2A2F" }, - "𝒞": { "codepoints": [119966], "characters": "\uD835\uDC9E" }, - "𝒸": { "codepoints": [119992], "characters": "\uD835\uDCB8" }, - "⫏": { "codepoints": [10959], "characters": "\u2ACF" }, - "⫑": { "codepoints": [10961], "characters": "\u2AD1" }, - "⫐": { "codepoints": [10960], "characters": "\u2AD0" }, - "⫒": { "codepoints": [10962], "characters": "\u2AD2" }, - "⋯": { "codepoints": [8943], "characters": "\u22EF" }, - "⤸": { "codepoints": [10552], "characters": "\u2938" }, - "⤵": { "codepoints": [10549], "characters": "\u2935" }, - "⋞": { "codepoints": [8926], "characters": "\u22DE" }, - "⋟": { "codepoints": [8927], "characters": "\u22DF" }, - "↶": { "codepoints": [8630], "characters": "\u21B6" }, - "⤽": { "codepoints": [10557], "characters": "\u293D" }, - "⩈": { "codepoints": [10824], "characters": "\u2A48" }, - "⩆": { "codepoints": [10822], "characters": "\u2A46" }, - "≍": { "codepoints": [8781], "characters": "\u224D" }, - "∪": { "codepoints": [8746], "characters": "\u222A" }, - "⋓": { "codepoints": [8915], "characters": "\u22D3" }, - "⩊": { "codepoints": [10826], "characters": "\u2A4A" }, - "⊍": { "codepoints": [8845], "characters": "\u228D" }, - "⩅": { "codepoints": [10821], "characters": "\u2A45" }, - "∪︀": { "codepoints": [8746, 65024], "characters": "\u222A\uFE00" }, - "↷": { "codepoints": [8631], "characters": "\u21B7" }, - "⤼": { "codepoints": [10556], "characters": "\u293C" }, - "⋞": { "codepoints": [8926], "characters": "\u22DE" }, - "⋟": { "codepoints": [8927], "characters": "\u22DF" }, - "⋎": { "codepoints": [8910], "characters": "\u22CE" }, - "⋏": { "codepoints": [8911], "characters": "\u22CF" }, - "¤": { "codepoints": [164], "characters": "\u00A4" }, - "¤": { "codepoints": [164], "characters": "\u00A4" }, - "↶": { "codepoints": [8630], "characters": "\u21B6" }, - "↷": { "codepoints": [8631], "characters": "\u21B7" }, - "⋎": { "codepoints": [8910], "characters": "\u22CE" }, - "⋏": { "codepoints": [8911], "characters": "\u22CF" }, - "∲": { "codepoints": [8754], "characters": "\u2232" }, - "∱": { "codepoints": [8753], "characters": "\u2231" }, - "⌭": { "codepoints": [9005], "characters": "\u232D" }, - "†": { "codepoints": [8224], "characters": "\u2020" }, - "‡": { "codepoints": [8225], "characters": "\u2021" }, - "ℸ": { "codepoints": [8504], "characters": "\u2138" }, - "↓": { "codepoints": [8595], "characters": "\u2193" }, - "↡": { "codepoints": [8609], "characters": "\u21A1" }, - "⇓": { "codepoints": [8659], "characters": "\u21D3" }, - "‐": { "codepoints": [8208], "characters": "\u2010" }, - "⫤": { "codepoints": [10980], "characters": "\u2AE4" }, - "⊣": { "codepoints": [8867], "characters": "\u22A3" }, - "⤏": { "codepoints": [10511], "characters": "\u290F" }, - "˝": { "codepoints": [733], "characters": "\u02DD" }, - "Ď": { "codepoints": [270], "characters": "\u010E" }, - "ď": { "codepoints": [271], "characters": "\u010F" }, - "Д": { "codepoints": [1044], "characters": "\u0414" }, - "д": { "codepoints": [1076], "characters": "\u0434" }, - "‡": { "codepoints": [8225], "characters": "\u2021" }, - "⇊": { "codepoints": [8650], "characters": "\u21CA" }, - "ⅅ": { "codepoints": [8517], "characters": "\u2145" }, - "ⅆ": { "codepoints": [8518], "characters": "\u2146" }, - "⤑": { "codepoints": [10513], "characters": "\u2911" }, - "⩷": { "codepoints": [10871], "characters": "\u2A77" }, - "°": { "codepoints": [176], "characters": "\u00B0" }, - "°": { "codepoints": [176], "characters": "\u00B0" }, - "∇": { "codepoints": [8711], "characters": "\u2207" }, - "Δ": { "codepoints": [916], "characters": "\u0394" }, - "δ": { "codepoints": [948], "characters": "\u03B4" }, - "⦱": { "codepoints": [10673], "characters": "\u29B1" }, - "⥿": { "codepoints": [10623], "characters": "\u297F" }, - "𝔇": { "codepoints": [120071], "characters": "\uD835\uDD07" }, - "𝔡": { "codepoints": [120097], "characters": "\uD835\uDD21" }, - "⥥": { "codepoints": [10597], "characters": "\u2965" }, - "⇃": { "codepoints": [8643], "characters": "\u21C3" }, - "⇂": { "codepoints": [8642], "characters": "\u21C2" }, - "´": { "codepoints": [180], "characters": "\u00B4" }, - "˙": { "codepoints": [729], "characters": "\u02D9" }, - "˝": { "codepoints": [733], "characters": "\u02DD" }, - "`": { "codepoints": [96], "characters": "\u0060" }, - "˜": { "codepoints": [732], "characters": "\u02DC" }, - "⋄": { "codepoints": [8900], "characters": "\u22C4" }, - "⋄": { "codepoints": [8900], "characters": "\u22C4" }, - "⋄": { "codepoints": [8900], "characters": "\u22C4" }, - "♦": { "codepoints": [9830], "characters": "\u2666" }, - "♦": { "codepoints": [9830], "characters": "\u2666" }, - "¨": { "codepoints": [168], "characters": "\u00A8" }, - "ⅆ": { "codepoints": [8518], "characters": "\u2146" }, - "ϝ": { "codepoints": [989], "characters": "\u03DD" }, - "⋲": { "codepoints": [8946], "characters": "\u22F2" }, - "÷": { "codepoints": [247], "characters": "\u00F7" }, - "÷": { "codepoints": [247], "characters": "\u00F7" }, - "÷": { "codepoints": [247], "characters": "\u00F7" }, - "⋇": { "codepoints": [8903], "characters": "\u22C7" }, - "⋇": { "codepoints": [8903], "characters": "\u22C7" }, - "Ђ": { "codepoints": [1026], "characters": "\u0402" }, - "ђ": { "codepoints": [1106], "characters": "\u0452" }, - "⌞": { "codepoints": [8990], "characters": "\u231E" }, - "⌍": { "codepoints": [8973], "characters": "\u230D" }, - "$": { "codepoints": [36], "characters": "\u0024" }, - "𝔻": { "codepoints": [120123], "characters": "\uD835\uDD3B" }, - "𝕕": { "codepoints": [120149], "characters": "\uD835\uDD55" }, - "¨": { "codepoints": [168], "characters": "\u00A8" }, - "˙": { "codepoints": [729], "characters": "\u02D9" }, - "⃜": { "codepoints": [8412], "characters": "\u20DC" }, - "≐": { "codepoints": [8784], "characters": "\u2250" }, - "≑": { "codepoints": [8785], "characters": "\u2251" }, - "≐": { "codepoints": [8784], "characters": "\u2250" }, - "∸": { "codepoints": [8760], "characters": "\u2238" }, - "∔": { "codepoints": [8724], "characters": "\u2214" }, - "⊡": { "codepoints": [8865], "characters": "\u22A1" }, - "⌆": { "codepoints": [8966], "characters": "\u2306" }, - "∯": { "codepoints": [8751], "characters": "\u222F" }, - "¨": { "codepoints": [168], "characters": "\u00A8" }, - "⇓": { "codepoints": [8659], "characters": "\u21D3" }, - "⇐": { "codepoints": [8656], "characters": "\u21D0" }, - "⇔": { "codepoints": [8660], "characters": "\u21D4" }, - "⫤": { "codepoints": [10980], "characters": "\u2AE4" }, - "⟸": { "codepoints": [10232], "characters": "\u27F8" }, - "⟺": { "codepoints": [10234], "characters": "\u27FA" }, - "⟹": { "codepoints": [10233], "characters": "\u27F9" }, - "⇒": { "codepoints": [8658], "characters": "\u21D2" }, - "⊨": { "codepoints": [8872], "characters": "\u22A8" }, - "⇑": { "codepoints": [8657], "characters": "\u21D1" }, - "⇕": { "codepoints": [8661], "characters": "\u21D5" }, - "∥": { "codepoints": [8741], "characters": "\u2225" }, - "⤓": { "codepoints": [10515], "characters": "\u2913" }, - "↓": { "codepoints": [8595], "characters": "\u2193" }, - "↓": { "codepoints": [8595], "characters": "\u2193" }, - "⇓": { "codepoints": [8659], "characters": "\u21D3" }, - "⇵": { "codepoints": [8693], "characters": "\u21F5" }, - "̑": { "codepoints": [785], "characters": "\u0311" }, - "⇊": { "codepoints": [8650], "characters": "\u21CA" }, - "⇃": { "codepoints": [8643], "characters": "\u21C3" }, - "⇂": { "codepoints": [8642], "characters": "\u21C2" }, - "⥐": { "codepoints": [10576], "characters": "\u2950" }, - "⥞": { "codepoints": [10590], "characters": "\u295E" }, - "⥖": { "codepoints": [10582], "characters": "\u2956" }, - "↽": { "codepoints": [8637], "characters": "\u21BD" }, - "⥟": { "codepoints": [10591], "characters": "\u295F" }, - "⥗": { "codepoints": [10583], "characters": "\u2957" }, - "⇁": { "codepoints": [8641], "characters": "\u21C1" }, - "↧": { "codepoints": [8615], "characters": "\u21A7" }, - "⊤": { "codepoints": [8868], "characters": "\u22A4" }, - "⤐": { "codepoints": [10512], "characters": "\u2910" }, - "⌟": { "codepoints": [8991], "characters": "\u231F" }, - "⌌": { "codepoints": [8972], "characters": "\u230C" }, - "𝒟": { "codepoints": [119967], "characters": "\uD835\uDC9F" }, - "𝒹": { "codepoints": [119993], "characters": "\uD835\uDCB9" }, - "Ѕ": { "codepoints": [1029], "characters": "\u0405" }, - "ѕ": { "codepoints": [1109], "characters": "\u0455" }, - "⧶": { "codepoints": [10742], "characters": "\u29F6" }, - "Đ": { "codepoints": [272], "characters": "\u0110" }, - "đ": { "codepoints": [273], "characters": "\u0111" }, - "⋱": { "codepoints": [8945], "characters": "\u22F1" }, - "▿": { "codepoints": [9663], "characters": "\u25BF" }, - "▾": { "codepoints": [9662], "characters": "\u25BE" }, - "⇵": { "codepoints": [8693], "characters": "\u21F5" }, - "⥯": { "codepoints": [10607], "characters": "\u296F" }, - "⦦": { "codepoints": [10662], "characters": "\u29A6" }, - "Џ": { "codepoints": [1039], "characters": "\u040F" }, - "џ": { "codepoints": [1119], "characters": "\u045F" }, - "⟿": { "codepoints": [10239], "characters": "\u27FF" }, - "É": { "codepoints": [201], "characters": "\u00C9" }, - "É": { "codepoints": [201], "characters": "\u00C9" }, - "é": { "codepoints": [233], "characters": "\u00E9" }, - "é": { "codepoints": [233], "characters": "\u00E9" }, - "⩮": { "codepoints": [10862], "characters": "\u2A6E" }, - "Ě": { "codepoints": [282], "characters": "\u011A" }, - "ě": { "codepoints": [283], "characters": "\u011B" }, - "Ê": { "codepoints": [202], "characters": "\u00CA" }, - "Ê": { "codepoints": [202], "characters": "\u00CA" }, - "ê": { "codepoints": [234], "characters": "\u00EA" }, - "ê": { "codepoints": [234], "characters": "\u00EA" }, - "≖": { "codepoints": [8790], "characters": "\u2256" }, - "≕": { "codepoints": [8789], "characters": "\u2255" }, - "Э": { "codepoints": [1069], "characters": "\u042D" }, - "э": { "codepoints": [1101], "characters": "\u044D" }, - "⩷": { "codepoints": [10871], "characters": "\u2A77" }, - "Ė": { "codepoints": [278], "characters": "\u0116" }, - "ė": { "codepoints": [279], "characters": "\u0117" }, - "≑": { "codepoints": [8785], "characters": "\u2251" }, - "ⅇ": { "codepoints": [8519], "characters": "\u2147" }, - "≒": { "codepoints": [8786], "characters": "\u2252" }, - "𝔈": { "codepoints": [120072], "characters": "\uD835\uDD08" }, - "𝔢": { "codepoints": [120098], "characters": "\uD835\uDD22" }, - "⪚": { "codepoints": [10906], "characters": "\u2A9A" }, - "È": { "codepoints": [200], "characters": "\u00C8" }, - "È": { "codepoints": [200], "characters": "\u00C8" }, - "è": { "codepoints": [232], "characters": "\u00E8" }, - "è": { "codepoints": [232], "characters": "\u00E8" }, - "⪖": { "codepoints": [10902], "characters": "\u2A96" }, - "⪘": { "codepoints": [10904], "characters": "\u2A98" }, - "⪙": { "codepoints": [10905], "characters": "\u2A99" }, - "∈": { "codepoints": [8712], "characters": "\u2208" }, - "⏧": { "codepoints": [9191], "characters": "\u23E7" }, - "ℓ": { "codepoints": [8467], "characters": "\u2113" }, - "⪕": { "codepoints": [10901], "characters": "\u2A95" }, - "⪗": { "codepoints": [10903], "characters": "\u2A97" }, - "Ē": { "codepoints": [274], "characters": "\u0112" }, - "ē": { "codepoints": [275], "characters": "\u0113" }, - "∅": { "codepoints": [8709], "characters": "\u2205" }, - "∅": { "codepoints": [8709], "characters": "\u2205" }, - "◻": { "codepoints": [9723], "characters": "\u25FB" }, - "∅": { "codepoints": [8709], "characters": "\u2205" }, - "▫": { "codepoints": [9643], "characters": "\u25AB" }, - " ": { "codepoints": [8196], "characters": "\u2004" }, - " ": { "codepoints": [8197], "characters": "\u2005" }, - " ": { "codepoints": [8195], "characters": "\u2003" }, - "Ŋ": { "codepoints": [330], "characters": "\u014A" }, - "ŋ": { "codepoints": [331], "characters": "\u014B" }, - " ": { "codepoints": [8194], "characters": "\u2002" }, - "Ę": { "codepoints": [280], "characters": "\u0118" }, - "ę": { "codepoints": [281], "characters": "\u0119" }, - "𝔼": { "codepoints": [120124], "characters": "\uD835\uDD3C" }, - "𝕖": { "codepoints": [120150], "characters": "\uD835\uDD56" }, - "⋕": { "codepoints": [8917], "characters": "\u22D5" }, - "⧣": { "codepoints": [10723], "characters": "\u29E3" }, - "⩱": { "codepoints": [10865], "characters": "\u2A71" }, - "ε": { "codepoints": [949], "characters": "\u03B5" }, - "Ε": { "codepoints": [917], "characters": "\u0395" }, - "ε": { "codepoints": [949], "characters": "\u03B5" }, - "ϵ": { "codepoints": [1013], "characters": "\u03F5" }, - "≖": { "codepoints": [8790], "characters": "\u2256" }, - "≕": { "codepoints": [8789], "characters": "\u2255" }, - "≂": { "codepoints": [8770], "characters": "\u2242" }, - "⪖": { "codepoints": [10902], "characters": "\u2A96" }, - "⪕": { "codepoints": [10901], "characters": "\u2A95" }, - "⩵": { "codepoints": [10869], "characters": "\u2A75" }, - "=": { "codepoints": [61], "characters": "\u003D" }, - "≂": { "codepoints": [8770], "characters": "\u2242" }, - "≟": { "codepoints": [8799], "characters": "\u225F" }, - "⇌": { "codepoints": [8652], "characters": "\u21CC" }, - "≡": { "codepoints": [8801], "characters": "\u2261" }, - "⩸": { "codepoints": [10872], "characters": "\u2A78" }, - "⧥": { "codepoints": [10725], "characters": "\u29E5" }, - "⥱": { "codepoints": [10609], "characters": "\u2971" }, - "≓": { "codepoints": [8787], "characters": "\u2253" }, - "ℯ": { "codepoints": [8495], "characters": "\u212F" }, - "ℰ": { "codepoints": [8496], "characters": "\u2130" }, - "≐": { "codepoints": [8784], "characters": "\u2250" }, - "⩳": { "codepoints": [10867], "characters": "\u2A73" }, - "≂": { "codepoints": [8770], "characters": "\u2242" }, - "Η": { "codepoints": [919], "characters": "\u0397" }, - "η": { "codepoints": [951], "characters": "\u03B7" }, - "Ð": { "codepoints": [208], "characters": "\u00D0" }, - "Ð": { "codepoints": [208], "characters": "\u00D0" }, - "ð": { "codepoints": [240], "characters": "\u00F0" }, - "ð": { "codepoints": [240], "characters": "\u00F0" }, - "Ë": { "codepoints": [203], "characters": "\u00CB" }, - "Ë": { "codepoints": [203], "characters": "\u00CB" }, - "ë": { "codepoints": [235], "characters": "\u00EB" }, - "ë": { "codepoints": [235], "characters": "\u00EB" }, - "€": { "codepoints": [8364], "characters": "\u20AC" }, - "!": { "codepoints": [33], "characters": "\u0021" }, - "∃": { "codepoints": [8707], "characters": "\u2203" }, - "∃": { "codepoints": [8707], "characters": "\u2203" }, - "ℰ": { "codepoints": [8496], "characters": "\u2130" }, - "ⅇ": { "codepoints": [8519], "characters": "\u2147" }, - "ⅇ": { "codepoints": [8519], "characters": "\u2147" }, - "≒": { "codepoints": [8786], "characters": "\u2252" }, - "Ф": { "codepoints": [1060], "characters": "\u0424" }, - "ф": { "codepoints": [1092], "characters": "\u0444" }, - "♀": { "codepoints": [9792], "characters": "\u2640" }, - "ffi": { "codepoints": [64259], "characters": "\uFB03" }, - "ff": { "codepoints": [64256], "characters": "\uFB00" }, - "ffl": { "codepoints": [64260], "characters": "\uFB04" }, - "𝔉": { "codepoints": [120073], "characters": "\uD835\uDD09" }, - "𝔣": { "codepoints": [120099], "characters": "\uD835\uDD23" }, - "fi": { "codepoints": [64257], "characters": "\uFB01" }, - "◼": { "codepoints": [9724], "characters": "\u25FC" }, - "▪": { "codepoints": [9642], "characters": "\u25AA" }, - "fj": { "codepoints": [102, 106], "characters": "\u0066\u006A" }, - "♭": { "codepoints": [9837], "characters": "\u266D" }, - "fl": { "codepoints": [64258], "characters": "\uFB02" }, - "▱": { "codepoints": [9649], "characters": "\u25B1" }, - "ƒ": { "codepoints": [402], "characters": "\u0192" }, - "𝔽": { "codepoints": [120125], "characters": "\uD835\uDD3D" }, - "𝕗": { "codepoints": [120151], "characters": "\uD835\uDD57" }, - "∀": { "codepoints": [8704], "characters": "\u2200" }, - "∀": { "codepoints": [8704], "characters": "\u2200" }, - "⋔": { "codepoints": [8916], "characters": "\u22D4" }, - "⫙": { "codepoints": [10969], "characters": "\u2AD9" }, - "ℱ": { "codepoints": [8497], "characters": "\u2131" }, - "⨍": { "codepoints": [10765], "characters": "\u2A0D" }, - "½": { "codepoints": [189], "characters": "\u00BD" }, - "½": { "codepoints": [189], "characters": "\u00BD" }, - "⅓": { "codepoints": [8531], "characters": "\u2153" }, - "¼": { "codepoints": [188], "characters": "\u00BC" }, - "¼": { "codepoints": [188], "characters": "\u00BC" }, - "⅕": { "codepoints": [8533], "characters": "\u2155" }, - "⅙": { "codepoints": [8537], "characters": "\u2159" }, - "⅛": { "codepoints": [8539], "characters": "\u215B" }, - "⅔": { "codepoints": [8532], "characters": "\u2154" }, - "⅖": { "codepoints": [8534], "characters": "\u2156" }, - "¾": { "codepoints": [190], "characters": "\u00BE" }, - "¾": { "codepoints": [190], "characters": "\u00BE" }, - "⅗": { "codepoints": [8535], "characters": "\u2157" }, - "⅜": { "codepoints": [8540], "characters": "\u215C" }, - "⅘": { "codepoints": [8536], "characters": "\u2158" }, - "⅚": { "codepoints": [8538], "characters": "\u215A" }, - "⅝": { "codepoints": [8541], "characters": "\u215D" }, - "⅞": { "codepoints": [8542], "characters": "\u215E" }, - "⁄": { "codepoints": [8260], "characters": "\u2044" }, - "⌢": { "codepoints": [8994], "characters": "\u2322" }, - "𝒻": { "codepoints": [119995], "characters": "\uD835\uDCBB" }, - "ℱ": { "codepoints": [8497], "characters": "\u2131" }, - "ǵ": { "codepoints": [501], "characters": "\u01F5" }, - "Γ": { "codepoints": [915], "characters": "\u0393" }, - "γ": { "codepoints": [947], "characters": "\u03B3" }, - "Ϝ": { "codepoints": [988], "characters": "\u03DC" }, - "ϝ": { "codepoints": [989], "characters": "\u03DD" }, - "⪆": { "codepoints": [10886], "characters": "\u2A86" }, - "Ğ": { "codepoints": [286], "characters": "\u011E" }, - "ğ": { "codepoints": [287], "characters": "\u011F" }, - "Ģ": { "codepoints": [290], "characters": "\u0122" }, - "Ĝ": { "codepoints": [284], "characters": "\u011C" }, - "ĝ": { "codepoints": [285], "characters": "\u011D" }, - "Г": { "codepoints": [1043], "characters": "\u0413" }, - "г": { "codepoints": [1075], "characters": "\u0433" }, - "Ġ": { "codepoints": [288], "characters": "\u0120" }, - "ġ": { "codepoints": [289], "characters": "\u0121" }, - "≥": { "codepoints": [8805], "characters": "\u2265" }, - "≧": { "codepoints": [8807], "characters": "\u2267" }, - "⪌": { "codepoints": [10892], "characters": "\u2A8C" }, - "⋛": { "codepoints": [8923], "characters": "\u22DB" }, - "≥": { "codepoints": [8805], "characters": "\u2265" }, - "≧": { "codepoints": [8807], "characters": "\u2267" }, - "⩾": { "codepoints": [10878], "characters": "\u2A7E" }, - "⪩": { "codepoints": [10921], "characters": "\u2AA9" }, - "⩾": { "codepoints": [10878], "characters": "\u2A7E" }, - "⪀": { "codepoints": [10880], "characters": "\u2A80" }, - "⪂": { "codepoints": [10882], "characters": "\u2A82" }, - "⪄": { "codepoints": [10884], "characters": "\u2A84" }, - "⋛︀": { "codepoints": [8923, 65024], "characters": "\u22DB\uFE00" }, - "⪔": { "codepoints": [10900], "characters": "\u2A94" }, - "𝔊": { "codepoints": [120074], "characters": "\uD835\uDD0A" }, - "𝔤": { "codepoints": [120100], "characters": "\uD835\uDD24" }, - "≫": { "codepoints": [8811], "characters": "\u226B" }, - "⋙": { "codepoints": [8921], "characters": "\u22D9" }, - "⋙": { "codepoints": [8921], "characters": "\u22D9" }, - "ℷ": { "codepoints": [8503], "characters": "\u2137" }, - "Ѓ": { "codepoints": [1027], "characters": "\u0403" }, - "ѓ": { "codepoints": [1107], "characters": "\u0453" }, - "⪥": { "codepoints": [10917], "characters": "\u2AA5" }, - "≷": { "codepoints": [8823], "characters": "\u2277" }, - "⪒": { "codepoints": [10898], "characters": "\u2A92" }, - "⪤": { "codepoints": [10916], "characters": "\u2AA4" }, - "⪊": { "codepoints": [10890], "characters": "\u2A8A" }, - "⪊": { "codepoints": [10890], "characters": "\u2A8A" }, - "⪈": { "codepoints": [10888], "characters": "\u2A88" }, - "≩": { "codepoints": [8809], "characters": "\u2269" }, - "⪈": { "codepoints": [10888], "characters": "\u2A88" }, - "≩": { "codepoints": [8809], "characters": "\u2269" }, - "⋧": { "codepoints": [8935], "characters": "\u22E7" }, - "𝔾": { "codepoints": [120126], "characters": "\uD835\uDD3E" }, - "𝕘": { "codepoints": [120152], "characters": "\uD835\uDD58" }, - "`": { "codepoints": [96], "characters": "\u0060" }, - "≥": { "codepoints": [8805], "characters": "\u2265" }, - "⋛": { "codepoints": [8923], "characters": "\u22DB" }, - "≧": { "codepoints": [8807], "characters": "\u2267" }, - "⪢": { "codepoints": [10914], "characters": "\u2AA2" }, - "≷": { "codepoints": [8823], "characters": "\u2277" }, - "⩾": { "codepoints": [10878], "characters": "\u2A7E" }, - "≳": { "codepoints": [8819], "characters": "\u2273" }, - "𝒢": { "codepoints": [119970], "characters": "\uD835\uDCA2" }, - "ℊ": { "codepoints": [8458], "characters": "\u210A" }, - "≳": { "codepoints": [8819], "characters": "\u2273" }, - "⪎": { "codepoints": [10894], "characters": "\u2A8E" }, - "⪐": { "codepoints": [10896], "characters": "\u2A90" }, - "⪧": { "codepoints": [10919], "characters": "\u2AA7" }, - "⩺": { "codepoints": [10874], "characters": "\u2A7A" }, - ">": { "codepoints": [62], "characters": "\u003E" }, - ">": { "codepoints": [62], "characters": "\u003E" }, - ">": { "codepoints": [62], "characters": "\u003E" }, - ">": { "codepoints": [62], "characters": "\u003E" }, - "≫": { "codepoints": [8811], "characters": "\u226B" }, - "⋗": { "codepoints": [8919], "characters": "\u22D7" }, - "⦕": { "codepoints": [10645], "characters": "\u2995" }, - "⩼": { "codepoints": [10876], "characters": "\u2A7C" }, - "⪆": { "codepoints": [10886], "characters": "\u2A86" }, - "⥸": { "codepoints": [10616], "characters": "\u2978" }, - "⋗": { "codepoints": [8919], "characters": "\u22D7" }, - "⋛": { "codepoints": [8923], "characters": "\u22DB" }, - "⪌": { "codepoints": [10892], "characters": "\u2A8C" }, - "≷": { "codepoints": [8823], "characters": "\u2277" }, - "≳": { "codepoints": [8819], "characters": "\u2273" }, - "≩︀": { "codepoints": [8809, 65024], "characters": "\u2269\uFE00" }, - "≩︀": { "codepoints": [8809, 65024], "characters": "\u2269\uFE00" }, - "ˇ": { "codepoints": [711], "characters": "\u02C7" }, - " ": { "codepoints": [8202], "characters": "\u200A" }, - "½": { "codepoints": [189], "characters": "\u00BD" }, - "ℋ": { "codepoints": [8459], "characters": "\u210B" }, - "Ъ": { "codepoints": [1066], "characters": "\u042A" }, - "ъ": { "codepoints": [1098], "characters": "\u044A" }, - "⥈": { "codepoints": [10568], "characters": "\u2948" }, - "↔": { "codepoints": [8596], "characters": "\u2194" }, - "⇔": { "codepoints": [8660], "characters": "\u21D4" }, - "↭": { "codepoints": [8621], "characters": "\u21AD" }, - "^": { "codepoints": [94], "characters": "\u005E" }, - "ℏ": { "codepoints": [8463], "characters": "\u210F" }, - "Ĥ": { "codepoints": [292], "characters": "\u0124" }, - "ĥ": { "codepoints": [293], "characters": "\u0125" }, - "♥": { "codepoints": [9829], "characters": "\u2665" }, - "♥": { "codepoints": [9829], "characters": "\u2665" }, - "…": { "codepoints": [8230], "characters": "\u2026" }, - "⊹": { "codepoints": [8889], "characters": "\u22B9" }, - "𝔥": { "codepoints": [120101], "characters": "\uD835\uDD25" }, - "ℌ": { "codepoints": [8460], "characters": "\u210C" }, - "ℋ": { "codepoints": [8459], "characters": "\u210B" }, - "⤥": { "codepoints": [10533], "characters": "\u2925" }, - "⤦": { "codepoints": [10534], "characters": "\u2926" }, - "⇿": { "codepoints": [8703], "characters": "\u21FF" }, - "∻": { "codepoints": [8763], "characters": "\u223B" }, - "↩": { "codepoints": [8617], "characters": "\u21A9" }, - "↪": { "codepoints": [8618], "characters": "\u21AA" }, - "𝕙": { "codepoints": [120153], "characters": "\uD835\uDD59" }, - "ℍ": { "codepoints": [8461], "characters": "\u210D" }, - "―": { "codepoints": [8213], "characters": "\u2015" }, - "─": { "codepoints": [9472], "characters": "\u2500" }, - "𝒽": { "codepoints": [119997], "characters": "\uD835\uDCBD" }, - "ℋ": { "codepoints": [8459], "characters": "\u210B" }, - "ℏ": { "codepoints": [8463], "characters": "\u210F" }, - "Ħ": { "codepoints": [294], "characters": "\u0126" }, - "ħ": { "codepoints": [295], "characters": "\u0127" }, - "≎": { "codepoints": [8782], "characters": "\u224E" }, - "≏": { "codepoints": [8783], "characters": "\u224F" }, - "⁃": { "codepoints": [8259], "characters": "\u2043" }, - "‐": { "codepoints": [8208], "characters": "\u2010" }, - "Í": { "codepoints": [205], "characters": "\u00CD" }, - "Í": { "codepoints": [205], "characters": "\u00CD" }, - "í": { "codepoints": [237], "characters": "\u00ED" }, - "í": { "codepoints": [237], "characters": "\u00ED" }, - "⁣": { "codepoints": [8291], "characters": "\u2063" }, - "Î": { "codepoints": [206], "characters": "\u00CE" }, - "Î": { "codepoints": [206], "characters": "\u00CE" }, - "î": { "codepoints": [238], "characters": "\u00EE" }, - "î": { "codepoints": [238], "characters": "\u00EE" }, - "И": { "codepoints": [1048], "characters": "\u0418" }, - "и": { "codepoints": [1080], "characters": "\u0438" }, - "İ": { "codepoints": [304], "characters": "\u0130" }, - "Е": { "codepoints": [1045], "characters": "\u0415" }, - "е": { "codepoints": [1077], "characters": "\u0435" }, - "¡": { "codepoints": [161], "characters": "\u00A1" }, - "¡": { "codepoints": [161], "characters": "\u00A1" }, - "⇔": { "codepoints": [8660], "characters": "\u21D4" }, - "𝔦": { "codepoints": [120102], "characters": "\uD835\uDD26" }, - "ℑ": { "codepoints": [8465], "characters": "\u2111" }, - "Ì": { "codepoints": [204], "characters": "\u00CC" }, - "Ì": { "codepoints": [204], "characters": "\u00CC" }, - "ì": { "codepoints": [236], "characters": "\u00EC" }, - "ì": { "codepoints": [236], "characters": "\u00EC" }, - "ⅈ": { "codepoints": [8520], "characters": "\u2148" }, - "⨌": { "codepoints": [10764], "characters": "\u2A0C" }, - "∭": { "codepoints": [8749], "characters": "\u222D" }, - "⧜": { "codepoints": [10716], "characters": "\u29DC" }, - "℩": { "codepoints": [8489], "characters": "\u2129" }, - "IJ": { "codepoints": [306], "characters": "\u0132" }, - "ij": { "codepoints": [307], "characters": "\u0133" }, - "Ī": { "codepoints": [298], "characters": "\u012A" }, - "ī": { "codepoints": [299], "characters": "\u012B" }, - "ℑ": { "codepoints": [8465], "characters": "\u2111" }, - "ⅈ": { "codepoints": [8520], "characters": "\u2148" }, - "ℐ": { "codepoints": [8464], "characters": "\u2110" }, - "ℑ": { "codepoints": [8465], "characters": "\u2111" }, - "ı": { "codepoints": [305], "characters": "\u0131" }, - "ℑ": { "codepoints": [8465], "characters": "\u2111" }, - "⊷": { "codepoints": [8887], "characters": "\u22B7" }, - "Ƶ": { "codepoints": [437], "characters": "\u01B5" }, - "⇒": { "codepoints": [8658], "characters": "\u21D2" }, - "℅": { "codepoints": [8453], "characters": "\u2105" }, - "∈": { "codepoints": [8712], "characters": "\u2208" }, - "∞": { "codepoints": [8734], "characters": "\u221E" }, - "⧝": { "codepoints": [10717], "characters": "\u29DD" }, - "ı": { "codepoints": [305], "characters": "\u0131" }, - "⊺": { "codepoints": [8890], "characters": "\u22BA" }, - "∫": { "codepoints": [8747], "characters": "\u222B" }, - "∬": { "codepoints": [8748], "characters": "\u222C" }, - "ℤ": { "codepoints": [8484], "characters": "\u2124" }, - "∫": { "codepoints": [8747], "characters": "\u222B" }, - "⊺": { "codepoints": [8890], "characters": "\u22BA" }, - "⋂": { "codepoints": [8898], "characters": "\u22C2" }, - "⨗": { "codepoints": [10775], "characters": "\u2A17" }, - "⨼": { "codepoints": [10812], "characters": "\u2A3C" }, - "⁣": { "codepoints": [8291], "characters": "\u2063" }, - "⁢": { "codepoints": [8290], "characters": "\u2062" }, - "Ё": { "codepoints": [1025], "characters": "\u0401" }, - "ё": { "codepoints": [1105], "characters": "\u0451" }, - "Į": { "codepoints": [302], "characters": "\u012E" }, - "į": { "codepoints": [303], "characters": "\u012F" }, - "𝕀": { "codepoints": [120128], "characters": "\uD835\uDD40" }, - "𝕚": { "codepoints": [120154], "characters": "\uD835\uDD5A" }, - "Ι": { "codepoints": [921], "characters": "\u0399" }, - "ι": { "codepoints": [953], "characters": "\u03B9" }, - "⨼": { "codepoints": [10812], "characters": "\u2A3C" }, - "¿": { "codepoints": [191], "characters": "\u00BF" }, - "¿": { "codepoints": [191], "characters": "\u00BF" }, - "𝒾": { "codepoints": [119998], "characters": "\uD835\uDCBE" }, - "ℐ": { "codepoints": [8464], "characters": "\u2110" }, - "∈": { "codepoints": [8712], "characters": "\u2208" }, - "⋵": { "codepoints": [8949], "characters": "\u22F5" }, - "⋹": { "codepoints": [8953], "characters": "\u22F9" }, - "⋴": { "codepoints": [8948], "characters": "\u22F4" }, - "⋳": { "codepoints": [8947], "characters": "\u22F3" }, - "∈": { "codepoints": [8712], "characters": "\u2208" }, - "⁢": { "codepoints": [8290], "characters": "\u2062" }, - "Ĩ": { "codepoints": [296], "characters": "\u0128" }, - "ĩ": { "codepoints": [297], "characters": "\u0129" }, - "І": { "codepoints": [1030], "characters": "\u0406" }, - "і": { "codepoints": [1110], "characters": "\u0456" }, - "Ï": { "codepoints": [207], "characters": "\u00CF" }, - "Ï": { "codepoints": [207], "characters": "\u00CF" }, - "ï": { "codepoints": [239], "characters": "\u00EF" }, - "ï": { "codepoints": [239], "characters": "\u00EF" }, - "Ĵ": { "codepoints": [308], "characters": "\u0134" }, - "ĵ": { "codepoints": [309], "characters": "\u0135" }, - "Й": { "codepoints": [1049], "characters": "\u0419" }, - "й": { "codepoints": [1081], "characters": "\u0439" }, - "𝔍": { "codepoints": [120077], "characters": "\uD835\uDD0D" }, - "𝔧": { "codepoints": [120103], "characters": "\uD835\uDD27" }, - "ȷ": { "codepoints": [567], "characters": "\u0237" }, - "𝕁": { "codepoints": [120129], "characters": "\uD835\uDD41" }, - "𝕛": { "codepoints": [120155], "characters": "\uD835\uDD5B" }, - "𝒥": { "codepoints": [119973], "characters": "\uD835\uDCA5" }, - "𝒿": { "codepoints": [119999], "characters": "\uD835\uDCBF" }, - "Ј": { "codepoints": [1032], "characters": "\u0408" }, - "ј": { "codepoints": [1112], "characters": "\u0458" }, - "Є": { "codepoints": [1028], "characters": "\u0404" }, - "є": { "codepoints": [1108], "characters": "\u0454" }, - "Κ": { "codepoints": [922], "characters": "\u039A" }, - "κ": { "codepoints": [954], "characters": "\u03BA" }, - "ϰ": { "codepoints": [1008], "characters": "\u03F0" }, - "Ķ": { "codepoints": [310], "characters": "\u0136" }, - "ķ": { "codepoints": [311], "characters": "\u0137" }, - "К": { "codepoints": [1050], "characters": "\u041A" }, - "к": { "codepoints": [1082], "characters": "\u043A" }, - "𝔎": { "codepoints": [120078], "characters": "\uD835\uDD0E" }, - "𝔨": { "codepoints": [120104], "characters": "\uD835\uDD28" }, - "ĸ": { "codepoints": [312], "characters": "\u0138" }, - "Х": { "codepoints": [1061], "characters": "\u0425" }, - "х": { "codepoints": [1093], "characters": "\u0445" }, - "Ќ": { "codepoints": [1036], "characters": "\u040C" }, - "ќ": { "codepoints": [1116], "characters": "\u045C" }, - "𝕂": { "codepoints": [120130], "characters": "\uD835\uDD42" }, - "𝕜": { "codepoints": [120156], "characters": "\uD835\uDD5C" }, - "𝒦": { "codepoints": [119974], "characters": "\uD835\uDCA6" }, - "𝓀": { "codepoints": [120000], "characters": "\uD835\uDCC0" }, - "⇚": { "codepoints": [8666], "characters": "\u21DA" }, - "Ĺ": { "codepoints": [313], "characters": "\u0139" }, - "ĺ": { "codepoints": [314], "characters": "\u013A" }, - "⦴": { "codepoints": [10676], "characters": "\u29B4" }, - "ℒ": { "codepoints": [8466], "characters": "\u2112" }, - "Λ": { "codepoints": [923], "characters": "\u039B" }, - "λ": { "codepoints": [955], "characters": "\u03BB" }, - "⟨": { "codepoints": [10216], "characters": "\u27E8" }, - "⟪": { "codepoints": [10218], "characters": "\u27EA" }, - "⦑": { "codepoints": [10641], "characters": "\u2991" }, - "⟨": { "codepoints": [10216], "characters": "\u27E8" }, - "⪅": { "codepoints": [10885], "characters": "\u2A85" }, - "ℒ": { "codepoints": [8466], "characters": "\u2112" }, - "«": { "codepoints": [171], "characters": "\u00AB" }, - "«": { "codepoints": [171], "characters": "\u00AB" }, - "⇤": { "codepoints": [8676], "characters": "\u21E4" }, - "⤟": { "codepoints": [10527], "characters": "\u291F" }, - "←": { "codepoints": [8592], "characters": "\u2190" }, - "↞": { "codepoints": [8606], "characters": "\u219E" }, - "⇐": { "codepoints": [8656], "characters": "\u21D0" }, - "⤝": { "codepoints": [10525], "characters": "\u291D" }, - "↩": { "codepoints": [8617], "characters": "\u21A9" }, - "↫": { "codepoints": [8619], "characters": "\u21AB" }, - "⤹": { "codepoints": [10553], "characters": "\u2939" }, - "⥳": { "codepoints": [10611], "characters": "\u2973" }, - "↢": { "codepoints": [8610], "characters": "\u21A2" }, - "⤙": { "codepoints": [10521], "characters": "\u2919" }, - "⤛": { "codepoints": [10523], "characters": "\u291B" }, - "⪫": { "codepoints": [10923], "characters": "\u2AAB" }, - "⪭": { "codepoints": [10925], "characters": "\u2AAD" }, - "⪭︀": { "codepoints": [10925, 65024], "characters": "\u2AAD\uFE00" }, - "⤌": { "codepoints": [10508], "characters": "\u290C" }, - "⤎": { "codepoints": [10510], "characters": "\u290E" }, - "❲": { "codepoints": [10098], "characters": "\u2772" }, - "{": { "codepoints": [123], "characters": "\u007B" }, - "[": { "codepoints": [91], "characters": "\u005B" }, - "⦋": { "codepoints": [10635], "characters": "\u298B" }, - "⦏": { "codepoints": [10639], "characters": "\u298F" }, - "⦍": { "codepoints": [10637], "characters": "\u298D" }, - "Ľ": { "codepoints": [317], "characters": "\u013D" }, - "ľ": { "codepoints": [318], "characters": "\u013E" }, - "Ļ": { "codepoints": [315], "characters": "\u013B" }, - "ļ": { "codepoints": [316], "characters": "\u013C" }, - "⌈": { "codepoints": [8968], "characters": "\u2308" }, - "{": { "codepoints": [123], "characters": "\u007B" }, - "Л": { "codepoints": [1051], "characters": "\u041B" }, - "л": { "codepoints": [1083], "characters": "\u043B" }, - "⤶": { "codepoints": [10550], "characters": "\u2936" }, - "“": { "codepoints": [8220], "characters": "\u201C" }, - "„": { "codepoints": [8222], "characters": "\u201E" }, - "⥧": { "codepoints": [10599], "characters": "\u2967" }, - "⥋": { "codepoints": [10571], "characters": "\u294B" }, - "↲": { "codepoints": [8626], "characters": "\u21B2" }, - "≤": { "codepoints": [8804], "characters": "\u2264" }, - "≦": { "codepoints": [8806], "characters": "\u2266" }, - "⟨": { "codepoints": [10216], "characters": "\u27E8" }, - "⇤": { "codepoints": [8676], "characters": "\u21E4" }, - "←": { "codepoints": [8592], "characters": "\u2190" }, - "←": { "codepoints": [8592], "characters": "\u2190" }, - "⇐": { "codepoints": [8656], "characters": "\u21D0" }, - "⇆": { "codepoints": [8646], "characters": "\u21C6" }, - "↢": { "codepoints": [8610], "characters": "\u21A2" }, - "⌈": { "codepoints": [8968], "characters": "\u2308" }, - "⟦": { "codepoints": [10214], "characters": "\u27E6" }, - "⥡": { "codepoints": [10593], "characters": "\u2961" }, - "⥙": { "codepoints": [10585], "characters": "\u2959" }, - "⇃": { "codepoints": [8643], "characters": "\u21C3" }, - "⌊": { "codepoints": [8970], "characters": "\u230A" }, - "↽": { "codepoints": [8637], "characters": "\u21BD" }, - "↼": { "codepoints": [8636], "characters": "\u21BC" }, - "⇇": { "codepoints": [8647], "characters": "\u21C7" }, - "↔": { "codepoints": [8596], "characters": "\u2194" }, - "↔": { "codepoints": [8596], "characters": "\u2194" }, - "⇔": { "codepoints": [8660], "characters": "\u21D4" }, - "⇆": { "codepoints": [8646], "characters": "\u21C6" }, - "⇋": { "codepoints": [8651], "characters": "\u21CB" }, - "↭": { "codepoints": [8621], "characters": "\u21AD" }, - "⥎": { "codepoints": [10574], "characters": "\u294E" }, - "↤": { "codepoints": [8612], "characters": "\u21A4" }, - "⊣": { "codepoints": [8867], "characters": "\u22A3" }, - "⥚": { "codepoints": [10586], "characters": "\u295A" }, - "⋋": { "codepoints": [8907], "characters": "\u22CB" }, - "⧏": { "codepoints": [10703], "characters": "\u29CF" }, - "⊲": { "codepoints": [8882], "characters": "\u22B2" }, - "⊴": { "codepoints": [8884], "characters": "\u22B4" }, - "⥑": { "codepoints": [10577], "characters": "\u2951" }, - "⥠": { "codepoints": [10592], "characters": "\u2960" }, - "⥘": { "codepoints": [10584], "characters": "\u2958" }, - "↿": { "codepoints": [8639], "characters": "\u21BF" }, - "⥒": { "codepoints": [10578], "characters": "\u2952" }, - "↼": { "codepoints": [8636], "characters": "\u21BC" }, - "⪋": { "codepoints": [10891], "characters": "\u2A8B" }, - "⋚": { "codepoints": [8922], "characters": "\u22DA" }, - "≤": { "codepoints": [8804], "characters": "\u2264" }, - "≦": { "codepoints": [8806], "characters": "\u2266" }, - "⩽": { "codepoints": [10877], "characters": "\u2A7D" }, - "⪨": { "codepoints": [10920], "characters": "\u2AA8" }, - "⩽": { "codepoints": [10877], "characters": "\u2A7D" }, - "⩿": { "codepoints": [10879], "characters": "\u2A7F" }, - "⪁": { "codepoints": [10881], "characters": "\u2A81" }, - "⪃": { "codepoints": [10883], "characters": "\u2A83" }, - "⋚︀": { "codepoints": [8922, 65024], "characters": "\u22DA\uFE00" }, - "⪓": { "codepoints": [10899], "characters": "\u2A93" }, - "⪅": { "codepoints": [10885], "characters": "\u2A85" }, - "⋖": { "codepoints": [8918], "characters": "\u22D6" }, - "⋚": { "codepoints": [8922], "characters": "\u22DA" }, - "⪋": { "codepoints": [10891], "characters": "\u2A8B" }, - "⋚": { "codepoints": [8922], "characters": "\u22DA" }, - "≦": { "codepoints": [8806], "characters": "\u2266" }, - "≶": { "codepoints": [8822], "characters": "\u2276" }, - "≶": { "codepoints": [8822], "characters": "\u2276" }, - "⪡": { "codepoints": [10913], "characters": "\u2AA1" }, - "≲": { "codepoints": [8818], "characters": "\u2272" }, - "⩽": { "codepoints": [10877], "characters": "\u2A7D" }, - "≲": { "codepoints": [8818], "characters": "\u2272" }, - "⥼": { "codepoints": [10620], "characters": "\u297C" }, - "⌊": { "codepoints": [8970], "characters": "\u230A" }, - "𝔏": { "codepoints": [120079], "characters": "\uD835\uDD0F" }, - "𝔩": { "codepoints": [120105], "characters": "\uD835\uDD29" }, - "≶": { "codepoints": [8822], "characters": "\u2276" }, - "⪑": { "codepoints": [10897], "characters": "\u2A91" }, - "⥢": { "codepoints": [10594], "characters": "\u2962" }, - "↽": { "codepoints": [8637], "characters": "\u21BD" }, - "↼": { "codepoints": [8636], "characters": "\u21BC" }, - "⥪": { "codepoints": [10602], "characters": "\u296A" }, - "▄": { "codepoints": [9604], "characters": "\u2584" }, - "Љ": { "codepoints": [1033], "characters": "\u0409" }, - "љ": { "codepoints": [1113], "characters": "\u0459" }, - "⇇": { "codepoints": [8647], "characters": "\u21C7" }, - "≪": { "codepoints": [8810], "characters": "\u226A" }, - "⋘": { "codepoints": [8920], "characters": "\u22D8" }, - "⌞": { "codepoints": [8990], "characters": "\u231E" }, - "⇚": { "codepoints": [8666], "characters": "\u21DA" }, - "⥫": { "codepoints": [10603], "characters": "\u296B" }, - "◺": { "codepoints": [9722], "characters": "\u25FA" }, - "Ŀ": { "codepoints": [319], "characters": "\u013F" }, - "ŀ": { "codepoints": [320], "characters": "\u0140" }, - "⎰": { "codepoints": [9136], "characters": "\u23B0" }, - "⎰": { "codepoints": [9136], "characters": "\u23B0" }, - "⪉": { "codepoints": [10889], "characters": "\u2A89" }, - "⪉": { "codepoints": [10889], "characters": "\u2A89" }, - "⪇": { "codepoints": [10887], "characters": "\u2A87" }, - "≨": { "codepoints": [8808], "characters": "\u2268" }, - "⪇": { "codepoints": [10887], "characters": "\u2A87" }, - "≨": { "codepoints": [8808], "characters": "\u2268" }, - "⋦": { "codepoints": [8934], "characters": "\u22E6" }, - "⟬": { "codepoints": [10220], "characters": "\u27EC" }, - "⇽": { "codepoints": [8701], "characters": "\u21FD" }, - "⟦": { "codepoints": [10214], "characters": "\u27E6" }, - "⟵": { "codepoints": [10229], "characters": "\u27F5" }, - "⟵": { "codepoints": [10229], "characters": "\u27F5" }, - "⟸": { "codepoints": [10232], "characters": "\u27F8" }, - "⟷": { "codepoints": [10231], "characters": "\u27F7" }, - "⟷": { "codepoints": [10231], "characters": "\u27F7" }, - "⟺": { "codepoints": [10234], "characters": "\u27FA" }, - "⟼": { "codepoints": [10236], "characters": "\u27FC" }, - "⟶": { "codepoints": [10230], "characters": "\u27F6" }, - "⟶": { "codepoints": [10230], "characters": "\u27F6" }, - "⟹": { "codepoints": [10233], "characters": "\u27F9" }, - "↫": { "codepoints": [8619], "characters": "\u21AB" }, - "↬": { "codepoints": [8620], "characters": "\u21AC" }, - "⦅": { "codepoints": [10629], "characters": "\u2985" }, - "𝕃": { "codepoints": [120131], "characters": "\uD835\uDD43" }, - "𝕝": { "codepoints": [120157], "characters": "\uD835\uDD5D" }, - "⨭": { "codepoints": [10797], "characters": "\u2A2D" }, - "⨴": { "codepoints": [10804], "characters": "\u2A34" }, - "∗": { "codepoints": [8727], "characters": "\u2217" }, - "_": { "codepoints": [95], "characters": "\u005F" }, - "↙": { "codepoints": [8601], "characters": "\u2199" }, - "↘": { "codepoints": [8600], "characters": "\u2198" }, - "◊": { "codepoints": [9674], "characters": "\u25CA" }, - "◊": { "codepoints": [9674], "characters": "\u25CA" }, - "⧫": { "codepoints": [10731], "characters": "\u29EB" }, - "(": { "codepoints": [40], "characters": "\u0028" }, - "⦓": { "codepoints": [10643], "characters": "\u2993" }, - "⇆": { "codepoints": [8646], "characters": "\u21C6" }, - "⌟": { "codepoints": [8991], "characters": "\u231F" }, - "⇋": { "codepoints": [8651], "characters": "\u21CB" }, - "⥭": { "codepoints": [10605], "characters": "\u296D" }, - "‎": { "codepoints": [8206], "characters": "\u200E" }, - "⊿": { "codepoints": [8895], "characters": "\u22BF" }, - "‹": { "codepoints": [8249], "characters": "\u2039" }, - "𝓁": { "codepoints": [120001], "characters": "\uD835\uDCC1" }, - "ℒ": { "codepoints": [8466], "characters": "\u2112" }, - "↰": { "codepoints": [8624], "characters": "\u21B0" }, - "↰": { "codepoints": [8624], "characters": "\u21B0" }, - "≲": { "codepoints": [8818], "characters": "\u2272" }, - "⪍": { "codepoints": [10893], "characters": "\u2A8D" }, - "⪏": { "codepoints": [10895], "characters": "\u2A8F" }, - "[": { "codepoints": [91], "characters": "\u005B" }, - "‘": { "codepoints": [8216], "characters": "\u2018" }, - "‚": { "codepoints": [8218], "characters": "\u201A" }, - "Ł": { "codepoints": [321], "characters": "\u0141" }, - "ł": { "codepoints": [322], "characters": "\u0142" }, - "⪦": { "codepoints": [10918], "characters": "\u2AA6" }, - "⩹": { "codepoints": [10873], "characters": "\u2A79" }, - "<": { "codepoints": [60], "characters": "\u003C" }, - "<": { "codepoints": [60], "characters": "\u003C" }, - "<": { "codepoints": [60], "characters": "\u003C" }, - "<": { "codepoints": [60], "characters": "\u003C" }, - "≪": { "codepoints": [8810], "characters": "\u226A" }, - "⋖": { "codepoints": [8918], "characters": "\u22D6" }, - "⋋": { "codepoints": [8907], "characters": "\u22CB" }, - "⋉": { "codepoints": [8905], "characters": "\u22C9" }, - "⥶": { "codepoints": [10614], "characters": "\u2976" }, - "⩻": { "codepoints": [10875], "characters": "\u2A7B" }, - "◃": { "codepoints": [9667], "characters": "\u25C3" }, - "⊴": { "codepoints": [8884], "characters": "\u22B4" }, - "◂": { "codepoints": [9666], "characters": "\u25C2" }, - "⦖": { "codepoints": [10646], "characters": "\u2996" }, - "⥊": { "codepoints": [10570], "characters": "\u294A" }, - "⥦": { "codepoints": [10598], "characters": "\u2966" }, - "≨︀": { "codepoints": [8808, 65024], "characters": "\u2268\uFE00" }, - "≨︀": { "codepoints": [8808, 65024], "characters": "\u2268\uFE00" }, - "¯": { "codepoints": [175], "characters": "\u00AF" }, - "¯": { "codepoints": [175], "characters": "\u00AF" }, - "♂": { "codepoints": [9794], "characters": "\u2642" }, - "✠": { "codepoints": [10016], "characters": "\u2720" }, - "✠": { "codepoints": [10016], "characters": "\u2720" }, - "⤅": { "codepoints": [10501], "characters": "\u2905" }, - "↦": { "codepoints": [8614], "characters": "\u21A6" }, - "↦": { "codepoints": [8614], "characters": "\u21A6" }, - "↧": { "codepoints": [8615], "characters": "\u21A7" }, - "↤": { "codepoints": [8612], "characters": "\u21A4" }, - "↥": { "codepoints": [8613], "characters": "\u21A5" }, - "▮": { "codepoints": [9646], "characters": "\u25AE" }, - "⨩": { "codepoints": [10793], "characters": "\u2A29" }, - "М": { "codepoints": [1052], "characters": "\u041C" }, - "м": { "codepoints": [1084], "characters": "\u043C" }, - "—": { "codepoints": [8212], "characters": "\u2014" }, - "∺": { "codepoints": [8762], "characters": "\u223A" }, - "∡": { "codepoints": [8737], "characters": "\u2221" }, - " ": { "codepoints": [8287], "characters": "\u205F" }, - "ℳ": { "codepoints": [8499], "characters": "\u2133" }, - "𝔐": { "codepoints": [120080], "characters": "\uD835\uDD10" }, - "𝔪": { "codepoints": [120106], "characters": "\uD835\uDD2A" }, - "℧": { "codepoints": [8487], "characters": "\u2127" }, - "µ": { "codepoints": [181], "characters": "\u00B5" }, - "µ": { "codepoints": [181], "characters": "\u00B5" }, - "*": { "codepoints": [42], "characters": "\u002A" }, - "⫰": { "codepoints": [10992], "characters": "\u2AF0" }, - "∣": { "codepoints": [8739], "characters": "\u2223" }, - "·": { "codepoints": [183], "characters": "\u00B7" }, - "·": { "codepoints": [183], "characters": "\u00B7" }, - "⊟": { "codepoints": [8863], "characters": "\u229F" }, - "−": { "codepoints": [8722], "characters": "\u2212" }, - "∸": { "codepoints": [8760], "characters": "\u2238" }, - "⨪": { "codepoints": [10794], "characters": "\u2A2A" }, - "∓": { "codepoints": [8723], "characters": "\u2213" }, - "⫛": { "codepoints": [10971], "characters": "\u2ADB" }, - "…": { "codepoints": [8230], "characters": "\u2026" }, - "∓": { "codepoints": [8723], "characters": "\u2213" }, - "⊧": { "codepoints": [8871], "characters": "\u22A7" }, - "𝕄": { "codepoints": [120132], "characters": "\uD835\uDD44" }, - "𝕞": { "codepoints": [120158], "characters": "\uD835\uDD5E" }, - "∓": { "codepoints": [8723], "characters": "\u2213" }, - "𝓂": { "codepoints": [120002], "characters": "\uD835\uDCC2" }, - "ℳ": { "codepoints": [8499], "characters": "\u2133" }, - "∾": { "codepoints": [8766], "characters": "\u223E" }, - "Μ": { "codepoints": [924], "characters": "\u039C" }, - "μ": { "codepoints": [956], "characters": "\u03BC" }, - "⊸": { "codepoints": [8888], "characters": "\u22B8" }, - "⊸": { "codepoints": [8888], "characters": "\u22B8" }, - "∇": { "codepoints": [8711], "characters": "\u2207" }, - "Ń": { "codepoints": [323], "characters": "\u0143" }, - "ń": { "codepoints": [324], "characters": "\u0144" }, - "∠⃒": { "codepoints": [8736, 8402], "characters": "\u2220\u20D2" }, - "≉": { "codepoints": [8777], "characters": "\u2249" }, - "⩰̸": { "codepoints": [10864, 824], "characters": "\u2A70\u0338" }, - "≋̸": { "codepoints": [8779, 824], "characters": "\u224B\u0338" }, - "ʼn": { "codepoints": [329], "characters": "\u0149" }, - "≉": { "codepoints": [8777], "characters": "\u2249" }, - "♮": { "codepoints": [9838], "characters": "\u266E" }, - "ℕ": { "codepoints": [8469], "characters": "\u2115" }, - "♮": { "codepoints": [9838], "characters": "\u266E" }, - " ": { "codepoints": [160], "characters": "\u00A0" }, - " ": { "codepoints": [160], "characters": "\u00A0" }, - "≎̸": { "codepoints": [8782, 824], "characters": "\u224E\u0338" }, - "≏̸": { "codepoints": [8783, 824], "characters": "\u224F\u0338" }, - "⩃": { "codepoints": [10819], "characters": "\u2A43" }, - "Ň": { "codepoints": [327], "characters": "\u0147" }, - "ň": { "codepoints": [328], "characters": "\u0148" }, - "Ņ": { "codepoints": [325], "characters": "\u0145" }, - "ņ": { "codepoints": [326], "characters": "\u0146" }, - "≇": { "codepoints": [8775], "characters": "\u2247" }, - "⩭̸": { "codepoints": [10861, 824], "characters": "\u2A6D\u0338" }, - "⩂": { "codepoints": [10818], "characters": "\u2A42" }, - "Н": { "codepoints": [1053], "characters": "\u041D" }, - "н": { "codepoints": [1085], "characters": "\u043D" }, - "–": { "codepoints": [8211], "characters": "\u2013" }, - "⤤": { "codepoints": [10532], "characters": "\u2924" }, - "↗": { "codepoints": [8599], "characters": "\u2197" }, - "⇗": { "codepoints": [8663], "characters": "\u21D7" }, - "↗": { "codepoints": [8599], "characters": "\u2197" }, - "≠": { "codepoints": [8800], "characters": "\u2260" }, - "≐̸": { "codepoints": [8784, 824], "characters": "\u2250\u0338" }, - "​": { "codepoints": [8203], "characters": "\u200B" }, - "​": { "codepoints": [8203], "characters": "\u200B" }, - "​": { "codepoints": [8203], "characters": "\u200B" }, - "​": { "codepoints": [8203], "characters": "\u200B" }, - "≢": { "codepoints": [8802], "characters": "\u2262" }, - "⤨": { "codepoints": [10536], "characters": "\u2928" }, - "≂̸": { "codepoints": [8770, 824], "characters": "\u2242\u0338" }, - "≫": { "codepoints": [8811], "characters": "\u226B" }, - "≪": { "codepoints": [8810], "characters": "\u226A" }, - " ": { "codepoints": [10], "characters": "\u000A" }, - "∄": { "codepoints": [8708], "characters": "\u2204" }, - "∄": { "codepoints": [8708], "characters": "\u2204" }, - "𝔑": { "codepoints": [120081], "characters": "\uD835\uDD11" }, - "𝔫": { "codepoints": [120107], "characters": "\uD835\uDD2B" }, - "≧̸": { "codepoints": [8807, 824], "characters": "\u2267\u0338" }, - "≱": { "codepoints": [8817], "characters": "\u2271" }, - "≱": { "codepoints": [8817], "characters": "\u2271" }, - "≧̸": { "codepoints": [8807, 824], "characters": "\u2267\u0338" }, - "⩾̸": { "codepoints": [10878, 824], "characters": "\u2A7E\u0338" }, - "⩾̸": { "codepoints": [10878, 824], "characters": "\u2A7E\u0338" }, - "⋙̸": { "codepoints": [8921, 824], "characters": "\u22D9\u0338" }, - "≵": { "codepoints": [8821], "characters": "\u2275" }, - "≫⃒": { "codepoints": [8811, 8402], "characters": "\u226B\u20D2" }, - "≯": { "codepoints": [8815], "characters": "\u226F" }, - "≯": { "codepoints": [8815], "characters": "\u226F" }, - "≫̸": { "codepoints": [8811, 824], "characters": "\u226B\u0338" }, - "↮": { "codepoints": [8622], "characters": "\u21AE" }, - "⇎": { "codepoints": [8654], "characters": "\u21CE" }, - "⫲": { "codepoints": [10994], "characters": "\u2AF2" }, - "∋": { "codepoints": [8715], "characters": "\u220B" }, - "⋼": { "codepoints": [8956], "characters": "\u22FC" }, - "⋺": { "codepoints": [8954], "characters": "\u22FA" }, - "∋": { "codepoints": [8715], "characters": "\u220B" }, - "Њ": { "codepoints": [1034], "characters": "\u040A" }, - "њ": { "codepoints": [1114], "characters": "\u045A" }, - "↚": { "codepoints": [8602], "characters": "\u219A" }, - "⇍": { "codepoints": [8653], "characters": "\u21CD" }, - "‥": { "codepoints": [8229], "characters": "\u2025" }, - "≦̸": { "codepoints": [8806, 824], "characters": "\u2266\u0338" }, - "≰": { "codepoints": [8816], "characters": "\u2270" }, - "↚": { "codepoints": [8602], "characters": "\u219A" }, - "⇍": { "codepoints": [8653], "characters": "\u21CD" }, - "↮": { "codepoints": [8622], "characters": "\u21AE" }, - "⇎": { "codepoints": [8654], "characters": "\u21CE" }, - "≰": { "codepoints": [8816], "characters": "\u2270" }, - "≦̸": { "codepoints": [8806, 824], "characters": "\u2266\u0338" }, - "⩽̸": { "codepoints": [10877, 824], "characters": "\u2A7D\u0338" }, - "⩽̸": { "codepoints": [10877, 824], "characters": "\u2A7D\u0338" }, - "≮": { "codepoints": [8814], "characters": "\u226E" }, - "⋘̸": { "codepoints": [8920, 824], "characters": "\u22D8\u0338" }, - "≴": { "codepoints": [8820], "characters": "\u2274" }, - "≪⃒": { "codepoints": [8810, 8402], "characters": "\u226A\u20D2" }, - "≮": { "codepoints": [8814], "characters": "\u226E" }, - "⋪": { "codepoints": [8938], "characters": "\u22EA" }, - "⋬": { "codepoints": [8940], "characters": "\u22EC" }, - "≪̸": { "codepoints": [8810, 824], "characters": "\u226A\u0338" }, - "∤": { "codepoints": [8740], "characters": "\u2224" }, - "⁠": { "codepoints": [8288], "characters": "\u2060" }, - " ": { "codepoints": [160], "characters": "\u00A0" }, - "𝕟": { "codepoints": [120159], "characters": "\uD835\uDD5F" }, - "ℕ": { "codepoints": [8469], "characters": "\u2115" }, - "⫬": { "codepoints": [10988], "characters": "\u2AEC" }, - "¬": { "codepoints": [172], "characters": "\u00AC" }, - "¬": { "codepoints": [172], "characters": "\u00AC" }, - "≢": { "codepoints": [8802], "characters": "\u2262" }, - "≭": { "codepoints": [8813], "characters": "\u226D" }, - "∦": { "codepoints": [8742], "characters": "\u2226" }, - "∉": { "codepoints": [8713], "characters": "\u2209" }, - "≠": { "codepoints": [8800], "characters": "\u2260" }, - "≂̸": { "codepoints": [8770, 824], "characters": "\u2242\u0338" }, - "∄": { "codepoints": [8708], "characters": "\u2204" }, - "≯": { "codepoints": [8815], "characters": "\u226F" }, - "≱": { "codepoints": [8817], "characters": "\u2271" }, - "≧̸": { "codepoints": [8807, 824], "characters": "\u2267\u0338" }, - "≫̸": { "codepoints": [8811, 824], "characters": "\u226B\u0338" }, - "≹": { "codepoints": [8825], "characters": "\u2279" }, - "⩾̸": { "codepoints": [10878, 824], "characters": "\u2A7E\u0338" }, - "≵": { "codepoints": [8821], "characters": "\u2275" }, - "≎̸": { "codepoints": [8782, 824], "characters": "\u224E\u0338" }, - "≏̸": { "codepoints": [8783, 824], "characters": "\u224F\u0338" }, - "∉": { "codepoints": [8713], "characters": "\u2209" }, - "⋵̸": { "codepoints": [8949, 824], "characters": "\u22F5\u0338" }, - "⋹̸": { "codepoints": [8953, 824], "characters": "\u22F9\u0338" }, - "∉": { "codepoints": [8713], "characters": "\u2209" }, - "⋷": { "codepoints": [8951], "characters": "\u22F7" }, - "⋶": { "codepoints": [8950], "characters": "\u22F6" }, - "⧏̸": { "codepoints": [10703, 824], "characters": "\u29CF\u0338" }, - "⋪": { "codepoints": [8938], "characters": "\u22EA" }, - "⋬": { "codepoints": [8940], "characters": "\u22EC" }, - "≮": { "codepoints": [8814], "characters": "\u226E" }, - "≰": { "codepoints": [8816], "characters": "\u2270" }, - "≸": { "codepoints": [8824], "characters": "\u2278" }, - "≪̸": { "codepoints": [8810, 824], "characters": "\u226A\u0338" }, - "⩽̸": { "codepoints": [10877, 824], "characters": "\u2A7D\u0338" }, - "≴": { "codepoints": [8820], "characters": "\u2274" }, - "⪢̸": { "codepoints": [10914, 824], "characters": "\u2AA2\u0338" }, - "⪡̸": { "codepoints": [10913, 824], "characters": "\u2AA1\u0338" }, - "∌": { "codepoints": [8716], "characters": "\u220C" }, - "∌": { "codepoints": [8716], "characters": "\u220C" }, - "⋾": { "codepoints": [8958], "characters": "\u22FE" }, - "⋽": { "codepoints": [8957], "characters": "\u22FD" }, - "⊀": { "codepoints": [8832], "characters": "\u2280" }, - "⪯̸": { "codepoints": [10927, 824], "characters": "\u2AAF\u0338" }, - "⋠": { "codepoints": [8928], "characters": "\u22E0" }, - "∌": { "codepoints": [8716], "characters": "\u220C" }, - "⧐̸": { "codepoints": [10704, 824], "characters": "\u29D0\u0338" }, - "⋫": { "codepoints": [8939], "characters": "\u22EB" }, - "⋭": { "codepoints": [8941], "characters": "\u22ED" }, - "⊏̸": { "codepoints": [8847, 824], "characters": "\u228F\u0338" }, - "⋢": { "codepoints": [8930], "characters": "\u22E2" }, - "⊐̸": { "codepoints": [8848, 824], "characters": "\u2290\u0338" }, - "⋣": { "codepoints": [8931], "characters": "\u22E3" }, - "⊂⃒": { "codepoints": [8834, 8402], "characters": "\u2282\u20D2" }, - "⊈": { "codepoints": [8840], "characters": "\u2288" }, - "⊁": { "codepoints": [8833], "characters": "\u2281" }, - "⪰̸": { "codepoints": [10928, 824], "characters": "\u2AB0\u0338" }, - "⋡": { "codepoints": [8929], "characters": "\u22E1" }, - "≿̸": { "codepoints": [8831, 824], "characters": "\u227F\u0338" }, - "⊃⃒": { "codepoints": [8835, 8402], "characters": "\u2283\u20D2" }, - "⊉": { "codepoints": [8841], "characters": "\u2289" }, - "≁": { "codepoints": [8769], "characters": "\u2241" }, - "≄": { "codepoints": [8772], "characters": "\u2244" }, - "≇": { "codepoints": [8775], "characters": "\u2247" }, - "≉": { "codepoints": [8777], "characters": "\u2249" }, - "∤": { "codepoints": [8740], "characters": "\u2224" }, - "∦": { "codepoints": [8742], "characters": "\u2226" }, - "∦": { "codepoints": [8742], "characters": "\u2226" }, - "⫽⃥": { "codepoints": [11005, 8421], "characters": "\u2AFD\u20E5" }, - "∂̸": { "codepoints": [8706, 824], "characters": "\u2202\u0338" }, - "⨔": { "codepoints": [10772], "characters": "\u2A14" }, - "⊀": { "codepoints": [8832], "characters": "\u2280" }, - "⋠": { "codepoints": [8928], "characters": "\u22E0" }, - "⊀": { "codepoints": [8832], "characters": "\u2280" }, - "⪯̸": { "codepoints": [10927, 824], "characters": "\u2AAF\u0338" }, - "⪯̸": { "codepoints": [10927, 824], "characters": "\u2AAF\u0338" }, - "⤳̸": { "codepoints": [10547, 824], "characters": "\u2933\u0338" }, - "↛": { "codepoints": [8603], "characters": "\u219B" }, - "⇏": { "codepoints": [8655], "characters": "\u21CF" }, - "↝̸": { "codepoints": [8605, 824], "characters": "\u219D\u0338" }, - "↛": { "codepoints": [8603], "characters": "\u219B" }, - "⇏": { "codepoints": [8655], "characters": "\u21CF" }, - "⋫": { "codepoints": [8939], "characters": "\u22EB" }, - "⋭": { "codepoints": [8941], "characters": "\u22ED" }, - "⊁": { "codepoints": [8833], "characters": "\u2281" }, - "⋡": { "codepoints": [8929], "characters": "\u22E1" }, - "⪰̸": { "codepoints": [10928, 824], "characters": "\u2AB0\u0338" }, - "𝒩": { "codepoints": [119977], "characters": "\uD835\uDCA9" }, - "𝓃": { "codepoints": [120003], "characters": "\uD835\uDCC3" }, - "∤": { "codepoints": [8740], "characters": "\u2224" }, - "∦": { "codepoints": [8742], "characters": "\u2226" }, - "≁": { "codepoints": [8769], "characters": "\u2241" }, - "≄": { "codepoints": [8772], "characters": "\u2244" }, - "≄": { "codepoints": [8772], "characters": "\u2244" }, - "∤": { "codepoints": [8740], "characters": "\u2224" }, - "∦": { "codepoints": [8742], "characters": "\u2226" }, - "⋢": { "codepoints": [8930], "characters": "\u22E2" }, - "⋣": { "codepoints": [8931], "characters": "\u22E3" }, - "⊄": { "codepoints": [8836], "characters": "\u2284" }, - "⫅̸": { "codepoints": [10949, 824], "characters": "\u2AC5\u0338" }, - "⊈": { "codepoints": [8840], "characters": "\u2288" }, - "⊂⃒": { "codepoints": [8834, 8402], "characters": "\u2282\u20D2" }, - "⊈": { "codepoints": [8840], "characters": "\u2288" }, - "⫅̸": { "codepoints": [10949, 824], "characters": "\u2AC5\u0338" }, - "⊁": { "codepoints": [8833], "characters": "\u2281" }, - "⪰̸": { "codepoints": [10928, 824], "characters": "\u2AB0\u0338" }, - "⊅": { "codepoints": [8837], "characters": "\u2285" }, - "⫆̸": { "codepoints": [10950, 824], "characters": "\u2AC6\u0338" }, - "⊉": { "codepoints": [8841], "characters": "\u2289" }, - "⊃⃒": { "codepoints": [8835, 8402], "characters": "\u2283\u20D2" }, - "⊉": { "codepoints": [8841], "characters": "\u2289" }, - "⫆̸": { "codepoints": [10950, 824], "characters": "\u2AC6\u0338" }, - "≹": { "codepoints": [8825], "characters": "\u2279" }, - "Ñ": { "codepoints": [209], "characters": "\u00D1" }, - "Ñ": { "codepoints": [209], "characters": "\u00D1" }, - "ñ": { "codepoints": [241], "characters": "\u00F1" }, - "ñ": { "codepoints": [241], "characters": "\u00F1" }, - "≸": { "codepoints": [8824], "characters": "\u2278" }, - "⋪": { "codepoints": [8938], "characters": "\u22EA" }, - "⋬": { "codepoints": [8940], "characters": "\u22EC" }, - "⋫": { "codepoints": [8939], "characters": "\u22EB" }, - "⋭": { "codepoints": [8941], "characters": "\u22ED" }, - "Ν": { "codepoints": [925], "characters": "\u039D" }, - "ν": { "codepoints": [957], "characters": "\u03BD" }, - "#": { "codepoints": [35], "characters": "\u0023" }, - "№": { "codepoints": [8470], "characters": "\u2116" }, - " ": { "codepoints": [8199], "characters": "\u2007" }, - "≍⃒": { "codepoints": [8781, 8402], "characters": "\u224D\u20D2" }, - "⊬": { "codepoints": [8876], "characters": "\u22AC" }, - "⊭": { "codepoints": [8877], "characters": "\u22AD" }, - "⊮": { "codepoints": [8878], "characters": "\u22AE" }, - "⊯": { "codepoints": [8879], "characters": "\u22AF" }, - "≥⃒": { "codepoints": [8805, 8402], "characters": "\u2265\u20D2" }, - ">⃒": { "codepoints": [62, 8402], "characters": "\u003E\u20D2" }, - "⤄": { "codepoints": [10500], "characters": "\u2904" }, - "⧞": { "codepoints": [10718], "characters": "\u29DE" }, - "⤂": { "codepoints": [10498], "characters": "\u2902" }, - "≤⃒": { "codepoints": [8804, 8402], "characters": "\u2264\u20D2" }, - "<⃒": { "codepoints": [60, 8402], "characters": "\u003C\u20D2" }, - "⊴⃒": { "codepoints": [8884, 8402], "characters": "\u22B4\u20D2" }, - "⤃": { "codepoints": [10499], "characters": "\u2903" }, - "⊵⃒": { "codepoints": [8885, 8402], "characters": "\u22B5\u20D2" }, - "∼⃒": { "codepoints": [8764, 8402], "characters": "\u223C\u20D2" }, - "⤣": { "codepoints": [10531], "characters": "\u2923" }, - "↖": { "codepoints": [8598], "characters": "\u2196" }, - "⇖": { "codepoints": [8662], "characters": "\u21D6" }, - "↖": { "codepoints": [8598], "characters": "\u2196" }, - "⤧": { "codepoints": [10535], "characters": "\u2927" }, - "Ó": { "codepoints": [211], "characters": "\u00D3" }, - "Ó": { "codepoints": [211], "characters": "\u00D3" }, - "ó": { "codepoints": [243], "characters": "\u00F3" }, - "ó": { "codepoints": [243], "characters": "\u00F3" }, - "⊛": { "codepoints": [8859], "characters": "\u229B" }, - "Ô": { "codepoints": [212], "characters": "\u00D4" }, - "Ô": { "codepoints": [212], "characters": "\u00D4" }, - "ô": { "codepoints": [244], "characters": "\u00F4" }, - "ô": { "codepoints": [244], "characters": "\u00F4" }, - "⊚": { "codepoints": [8858], "characters": "\u229A" }, - "О": { "codepoints": [1054], "characters": "\u041E" }, - "о": { "codepoints": [1086], "characters": "\u043E" }, - "⊝": { "codepoints": [8861], "characters": "\u229D" }, - "Ő": { "codepoints": [336], "characters": "\u0150" }, - "ő": { "codepoints": [337], "characters": "\u0151" }, - "⨸": { "codepoints": [10808], "characters": "\u2A38" }, - "⊙": { "codepoints": [8857], "characters": "\u2299" }, - "⦼": { "codepoints": [10684], "characters": "\u29BC" }, - "Œ": { "codepoints": [338], "characters": "\u0152" }, - "œ": { "codepoints": [339], "characters": "\u0153" }, - "⦿": { "codepoints": [10687], "characters": "\u29BF" }, - "𝔒": { "codepoints": [120082], "characters": "\uD835\uDD12" }, - "𝔬": { "codepoints": [120108], "characters": "\uD835\uDD2C" }, - "˛": { "codepoints": [731], "characters": "\u02DB" }, - "Ò": { "codepoints": [210], "characters": "\u00D2" }, - "Ò": { "codepoints": [210], "characters": "\u00D2" }, - "ò": { "codepoints": [242], "characters": "\u00F2" }, - "ò": { "codepoints": [242], "characters": "\u00F2" }, - "⧁": { "codepoints": [10689], "characters": "\u29C1" }, - "⦵": { "codepoints": [10677], "characters": "\u29B5" }, - "Ω": { "codepoints": [937], "characters": "\u03A9" }, - "∮": { "codepoints": [8750], "characters": "\u222E" }, - "↺": { "codepoints": [8634], "characters": "\u21BA" }, - "⦾": { "codepoints": [10686], "characters": "\u29BE" }, - "⦻": { "codepoints": [10683], "characters": "\u29BB" }, - "‾": { "codepoints": [8254], "characters": "\u203E" }, - "⧀": { "codepoints": [10688], "characters": "\u29C0" }, - "Ō": { "codepoints": [332], "characters": "\u014C" }, - "ō": { "codepoints": [333], "characters": "\u014D" }, - "Ω": { "codepoints": [937], "characters": "\u03A9" }, - "ω": { "codepoints": [969], "characters": "\u03C9" }, - "Ο": { "codepoints": [927], "characters": "\u039F" }, - "ο": { "codepoints": [959], "characters": "\u03BF" }, - "⦶": { "codepoints": [10678], "characters": "\u29B6" }, - "⊖": { "codepoints": [8854], "characters": "\u2296" }, - "𝕆": { "codepoints": [120134], "characters": "\uD835\uDD46" }, - "𝕠": { "codepoints": [120160], "characters": "\uD835\uDD60" }, - "⦷": { "codepoints": [10679], "characters": "\u29B7" }, - "“": { "codepoints": [8220], "characters": "\u201C" }, - "‘": { "codepoints": [8216], "characters": "\u2018" }, - "⦹": { "codepoints": [10681], "characters": "\u29B9" }, - "⊕": { "codepoints": [8853], "characters": "\u2295" }, - "↻": { "codepoints": [8635], "characters": "\u21BB" }, - "⩔": { "codepoints": [10836], "characters": "\u2A54" }, - "∨": { "codepoints": [8744], "characters": "\u2228" }, - "⩝": { "codepoints": [10845], "characters": "\u2A5D" }, - "ℴ": { "codepoints": [8500], "characters": "\u2134" }, - "ℴ": { "codepoints": [8500], "characters": "\u2134" }, - "ª": { "codepoints": [170], "characters": "\u00AA" }, - "ª": { "codepoints": [170], "characters": "\u00AA" }, - "º": { "codepoints": [186], "characters": "\u00BA" }, - "º": { "codepoints": [186], "characters": "\u00BA" }, - "⊶": { "codepoints": [8886], "characters": "\u22B6" }, - "⩖": { "codepoints": [10838], "characters": "\u2A56" }, - "⩗": { "codepoints": [10839], "characters": "\u2A57" }, - "⩛": { "codepoints": [10843], "characters": "\u2A5B" }, - "Ⓢ": { "codepoints": [9416], "characters": "\u24C8" }, - "𝒪": { "codepoints": [119978], "characters": "\uD835\uDCAA" }, - "ℴ": { "codepoints": [8500], "characters": "\u2134" }, - "Ø": { "codepoints": [216], "characters": "\u00D8" }, - "Ø": { "codepoints": [216], "characters": "\u00D8" }, - "ø": { "codepoints": [248], "characters": "\u00F8" }, - "ø": { "codepoints": [248], "characters": "\u00F8" }, - "⊘": { "codepoints": [8856], "characters": "\u2298" }, - "Õ": { "codepoints": [213], "characters": "\u00D5" }, - "Õ": { "codepoints": [213], "characters": "\u00D5" }, - "õ": { "codepoints": [245], "characters": "\u00F5" }, - "õ": { "codepoints": [245], "characters": "\u00F5" }, - "⨶": { "codepoints": [10806], "characters": "\u2A36" }, - "⨷": { "codepoints": [10807], "characters": "\u2A37" }, - "⊗": { "codepoints": [8855], "characters": "\u2297" }, - "Ö": { "codepoints": [214], "characters": "\u00D6" }, - "Ö": { "codepoints": [214], "characters": "\u00D6" }, - "ö": { "codepoints": [246], "characters": "\u00F6" }, - "ö": { "codepoints": [246], "characters": "\u00F6" }, - "⌽": { "codepoints": [9021], "characters": "\u233D" }, - "‾": { "codepoints": [8254], "characters": "\u203E" }, - "⏞": { "codepoints": [9182], "characters": "\u23DE" }, - "⎴": { "codepoints": [9140], "characters": "\u23B4" }, - "⏜": { "codepoints": [9180], "characters": "\u23DC" }, - "¶": { "codepoints": [182], "characters": "\u00B6" }, - "¶": { "codepoints": [182], "characters": "\u00B6" }, - "∥": { "codepoints": [8741], "characters": "\u2225" }, - "∥": { "codepoints": [8741], "characters": "\u2225" }, - "⫳": { "codepoints": [10995], "characters": "\u2AF3" }, - "⫽": { "codepoints": [11005], "characters": "\u2AFD" }, - "∂": { "codepoints": [8706], "characters": "\u2202" }, - "∂": { "codepoints": [8706], "characters": "\u2202" }, - "П": { "codepoints": [1055], "characters": "\u041F" }, - "п": { "codepoints": [1087], "characters": "\u043F" }, - "%": { "codepoints": [37], "characters": "\u0025" }, - ".": { "codepoints": [46], "characters": "\u002E" }, - "‰": { "codepoints": [8240], "characters": "\u2030" }, - "⊥": { "codepoints": [8869], "characters": "\u22A5" }, - "‱": { "codepoints": [8241], "characters": "\u2031" }, - "𝔓": { "codepoints": [120083], "characters": "\uD835\uDD13" }, - "𝔭": { "codepoints": [120109], "characters": "\uD835\uDD2D" }, - "Φ": { "codepoints": [934], "characters": "\u03A6" }, - "φ": { "codepoints": [966], "characters": "\u03C6" }, - "ϕ": { "codepoints": [981], "characters": "\u03D5" }, - "ℳ": { "codepoints": [8499], "characters": "\u2133" }, - "☎": { "codepoints": [9742], "characters": "\u260E" }, - "Π": { "codepoints": [928], "characters": "\u03A0" }, - "π": { "codepoints": [960], "characters": "\u03C0" }, - "⋔": { "codepoints": [8916], "characters": "\u22D4" }, - "ϖ": { "codepoints": [982], "characters": "\u03D6" }, - "ℏ": { "codepoints": [8463], "characters": "\u210F" }, - "ℎ": { "codepoints": [8462], "characters": "\u210E" }, - "ℏ": { "codepoints": [8463], "characters": "\u210F" }, - "⨣": { "codepoints": [10787], "characters": "\u2A23" }, - "⊞": { "codepoints": [8862], "characters": "\u229E" }, - "⨢": { "codepoints": [10786], "characters": "\u2A22" }, - "+": { "codepoints": [43], "characters": "\u002B" }, - "∔": { "codepoints": [8724], "characters": "\u2214" }, - "⨥": { "codepoints": [10789], "characters": "\u2A25" }, - "⩲": { "codepoints": [10866], "characters": "\u2A72" }, - "±": { "codepoints": [177], "characters": "\u00B1" }, - "±": { "codepoints": [177], "characters": "\u00B1" }, - "±": { "codepoints": [177], "characters": "\u00B1" }, - "⨦": { "codepoints": [10790], "characters": "\u2A26" }, - "⨧": { "codepoints": [10791], "characters": "\u2A27" }, - "±": { "codepoints": [177], "characters": "\u00B1" }, - "ℌ": { "codepoints": [8460], "characters": "\u210C" }, - "⨕": { "codepoints": [10773], "characters": "\u2A15" }, - "𝕡": { "codepoints": [120161], "characters": "\uD835\uDD61" }, - "ℙ": { "codepoints": [8473], "characters": "\u2119" }, - "£": { "codepoints": [163], "characters": "\u00A3" }, - "£": { "codepoints": [163], "characters": "\u00A3" }, - "⪷": { "codepoints": [10935], "characters": "\u2AB7" }, - "⪻": { "codepoints": [10939], "characters": "\u2ABB" }, - "≺": { "codepoints": [8826], "characters": "\u227A" }, - "≼": { "codepoints": [8828], "characters": "\u227C" }, - "⪷": { "codepoints": [10935], "characters": "\u2AB7" }, - "≺": { "codepoints": [8826], "characters": "\u227A" }, - "≼": { "codepoints": [8828], "characters": "\u227C" }, - "≺": { "codepoints": [8826], "characters": "\u227A" }, - "⪯": { "codepoints": [10927], "characters": "\u2AAF" }, - "≼": { "codepoints": [8828], "characters": "\u227C" }, - "≾": { "codepoints": [8830], "characters": "\u227E" }, - "⪯": { "codepoints": [10927], "characters": "\u2AAF" }, - "⪹": { "codepoints": [10937], "characters": "\u2AB9" }, - "⪵": { "codepoints": [10933], "characters": "\u2AB5" }, - "⋨": { "codepoints": [8936], "characters": "\u22E8" }, - "⪯": { "codepoints": [10927], "characters": "\u2AAF" }, - "⪳": { "codepoints": [10931], "characters": "\u2AB3" }, - "≾": { "codepoints": [8830], "characters": "\u227E" }, - "′": { "codepoints": [8242], "characters": "\u2032" }, - "″": { "codepoints": [8243], "characters": "\u2033" }, - "ℙ": { "codepoints": [8473], "characters": "\u2119" }, - "⪹": { "codepoints": [10937], "characters": "\u2AB9" }, - "⪵": { "codepoints": [10933], "characters": "\u2AB5" }, - "⋨": { "codepoints": [8936], "characters": "\u22E8" }, - "∏": { "codepoints": [8719], "characters": "\u220F" }, - "∏": { "codepoints": [8719], "characters": "\u220F" }, - "⌮": { "codepoints": [9006], "characters": "\u232E" }, - "⌒": { "codepoints": [8978], "characters": "\u2312" }, - "⌓": { "codepoints": [8979], "characters": "\u2313" }, - "∝": { "codepoints": [8733], "characters": "\u221D" }, - "∝": { "codepoints": [8733], "characters": "\u221D" }, - "∷": { "codepoints": [8759], "characters": "\u2237" }, - "∝": { "codepoints": [8733], "characters": "\u221D" }, - "≾": { "codepoints": [8830], "characters": "\u227E" }, - "⊰": { "codepoints": [8880], "characters": "\u22B0" }, - "𝒫": { "codepoints": [119979], "characters": "\uD835\uDCAB" }, - "𝓅": { "codepoints": [120005], "characters": "\uD835\uDCC5" }, - "Ψ": { "codepoints": [936], "characters": "\u03A8" }, - "ψ": { "codepoints": [968], "characters": "\u03C8" }, - " ": { "codepoints": [8200], "characters": "\u2008" }, - "𝔔": { "codepoints": [120084], "characters": "\uD835\uDD14" }, - "𝔮": { "codepoints": [120110], "characters": "\uD835\uDD2E" }, - "⨌": { "codepoints": [10764], "characters": "\u2A0C" }, - "𝕢": { "codepoints": [120162], "characters": "\uD835\uDD62" }, - "ℚ": { "codepoints": [8474], "characters": "\u211A" }, - "⁗": { "codepoints": [8279], "characters": "\u2057" }, - "𝒬": { "codepoints": [119980], "characters": "\uD835\uDCAC" }, - "𝓆": { "codepoints": [120006], "characters": "\uD835\uDCC6" }, - "ℍ": { "codepoints": [8461], "characters": "\u210D" }, - "⨖": { "codepoints": [10774], "characters": "\u2A16" }, - "?": { "codepoints": [63], "characters": "\u003F" }, - "≟": { "codepoints": [8799], "characters": "\u225F" }, - """: { "codepoints": [34], "characters": "\u0022" }, - """: { "codepoints": [34], "characters": "\u0022" }, - """: { "codepoints": [34], "characters": "\u0022" }, - """: { "codepoints": [34], "characters": "\u0022" }, - "⇛": { "codepoints": [8667], "characters": "\u21DB" }, - "∽̱": { "codepoints": [8765, 817], "characters": "\u223D\u0331" }, - "Ŕ": { "codepoints": [340], "characters": "\u0154" }, - "ŕ": { "codepoints": [341], "characters": "\u0155" }, - "√": { "codepoints": [8730], "characters": "\u221A" }, - "⦳": { "codepoints": [10675], "characters": "\u29B3" }, - "⟩": { "codepoints": [10217], "characters": "\u27E9" }, - "⟫": { "codepoints": [10219], "characters": "\u27EB" }, - "⦒": { "codepoints": [10642], "characters": "\u2992" }, - "⦥": { "codepoints": [10661], "characters": "\u29A5" }, - "⟩": { "codepoints": [10217], "characters": "\u27E9" }, - "»": { "codepoints": [187], "characters": "\u00BB" }, - "»": { "codepoints": [187], "characters": "\u00BB" }, - "⥵": { "codepoints": [10613], "characters": "\u2975" }, - "⇥": { "codepoints": [8677], "characters": "\u21E5" }, - "⤠": { "codepoints": [10528], "characters": "\u2920" }, - "⤳": { "codepoints": [10547], "characters": "\u2933" }, - "→": { "codepoints": [8594], "characters": "\u2192" }, - "↠": { "codepoints": [8608], "characters": "\u21A0" }, - "⇒": { "codepoints": [8658], "characters": "\u21D2" }, - "⤞": { "codepoints": [10526], "characters": "\u291E" }, - "↪": { "codepoints": [8618], "characters": "\u21AA" }, - "↬": { "codepoints": [8620], "characters": "\u21AC" }, - "⥅": { "codepoints": [10565], "characters": "\u2945" }, - "⥴": { "codepoints": [10612], "characters": "\u2974" }, - "⤖": { "codepoints": [10518], "characters": "\u2916" }, - "↣": { "codepoints": [8611], "characters": "\u21A3" }, - "↝": { "codepoints": [8605], "characters": "\u219D" }, - "⤚": { "codepoints": [10522], "characters": "\u291A" }, - "⤜": { "codepoints": [10524], "characters": "\u291C" }, - "∶": { "codepoints": [8758], "characters": "\u2236" }, - "ℚ": { "codepoints": [8474], "characters": "\u211A" }, - "⤍": { "codepoints": [10509], "characters": "\u290D" }, - "⤏": { "codepoints": [10511], "characters": "\u290F" }, - "⤐": { "codepoints": [10512], "characters": "\u2910" }, - "❳": { "codepoints": [10099], "characters": "\u2773" }, - "}": { "codepoints": [125], "characters": "\u007D" }, - "]": { "codepoints": [93], "characters": "\u005D" }, - "⦌": { "codepoints": [10636], "characters": "\u298C" }, - "⦎": { "codepoints": [10638], "characters": "\u298E" }, - "⦐": { "codepoints": [10640], "characters": "\u2990" }, - "Ř": { "codepoints": [344], "characters": "\u0158" }, - "ř": { "codepoints": [345], "characters": "\u0159" }, - "Ŗ": { "codepoints": [342], "characters": "\u0156" }, - "ŗ": { "codepoints": [343], "characters": "\u0157" }, - "⌉": { "codepoints": [8969], "characters": "\u2309" }, - "}": { "codepoints": [125], "characters": "\u007D" }, - "Р": { "codepoints": [1056], "characters": "\u0420" }, - "р": { "codepoints": [1088], "characters": "\u0440" }, - "⤷": { "codepoints": [10551], "characters": "\u2937" }, - "⥩": { "codepoints": [10601], "characters": "\u2969" }, - "”": { "codepoints": [8221], "characters": "\u201D" }, - "”": { "codepoints": [8221], "characters": "\u201D" }, - "↳": { "codepoints": [8627], "characters": "\u21B3" }, - "ℜ": { "codepoints": [8476], "characters": "\u211C" }, - "ℛ": { "codepoints": [8475], "characters": "\u211B" }, - "ℜ": { "codepoints": [8476], "characters": "\u211C" }, - "ℝ": { "codepoints": [8477], "characters": "\u211D" }, - "ℜ": { "codepoints": [8476], "characters": "\u211C" }, - "▭": { "codepoints": [9645], "characters": "\u25AD" }, - "®": { "codepoints": [174], "characters": "\u00AE" }, - "®": { "codepoints": [174], "characters": "\u00AE" }, - "®": { "codepoints": [174], "characters": "\u00AE" }, - "®": { "codepoints": [174], "characters": "\u00AE" }, - "∋": { "codepoints": [8715], "characters": "\u220B" }, - "⇋": { "codepoints": [8651], "characters": "\u21CB" }, - "⥯": { "codepoints": [10607], "characters": "\u296F" }, - "⥽": { "codepoints": [10621], "characters": "\u297D" }, - "⌋": { "codepoints": [8971], "characters": "\u230B" }, - "𝔯": { "codepoints": [120111], "characters": "\uD835\uDD2F" }, - "ℜ": { "codepoints": [8476], "characters": "\u211C" }, - "⥤": { "codepoints": [10596], "characters": "\u2964" }, - "⇁": { "codepoints": [8641], "characters": "\u21C1" }, - "⇀": { "codepoints": [8640], "characters": "\u21C0" }, - "⥬": { "codepoints": [10604], "characters": "\u296C" }, - "Ρ": { "codepoints": [929], "characters": "\u03A1" }, - "ρ": { "codepoints": [961], "characters": "\u03C1" }, - "ϱ": { "codepoints": [1009], "characters": "\u03F1" }, - "⟩": { "codepoints": [10217], "characters": "\u27E9" }, - "⇥": { "codepoints": [8677], "characters": "\u21E5" }, - "→": { "codepoints": [8594], "characters": "\u2192" }, - "→": { "codepoints": [8594], "characters": "\u2192" }, - "⇒": { "codepoints": [8658], "characters": "\u21D2" }, - "⇄": { "codepoints": [8644], "characters": "\u21C4" }, - "↣": { "codepoints": [8611], "characters": "\u21A3" }, - "⌉": { "codepoints": [8969], "characters": "\u2309" }, - "⟧": { "codepoints": [10215], "characters": "\u27E7" }, - "⥝": { "codepoints": [10589], "characters": "\u295D" }, - "⥕": { "codepoints": [10581], "characters": "\u2955" }, - "⇂": { "codepoints": [8642], "characters": "\u21C2" }, - "⌋": { "codepoints": [8971], "characters": "\u230B" }, - "⇁": { "codepoints": [8641], "characters": "\u21C1" }, - "⇀": { "codepoints": [8640], "characters": "\u21C0" }, - "⇄": { "codepoints": [8644], "characters": "\u21C4" }, - "⇌": { "codepoints": [8652], "characters": "\u21CC" }, - "⇉": { "codepoints": [8649], "characters": "\u21C9" }, - "↝": { "codepoints": [8605], "characters": "\u219D" }, - "↦": { "codepoints": [8614], "characters": "\u21A6" }, - "⊢": { "codepoints": [8866], "characters": "\u22A2" }, - "⥛": { "codepoints": [10587], "characters": "\u295B" }, - "⋌": { "codepoints": [8908], "characters": "\u22CC" }, - "⧐": { "codepoints": [10704], "characters": "\u29D0" }, - "⊳": { "codepoints": [8883], "characters": "\u22B3" }, - "⊵": { "codepoints": [8885], "characters": "\u22B5" }, - "⥏": { "codepoints": [10575], "characters": "\u294F" }, - "⥜": { "codepoints": [10588], "characters": "\u295C" }, - "⥔": { "codepoints": [10580], "characters": "\u2954" }, - "↾": { "codepoints": [8638], "characters": "\u21BE" }, - "⥓": { "codepoints": [10579], "characters": "\u2953" }, - "⇀": { "codepoints": [8640], "characters": "\u21C0" }, - "˚": { "codepoints": [730], "characters": "\u02DA" }, - "≓": { "codepoints": [8787], "characters": "\u2253" }, - "⇄": { "codepoints": [8644], "characters": "\u21C4" }, - "⇌": { "codepoints": [8652], "characters": "\u21CC" }, - "‏": { "codepoints": [8207], "characters": "\u200F" }, - "⎱": { "codepoints": [9137], "characters": "\u23B1" }, - "⎱": { "codepoints": [9137], "characters": "\u23B1" }, - "⫮": { "codepoints": [10990], "characters": "\u2AEE" }, - "⟭": { "codepoints": [10221], "characters": "\u27ED" }, - "⇾": { "codepoints": [8702], "characters": "\u21FE" }, - "⟧": { "codepoints": [10215], "characters": "\u27E7" }, - "⦆": { "codepoints": [10630], "characters": "\u2986" }, - "𝕣": { "codepoints": [120163], "characters": "\uD835\uDD63" }, - "ℝ": { "codepoints": [8477], "characters": "\u211D" }, - "⨮": { "codepoints": [10798], "characters": "\u2A2E" }, - "⨵": { "codepoints": [10805], "characters": "\u2A35" }, - "⥰": { "codepoints": [10608], "characters": "\u2970" }, - ")": { "codepoints": [41], "characters": "\u0029" }, - "⦔": { "codepoints": [10644], "characters": "\u2994" }, - "⨒": { "codepoints": [10770], "characters": "\u2A12" }, - "⇉": { "codepoints": [8649], "characters": "\u21C9" }, - "⇛": { "codepoints": [8667], "characters": "\u21DB" }, - "›": { "codepoints": [8250], "characters": "\u203A" }, - "𝓇": { "codepoints": [120007], "characters": "\uD835\uDCC7" }, - "ℛ": { "codepoints": [8475], "characters": "\u211B" }, - "↱": { "codepoints": [8625], "characters": "\u21B1" }, - "↱": { "codepoints": [8625], "characters": "\u21B1" }, - "]": { "codepoints": [93], "characters": "\u005D" }, - "’": { "codepoints": [8217], "characters": "\u2019" }, - "’": { "codepoints": [8217], "characters": "\u2019" }, - "⋌": { "codepoints": [8908], "characters": "\u22CC" }, - "⋊": { "codepoints": [8906], "characters": "\u22CA" }, - "▹": { "codepoints": [9657], "characters": "\u25B9" }, - "⊵": { "codepoints": [8885], "characters": "\u22B5" }, - "▸": { "codepoints": [9656], "characters": "\u25B8" }, - "⧎": { "codepoints": [10702], "characters": "\u29CE" }, - "⧴": { "codepoints": [10740], "characters": "\u29F4" }, - "⥨": { "codepoints": [10600], "characters": "\u2968" }, - "℞": { "codepoints": [8478], "characters": "\u211E" }, - "Ś": { "codepoints": [346], "characters": "\u015A" }, - "ś": { "codepoints": [347], "characters": "\u015B" }, - "‚": { "codepoints": [8218], "characters": "\u201A" }, - "⪸": { "codepoints": [10936], "characters": "\u2AB8" }, - "Š": { "codepoints": [352], "characters": "\u0160" }, - "š": { "codepoints": [353], "characters": "\u0161" }, - "⪼": { "codepoints": [10940], "characters": "\u2ABC" }, - "≻": { "codepoints": [8827], "characters": "\u227B" }, - "≽": { "codepoints": [8829], "characters": "\u227D" }, - "⪰": { "codepoints": [10928], "characters": "\u2AB0" }, - "⪴": { "codepoints": [10932], "characters": "\u2AB4" }, - "Ş": { "codepoints": [350], "characters": "\u015E" }, - "ş": { "codepoints": [351], "characters": "\u015F" }, - "Ŝ": { "codepoints": [348], "characters": "\u015C" }, - "ŝ": { "codepoints": [349], "characters": "\u015D" }, - "⪺": { "codepoints": [10938], "characters": "\u2ABA" }, - "⪶": { "codepoints": [10934], "characters": "\u2AB6" }, - "⋩": { "codepoints": [8937], "characters": "\u22E9" }, - "⨓": { "codepoints": [10771], "characters": "\u2A13" }, - "≿": { "codepoints": [8831], "characters": "\u227F" }, - "С": { "codepoints": [1057], "characters": "\u0421" }, - "с": { "codepoints": [1089], "characters": "\u0441" }, - "⊡": { "codepoints": [8865], "characters": "\u22A1" }, - "⋅": { "codepoints": [8901], "characters": "\u22C5" }, - "⩦": { "codepoints": [10854], "characters": "\u2A66" }, - "⤥": { "codepoints": [10533], "characters": "\u2925" }, - "↘": { "codepoints": [8600], "characters": "\u2198" }, - "⇘": { "codepoints": [8664], "characters": "\u21D8" }, - "↘": { "codepoints": [8600], "characters": "\u2198" }, - "§": { "codepoints": [167], "characters": "\u00A7" }, - "§": { "codepoints": [167], "characters": "\u00A7" }, - ";": { "codepoints": [59], "characters": "\u003B" }, - "⤩": { "codepoints": [10537], "characters": "\u2929" }, - "∖": { "codepoints": [8726], "characters": "\u2216" }, - "∖": { "codepoints": [8726], "characters": "\u2216" }, - "✶": { "codepoints": [10038], "characters": "\u2736" }, - "𝔖": { "codepoints": [120086], "characters": "\uD835\uDD16" }, - "𝔰": { "codepoints": [120112], "characters": "\uD835\uDD30" }, - "⌢": { "codepoints": [8994], "characters": "\u2322" }, - "♯": { "codepoints": [9839], "characters": "\u266F" }, - "Щ": { "codepoints": [1065], "characters": "\u0429" }, - "щ": { "codepoints": [1097], "characters": "\u0449" }, - "Ш": { "codepoints": [1064], "characters": "\u0428" }, - "ш": { "codepoints": [1096], "characters": "\u0448" }, - "↓": { "codepoints": [8595], "characters": "\u2193" }, - "←": { "codepoints": [8592], "characters": "\u2190" }, - "∣": { "codepoints": [8739], "characters": "\u2223" }, - "∥": { "codepoints": [8741], "characters": "\u2225" }, - "→": { "codepoints": [8594], "characters": "\u2192" }, - "↑": { "codepoints": [8593], "characters": "\u2191" }, - "­": { "codepoints": [173], "characters": "\u00AD" }, - "­": { "codepoints": [173], "characters": "\u00AD" }, - "Σ": { "codepoints": [931], "characters": "\u03A3" }, - "σ": { "codepoints": [963], "characters": "\u03C3" }, - "ς": { "codepoints": [962], "characters": "\u03C2" }, - "ς": { "codepoints": [962], "characters": "\u03C2" }, - "∼": { "codepoints": [8764], "characters": "\u223C" }, - "⩪": { "codepoints": [10858], "characters": "\u2A6A" }, - "≃": { "codepoints": [8771], "characters": "\u2243" }, - "≃": { "codepoints": [8771], "characters": "\u2243" }, - "⪞": { "codepoints": [10910], "characters": "\u2A9E" }, - "⪠": { "codepoints": [10912], "characters": "\u2AA0" }, - "⪝": { "codepoints": [10909], "characters": "\u2A9D" }, - "⪟": { "codepoints": [10911], "characters": "\u2A9F" }, - "≆": { "codepoints": [8774], "characters": "\u2246" }, - "⨤": { "codepoints": [10788], "characters": "\u2A24" }, - "⥲": { "codepoints": [10610], "characters": "\u2972" }, - "←": { "codepoints": [8592], "characters": "\u2190" }, - "∘": { "codepoints": [8728], "characters": "\u2218" }, - "∖": { "codepoints": [8726], "characters": "\u2216" }, - "⨳": { "codepoints": [10803], "characters": "\u2A33" }, - "⧤": { "codepoints": [10724], "characters": "\u29E4" }, - "∣": { "codepoints": [8739], "characters": "\u2223" }, - "⌣": { "codepoints": [8995], "characters": "\u2323" }, - "⪪": { "codepoints": [10922], "characters": "\u2AAA" }, - "⪬": { "codepoints": [10924], "characters": "\u2AAC" }, - "⪬︀": { "codepoints": [10924, 65024], "characters": "\u2AAC\uFE00" }, - "Ь": { "codepoints": [1068], "characters": "\u042C" }, - "ь": { "codepoints": [1100], "characters": "\u044C" }, - "⌿": { "codepoints": [9023], "characters": "\u233F" }, - "⧄": { "codepoints": [10692], "characters": "\u29C4" }, - "/": { "codepoints": [47], "characters": "\u002F" }, - "𝕊": { "codepoints": [120138], "characters": "\uD835\uDD4A" }, - "𝕤": { "codepoints": [120164], "characters": "\uD835\uDD64" }, - "♠": { "codepoints": [9824], "characters": "\u2660" }, - "♠": { "codepoints": [9824], "characters": "\u2660" }, - "∥": { "codepoints": [8741], "characters": "\u2225" }, - "⊓": { "codepoints": [8851], "characters": "\u2293" }, - "⊓︀": { "codepoints": [8851, 65024], "characters": "\u2293\uFE00" }, - "⊔": { "codepoints": [8852], "characters": "\u2294" }, - "⊔︀": { "codepoints": [8852, 65024], "characters": "\u2294\uFE00" }, - "√": { "codepoints": [8730], "characters": "\u221A" }, - "⊏": { "codepoints": [8847], "characters": "\u228F" }, - "⊑": { "codepoints": [8849], "characters": "\u2291" }, - "⊏": { "codepoints": [8847], "characters": "\u228F" }, - "⊑": { "codepoints": [8849], "characters": "\u2291" }, - "⊐": { "codepoints": [8848], "characters": "\u2290" }, - "⊒": { "codepoints": [8850], "characters": "\u2292" }, - "⊐": { "codepoints": [8848], "characters": "\u2290" }, - "⊒": { "codepoints": [8850], "characters": "\u2292" }, - "□": { "codepoints": [9633], "characters": "\u25A1" }, - "□": { "codepoints": [9633], "characters": "\u25A1" }, - "⊓": { "codepoints": [8851], "characters": "\u2293" }, - "⊏": { "codepoints": [8847], "characters": "\u228F" }, - "⊑": { "codepoints": [8849], "characters": "\u2291" }, - "⊐": { "codepoints": [8848], "characters": "\u2290" }, - "⊒": { "codepoints": [8850], "characters": "\u2292" }, - "⊔": { "codepoints": [8852], "characters": "\u2294" }, - "▪": { "codepoints": [9642], "characters": "\u25AA" }, - "□": { "codepoints": [9633], "characters": "\u25A1" }, - "▪": { "codepoints": [9642], "characters": "\u25AA" }, - "→": { "codepoints": [8594], "characters": "\u2192" }, - "𝒮": { "codepoints": [119982], "characters": "\uD835\uDCAE" }, - "𝓈": { "codepoints": [120008], "characters": "\uD835\uDCC8" }, - "∖": { "codepoints": [8726], "characters": "\u2216" }, - "⌣": { "codepoints": [8995], "characters": "\u2323" }, - "⋆": { "codepoints": [8902], "characters": "\u22C6" }, - "⋆": { "codepoints": [8902], "characters": "\u22C6" }, - "☆": { "codepoints": [9734], "characters": "\u2606" }, - "★": { "codepoints": [9733], "characters": "\u2605" }, - "ϵ": { "codepoints": [1013], "characters": "\u03F5" }, - "ϕ": { "codepoints": [981], "characters": "\u03D5" }, - "¯": { "codepoints": [175], "characters": "\u00AF" }, - "⊂": { "codepoints": [8834], "characters": "\u2282" }, - "⋐": { "codepoints": [8912], "characters": "\u22D0" }, - "⪽": { "codepoints": [10941], "characters": "\u2ABD" }, - "⫅": { "codepoints": [10949], "characters": "\u2AC5" }, - "⊆": { "codepoints": [8838], "characters": "\u2286" }, - "⫃": { "codepoints": [10947], "characters": "\u2AC3" }, - "⫁": { "codepoints": [10945], "characters": "\u2AC1" }, - "⫋": { "codepoints": [10955], "characters": "\u2ACB" }, - "⊊": { "codepoints": [8842], "characters": "\u228A" }, - "⪿": { "codepoints": [10943], "characters": "\u2ABF" }, - "⥹": { "codepoints": [10617], "characters": "\u2979" }, - "⊂": { "codepoints": [8834], "characters": "\u2282" }, - "⋐": { "codepoints": [8912], "characters": "\u22D0" }, - "⊆": { "codepoints": [8838], "characters": "\u2286" }, - "⫅": { "codepoints": [10949], "characters": "\u2AC5" }, - "⊆": { "codepoints": [8838], "characters": "\u2286" }, - "⊊": { "codepoints": [8842], "characters": "\u228A" }, - "⫋": { "codepoints": [10955], "characters": "\u2ACB" }, - "⫇": { "codepoints": [10951], "characters": "\u2AC7" }, - "⫕": { "codepoints": [10965], "characters": "\u2AD5" }, - "⫓": { "codepoints": [10963], "characters": "\u2AD3" }, - "⪸": { "codepoints": [10936], "characters": "\u2AB8" }, - "≻": { "codepoints": [8827], "characters": "\u227B" }, - "≽": { "codepoints": [8829], "characters": "\u227D" }, - "≻": { "codepoints": [8827], "characters": "\u227B" }, - "⪰": { "codepoints": [10928], "characters": "\u2AB0" }, - "≽": { "codepoints": [8829], "characters": "\u227D" }, - "≿": { "codepoints": [8831], "characters": "\u227F" }, - "⪰": { "codepoints": [10928], "characters": "\u2AB0" }, - "⪺": { "codepoints": [10938], "characters": "\u2ABA" }, - "⪶": { "codepoints": [10934], "characters": "\u2AB6" }, - "⋩": { "codepoints": [8937], "characters": "\u22E9" }, - "≿": { "codepoints": [8831], "characters": "\u227F" }, - "∋": { "codepoints": [8715], "characters": "\u220B" }, - "∑": { "codepoints": [8721], "characters": "\u2211" }, - "∑": { "codepoints": [8721], "characters": "\u2211" }, - "♪": { "codepoints": [9834], "characters": "\u266A" }, - "¹": { "codepoints": [185], "characters": "\u00B9" }, - "¹": { "codepoints": [185], "characters": "\u00B9" }, - "²": { "codepoints": [178], "characters": "\u00B2" }, - "²": { "codepoints": [178], "characters": "\u00B2" }, - "³": { "codepoints": [179], "characters": "\u00B3" }, - "³": { "codepoints": [179], "characters": "\u00B3" }, - "⊃": { "codepoints": [8835], "characters": "\u2283" }, - "⋑": { "codepoints": [8913], "characters": "\u22D1" }, - "⪾": { "codepoints": [10942], "characters": "\u2ABE" }, - "⫘": { "codepoints": [10968], "characters": "\u2AD8" }, - "⫆": { "codepoints": [10950], "characters": "\u2AC6" }, - "⊇": { "codepoints": [8839], "characters": "\u2287" }, - "⫄": { "codepoints": [10948], "characters": "\u2AC4" }, - "⊃": { "codepoints": [8835], "characters": "\u2283" }, - "⊇": { "codepoints": [8839], "characters": "\u2287" }, - "⟉": { "codepoints": [10185], "characters": "\u27C9" }, - "⫗": { "codepoints": [10967], "characters": "\u2AD7" }, - "⥻": { "codepoints": [10619], "characters": "\u297B" }, - "⫂": { "codepoints": [10946], "characters": "\u2AC2" }, - "⫌": { "codepoints": [10956], "characters": "\u2ACC" }, - "⊋": { "codepoints": [8843], "characters": "\u228B" }, - "⫀": { "codepoints": [10944], "characters": "\u2AC0" }, - "⊃": { "codepoints": [8835], "characters": "\u2283" }, - "⋑": { "codepoints": [8913], "characters": "\u22D1" }, - "⊇": { "codepoints": [8839], "characters": "\u2287" }, - "⫆": { "codepoints": [10950], "characters": "\u2AC6" }, - "⊋": { "codepoints": [8843], "characters": "\u228B" }, - "⫌": { "codepoints": [10956], "characters": "\u2ACC" }, - "⫈": { "codepoints": [10952], "characters": "\u2AC8" }, - "⫔": { "codepoints": [10964], "characters": "\u2AD4" }, - "⫖": { "codepoints": [10966], "characters": "\u2AD6" }, - "⤦": { "codepoints": [10534], "characters": "\u2926" }, - "↙": { "codepoints": [8601], "characters": "\u2199" }, - "⇙": { "codepoints": [8665], "characters": "\u21D9" }, - "↙": { "codepoints": [8601], "characters": "\u2199" }, - "⤪": { "codepoints": [10538], "characters": "\u292A" }, - "ß": { "codepoints": [223], "characters": "\u00DF" }, - "ß": { "codepoints": [223], "characters": "\u00DF" }, - " ": { "codepoints": [9], "characters": "\u0009" }, - "⌖": { "codepoints": [8982], "characters": "\u2316" }, - "Τ": { "codepoints": [932], "characters": "\u03A4" }, - "τ": { "codepoints": [964], "characters": "\u03C4" }, - "⎴": { "codepoints": [9140], "characters": "\u23B4" }, - "Ť": { "codepoints": [356], "characters": "\u0164" }, - "ť": { "codepoints": [357], "characters": "\u0165" }, - "Ţ": { "codepoints": [354], "characters": "\u0162" }, - "ţ": { "codepoints": [355], "characters": "\u0163" }, - "Т": { "codepoints": [1058], "characters": "\u0422" }, - "т": { "codepoints": [1090], "characters": "\u0442" }, - "⃛": { "codepoints": [8411], "characters": "\u20DB" }, - "⌕": { "codepoints": [8981], "characters": "\u2315" }, - "𝔗": { "codepoints": [120087], "characters": "\uD835\uDD17" }, - "𝔱": { "codepoints": [120113], "characters": "\uD835\uDD31" }, - "∴": { "codepoints": [8756], "characters": "\u2234" }, - "∴": { "codepoints": [8756], "characters": "\u2234" }, - "∴": { "codepoints": [8756], "characters": "\u2234" }, - "Θ": { "codepoints": [920], "characters": "\u0398" }, - "θ": { "codepoints": [952], "characters": "\u03B8" }, - "ϑ": { "codepoints": [977], "characters": "\u03D1" }, - "ϑ": { "codepoints": [977], "characters": "\u03D1" }, - "≈": { "codepoints": [8776], "characters": "\u2248" }, - "∼": { "codepoints": [8764], "characters": "\u223C" }, - "  ": { "codepoints": [8287, 8202], "characters": "\u205F\u200A" }, - " ": { "codepoints": [8201], "characters": "\u2009" }, - " ": { "codepoints": [8201], "characters": "\u2009" }, - "≈": { "codepoints": [8776], "characters": "\u2248" }, - "∼": { "codepoints": [8764], "characters": "\u223C" }, - "Þ": { "codepoints": [222], "characters": "\u00DE" }, - "Þ": { "codepoints": [222], "characters": "\u00DE" }, - "þ": { "codepoints": [254], "characters": "\u00FE" }, - "þ": { "codepoints": [254], "characters": "\u00FE" }, - "˜": { "codepoints": [732], "characters": "\u02DC" }, - "∼": { "codepoints": [8764], "characters": "\u223C" }, - "≃": { "codepoints": [8771], "characters": "\u2243" }, - "≅": { "codepoints": [8773], "characters": "\u2245" }, - "≈": { "codepoints": [8776], "characters": "\u2248" }, - "⨱": { "codepoints": [10801], "characters": "\u2A31" }, - "⊠": { "codepoints": [8864], "characters": "\u22A0" }, - "×": { "codepoints": [215], "characters": "\u00D7" }, - "×": { "codepoints": [215], "characters": "\u00D7" }, - "⨰": { "codepoints": [10800], "characters": "\u2A30" }, - "∭": { "codepoints": [8749], "characters": "\u222D" }, - "⤨": { "codepoints": [10536], "characters": "\u2928" }, - "⌶": { "codepoints": [9014], "characters": "\u2336" }, - "⫱": { "codepoints": [10993], "characters": "\u2AF1" }, - "⊤": { "codepoints": [8868], "characters": "\u22A4" }, - "𝕋": { "codepoints": [120139], "characters": "\uD835\uDD4B" }, - "𝕥": { "codepoints": [120165], "characters": "\uD835\uDD65" }, - "⫚": { "codepoints": [10970], "characters": "\u2ADA" }, - "⤩": { "codepoints": [10537], "characters": "\u2929" }, - "‴": { "codepoints": [8244], "characters": "\u2034" }, - "™": { "codepoints": [8482], "characters": "\u2122" }, - "™": { "codepoints": [8482], "characters": "\u2122" }, - "▵": { "codepoints": [9653], "characters": "\u25B5" }, - "▿": { "codepoints": [9663], "characters": "\u25BF" }, - "◃": { "codepoints": [9667], "characters": "\u25C3" }, - "⊴": { "codepoints": [8884], "characters": "\u22B4" }, - "≜": { "codepoints": [8796], "characters": "\u225C" }, - "▹": { "codepoints": [9657], "characters": "\u25B9" }, - "⊵": { "codepoints": [8885], "characters": "\u22B5" }, - "◬": { "codepoints": [9708], "characters": "\u25EC" }, - "≜": { "codepoints": [8796], "characters": "\u225C" }, - "⨺": { "codepoints": [10810], "characters": "\u2A3A" }, - "⃛": { "codepoints": [8411], "characters": "\u20DB" }, - "⨹": { "codepoints": [10809], "characters": "\u2A39" }, - "⧍": { "codepoints": [10701], "characters": "\u29CD" }, - "⨻": { "codepoints": [10811], "characters": "\u2A3B" }, - "⏢": { "codepoints": [9186], "characters": "\u23E2" }, - "𝒯": { "codepoints": [119983], "characters": "\uD835\uDCAF" }, - "𝓉": { "codepoints": [120009], "characters": "\uD835\uDCC9" }, - "Ц": { "codepoints": [1062], "characters": "\u0426" }, - "ц": { "codepoints": [1094], "characters": "\u0446" }, - "Ћ": { "codepoints": [1035], "characters": "\u040B" }, - "ћ": { "codepoints": [1115], "characters": "\u045B" }, - "Ŧ": { "codepoints": [358], "characters": "\u0166" }, - "ŧ": { "codepoints": [359], "characters": "\u0167" }, - "≬": { "codepoints": [8812], "characters": "\u226C" }, - "↞": { "codepoints": [8606], "characters": "\u219E" }, - "↠": { "codepoints": [8608], "characters": "\u21A0" }, - "Ú": { "codepoints": [218], "characters": "\u00DA" }, - "Ú": { "codepoints": [218], "characters": "\u00DA" }, - "ú": { "codepoints": [250], "characters": "\u00FA" }, - "ú": { "codepoints": [250], "characters": "\u00FA" }, - "↑": { "codepoints": [8593], "characters": "\u2191" }, - "↟": { "codepoints": [8607], "characters": "\u219F" }, - "⇑": { "codepoints": [8657], "characters": "\u21D1" }, - "⥉": { "codepoints": [10569], "characters": "\u2949" }, - "Ў": { "codepoints": [1038], "characters": "\u040E" }, - "ў": { "codepoints": [1118], "characters": "\u045E" }, - "Ŭ": { "codepoints": [364], "characters": "\u016C" }, - "ŭ": { "codepoints": [365], "characters": "\u016D" }, - "Û": { "codepoints": [219], "characters": "\u00DB" }, - "Û": { "codepoints": [219], "characters": "\u00DB" }, - "û": { "codepoints": [251], "characters": "\u00FB" }, - "û": { "codepoints": [251], "characters": "\u00FB" }, - "У": { "codepoints": [1059], "characters": "\u0423" }, - "у": { "codepoints": [1091], "characters": "\u0443" }, - "⇅": { "codepoints": [8645], "characters": "\u21C5" }, - "Ű": { "codepoints": [368], "characters": "\u0170" }, - "ű": { "codepoints": [369], "characters": "\u0171" }, - "⥮": { "codepoints": [10606], "characters": "\u296E" }, - "⥾": { "codepoints": [10622], "characters": "\u297E" }, - "𝔘": { "codepoints": [120088], "characters": "\uD835\uDD18" }, - "𝔲": { "codepoints": [120114], "characters": "\uD835\uDD32" }, - "Ù": { "codepoints": [217], "characters": "\u00D9" }, - "Ù": { "codepoints": [217], "characters": "\u00D9" }, - "ù": { "codepoints": [249], "characters": "\u00F9" }, - "ù": { "codepoints": [249], "characters": "\u00F9" }, - "⥣": { "codepoints": [10595], "characters": "\u2963" }, - "↿": { "codepoints": [8639], "characters": "\u21BF" }, - "↾": { "codepoints": [8638], "characters": "\u21BE" }, - "▀": { "codepoints": [9600], "characters": "\u2580" }, - "⌜": { "codepoints": [8988], "characters": "\u231C" }, - "⌜": { "codepoints": [8988], "characters": "\u231C" }, - "⌏": { "codepoints": [8975], "characters": "\u230F" }, - "◸": { "codepoints": [9720], "characters": "\u25F8" }, - "Ū": { "codepoints": [362], "characters": "\u016A" }, - "ū": { "codepoints": [363], "characters": "\u016B" }, - "¨": { "codepoints": [168], "characters": "\u00A8" }, - "¨": { "codepoints": [168], "characters": "\u00A8" }, - "_": { "codepoints": [95], "characters": "\u005F" }, - "⏟": { "codepoints": [9183], "characters": "\u23DF" }, - "⎵": { "codepoints": [9141], "characters": "\u23B5" }, - "⏝": { "codepoints": [9181], "characters": "\u23DD" }, - "⋃": { "codepoints": [8899], "characters": "\u22C3" }, - "⊎": { "codepoints": [8846], "characters": "\u228E" }, - "Ų": { "codepoints": [370], "characters": "\u0172" }, - "ų": { "codepoints": [371], "characters": "\u0173" }, - "𝕌": { "codepoints": [120140], "characters": "\uD835\uDD4C" }, - "𝕦": { "codepoints": [120166], "characters": "\uD835\uDD66" }, - "⤒": { "codepoints": [10514], "characters": "\u2912" }, - "↑": { "codepoints": [8593], "characters": "\u2191" }, - "↑": { "codepoints": [8593], "characters": "\u2191" }, - "⇑": { "codepoints": [8657], "characters": "\u21D1" }, - "⇅": { "codepoints": [8645], "characters": "\u21C5" }, - "↕": { "codepoints": [8597], "characters": "\u2195" }, - "↕": { "codepoints": [8597], "characters": "\u2195" }, - "⇕": { "codepoints": [8661], "characters": "\u21D5" }, - "⥮": { "codepoints": [10606], "characters": "\u296E" }, - "↿": { "codepoints": [8639], "characters": "\u21BF" }, - "↾": { "codepoints": [8638], "characters": "\u21BE" }, - "⊎": { "codepoints": [8846], "characters": "\u228E" }, - "↖": { "codepoints": [8598], "characters": "\u2196" }, - "↗": { "codepoints": [8599], "characters": "\u2197" }, - "υ": { "codepoints": [965], "characters": "\u03C5" }, - "ϒ": { "codepoints": [978], "characters": "\u03D2" }, - "ϒ": { "codepoints": [978], "characters": "\u03D2" }, - "Υ": { "codepoints": [933], "characters": "\u03A5" }, - "υ": { "codepoints": [965], "characters": "\u03C5" }, - "↥": { "codepoints": [8613], "characters": "\u21A5" }, - "⊥": { "codepoints": [8869], "characters": "\u22A5" }, - "⇈": { "codepoints": [8648], "characters": "\u21C8" }, - "⌝": { "codepoints": [8989], "characters": "\u231D" }, - "⌝": { "codepoints": [8989], "characters": "\u231D" }, - "⌎": { "codepoints": [8974], "characters": "\u230E" }, - "Ů": { "codepoints": [366], "characters": "\u016E" }, - "ů": { "codepoints": [367], "characters": "\u016F" }, - "◹": { "codepoints": [9721], "characters": "\u25F9" }, - "𝒰": { "codepoints": [119984], "characters": "\uD835\uDCB0" }, - "𝓊": { "codepoints": [120010], "characters": "\uD835\uDCCA" }, - "⋰": { "codepoints": [8944], "characters": "\u22F0" }, - "Ũ": { "codepoints": [360], "characters": "\u0168" }, - "ũ": { "codepoints": [361], "characters": "\u0169" }, - "▵": { "codepoints": [9653], "characters": "\u25B5" }, - "▴": { "codepoints": [9652], "characters": "\u25B4" }, - "⇈": { "codepoints": [8648], "characters": "\u21C8" }, - "Ü": { "codepoints": [220], "characters": "\u00DC" }, - "Ü": { "codepoints": [220], "characters": "\u00DC" }, - "ü": { "codepoints": [252], "characters": "\u00FC" }, - "ü": { "codepoints": [252], "characters": "\u00FC" }, - "⦧": { "codepoints": [10663], "characters": "\u29A7" }, - "⦜": { "codepoints": [10652], "characters": "\u299C" }, - "ϵ": { "codepoints": [1013], "characters": "\u03F5" }, - "ϰ": { "codepoints": [1008], "characters": "\u03F0" }, - "∅": { "codepoints": [8709], "characters": "\u2205" }, - "ϕ": { "codepoints": [981], "characters": "\u03D5" }, - "ϖ": { "codepoints": [982], "characters": "\u03D6" }, - "∝": { "codepoints": [8733], "characters": "\u221D" }, - "↕": { "codepoints": [8597], "characters": "\u2195" }, - "⇕": { "codepoints": [8661], "characters": "\u21D5" }, - "ϱ": { "codepoints": [1009], "characters": "\u03F1" }, - "ς": { "codepoints": [962], "characters": "\u03C2" }, - "⊊︀": { "codepoints": [8842, 65024], "characters": "\u228A\uFE00" }, - "⫋︀": { "codepoints": [10955, 65024], "characters": "\u2ACB\uFE00" }, - "⊋︀": { "codepoints": [8843, 65024], "characters": "\u228B\uFE00" }, - "⫌︀": { "codepoints": [10956, 65024], "characters": "\u2ACC\uFE00" }, - "ϑ": { "codepoints": [977], "characters": "\u03D1" }, - "⊲": { "codepoints": [8882], "characters": "\u22B2" }, - "⊳": { "codepoints": [8883], "characters": "\u22B3" }, - "⫨": { "codepoints": [10984], "characters": "\u2AE8" }, - "⫫": { "codepoints": [10987], "characters": "\u2AEB" }, - "⫩": { "codepoints": [10985], "characters": "\u2AE9" }, - "В": { "codepoints": [1042], "characters": "\u0412" }, - "в": { "codepoints": [1074], "characters": "\u0432" }, - "⊢": { "codepoints": [8866], "characters": "\u22A2" }, - "⊨": { "codepoints": [8872], "characters": "\u22A8" }, - "⊩": { "codepoints": [8873], "characters": "\u22A9" }, - "⊫": { "codepoints": [8875], "characters": "\u22AB" }, - "⫦": { "codepoints": [10982], "characters": "\u2AE6" }, - "⊻": { "codepoints": [8891], "characters": "\u22BB" }, - "∨": { "codepoints": [8744], "characters": "\u2228" }, - "⋁": { "codepoints": [8897], "characters": "\u22C1" }, - "≚": { "codepoints": [8794], "characters": "\u225A" }, - "⋮": { "codepoints": [8942], "characters": "\u22EE" }, - "|": { "codepoints": [124], "characters": "\u007C" }, - "‖": { "codepoints": [8214], "characters": "\u2016" }, - "|": { "codepoints": [124], "characters": "\u007C" }, - "‖": { "codepoints": [8214], "characters": "\u2016" }, - "∣": { "codepoints": [8739], "characters": "\u2223" }, - "|": { "codepoints": [124], "characters": "\u007C" }, - "❘": { "codepoints": [10072], "characters": "\u2758" }, - "≀": { "codepoints": [8768], "characters": "\u2240" }, - " ": { "codepoints": [8202], "characters": "\u200A" }, - "𝔙": { "codepoints": [120089], "characters": "\uD835\uDD19" }, - "𝔳": { "codepoints": [120115], "characters": "\uD835\uDD33" }, - "⊲": { "codepoints": [8882], "characters": "\u22B2" }, - "⊂⃒": { "codepoints": [8834, 8402], "characters": "\u2282\u20D2" }, - "⊃⃒": { "codepoints": [8835, 8402], "characters": "\u2283\u20D2" }, - "𝕍": { "codepoints": [120141], "characters": "\uD835\uDD4D" }, - "𝕧": { "codepoints": [120167], "characters": "\uD835\uDD67" }, - "∝": { "codepoints": [8733], "characters": "\u221D" }, - "⊳": { "codepoints": [8883], "characters": "\u22B3" }, - "𝒱": { "codepoints": [119985], "characters": "\uD835\uDCB1" }, - "𝓋": { "codepoints": [120011], "characters": "\uD835\uDCCB" }, - "⫋︀": { "codepoints": [10955, 65024], "characters": "\u2ACB\uFE00" }, - "⊊︀": { "codepoints": [8842, 65024], "characters": "\u228A\uFE00" }, - "⫌︀": { "codepoints": [10956, 65024], "characters": "\u2ACC\uFE00" }, - "⊋︀": { "codepoints": [8843, 65024], "characters": "\u228B\uFE00" }, - "⊪": { "codepoints": [8874], "characters": "\u22AA" }, - "⦚": { "codepoints": [10650], "characters": "\u299A" }, - "Ŵ": { "codepoints": [372], "characters": "\u0174" }, - "ŵ": { "codepoints": [373], "characters": "\u0175" }, - "⩟": { "codepoints": [10847], "characters": "\u2A5F" }, - "∧": { "codepoints": [8743], "characters": "\u2227" }, - "⋀": { "codepoints": [8896], "characters": "\u22C0" }, - "≙": { "codepoints": [8793], "characters": "\u2259" }, - "℘": { "codepoints": [8472], "characters": "\u2118" }, - "𝔚": { "codepoints": [120090], "characters": "\uD835\uDD1A" }, - "𝔴": { "codepoints": [120116], "characters": "\uD835\uDD34" }, - "𝕎": { "codepoints": [120142], "characters": "\uD835\uDD4E" }, - "𝕨": { "codepoints": [120168], "characters": "\uD835\uDD68" }, - "℘": { "codepoints": [8472], "characters": "\u2118" }, - "≀": { "codepoints": [8768], "characters": "\u2240" }, - "≀": { "codepoints": [8768], "characters": "\u2240" }, - "𝒲": { "codepoints": [119986], "characters": "\uD835\uDCB2" }, - "𝓌": { "codepoints": [120012], "characters": "\uD835\uDCCC" }, - "⋂": { "codepoints": [8898], "characters": "\u22C2" }, - "◯": { "codepoints": [9711], "characters": "\u25EF" }, - "⋃": { "codepoints": [8899], "characters": "\u22C3" }, - "▽": { "codepoints": [9661], "characters": "\u25BD" }, - "𝔛": { "codepoints": [120091], "characters": "\uD835\uDD1B" }, - "𝔵": { "codepoints": [120117], "characters": "\uD835\uDD35" }, - "⟷": { "codepoints": [10231], "characters": "\u27F7" }, - "⟺": { "codepoints": [10234], "characters": "\u27FA" }, - "Ξ": { "codepoints": [926], "characters": "\u039E" }, - "ξ": { "codepoints": [958], "characters": "\u03BE" }, - "⟵": { "codepoints": [10229], "characters": "\u27F5" }, - "⟸": { "codepoints": [10232], "characters": "\u27F8" }, - "⟼": { "codepoints": [10236], "characters": "\u27FC" }, - "⋻": { "codepoints": [8955], "characters": "\u22FB" }, - "⨀": { "codepoints": [10752], "characters": "\u2A00" }, - "𝕏": { "codepoints": [120143], "characters": "\uD835\uDD4F" }, - "𝕩": { "codepoints": [120169], "characters": "\uD835\uDD69" }, - "⨁": { "codepoints": [10753], "characters": "\u2A01" }, - "⨂": { "codepoints": [10754], "characters": "\u2A02" }, - "⟶": { "codepoints": [10230], "characters": "\u27F6" }, - "⟹": { "codepoints": [10233], "characters": "\u27F9" }, - "𝒳": { "codepoints": [119987], "characters": "\uD835\uDCB3" }, - "𝓍": { "codepoints": [120013], "characters": "\uD835\uDCCD" }, - "⨆": { "codepoints": [10758], "characters": "\u2A06" }, - "⨄": { "codepoints": [10756], "characters": "\u2A04" }, - "△": { "codepoints": [9651], "characters": "\u25B3" }, - "⋁": { "codepoints": [8897], "characters": "\u22C1" }, - "⋀": { "codepoints": [8896], "characters": "\u22C0" }, - "Ý": { "codepoints": [221], "characters": "\u00DD" }, - "Ý": { "codepoints": [221], "characters": "\u00DD" }, - "ý": { "codepoints": [253], "characters": "\u00FD" }, - "ý": { "codepoints": [253], "characters": "\u00FD" }, - "Я": { "codepoints": [1071], "characters": "\u042F" }, - "я": { "codepoints": [1103], "characters": "\u044F" }, - "Ŷ": { "codepoints": [374], "characters": "\u0176" }, - "ŷ": { "codepoints": [375], "characters": "\u0177" }, - "Ы": { "codepoints": [1067], "characters": "\u042B" }, - "ы": { "codepoints": [1099], "characters": "\u044B" }, - "¥": { "codepoints": [165], "characters": "\u00A5" }, - "¥": { "codepoints": [165], "characters": "\u00A5" }, - "𝔜": { "codepoints": [120092], "characters": "\uD835\uDD1C" }, - "𝔶": { "codepoints": [120118], "characters": "\uD835\uDD36" }, - "Ї": { "codepoints": [1031], "characters": "\u0407" }, - "ї": { "codepoints": [1111], "characters": "\u0457" }, - "𝕐": { "codepoints": [120144], "characters": "\uD835\uDD50" }, - "𝕪": { "codepoints": [120170], "characters": "\uD835\uDD6A" }, - "𝒴": { "codepoints": [119988], "characters": "\uD835\uDCB4" }, - "𝓎": { "codepoints": [120014], "characters": "\uD835\uDCCE" }, - "Ю": { "codepoints": [1070], "characters": "\u042E" }, - "ю": { "codepoints": [1102], "characters": "\u044E" }, - "ÿ": { "codepoints": [255], "characters": "\u00FF" }, - "ÿ": { "codepoints": [255], "characters": "\u00FF" }, - "Ÿ": { "codepoints": [376], "characters": "\u0178" }, - "Ź": { "codepoints": [377], "characters": "\u0179" }, - "ź": { "codepoints": [378], "characters": "\u017A" }, - "Ž": { "codepoints": [381], "characters": "\u017D" }, - "ž": { "codepoints": [382], "characters": "\u017E" }, - "З": { "codepoints": [1047], "characters": "\u0417" }, - "з": { "codepoints": [1079], "characters": "\u0437" }, - "Ż": { "codepoints": [379], "characters": "\u017B" }, - "ż": { "codepoints": [380], "characters": "\u017C" }, - "ℨ": { "codepoints": [8488], "characters": "\u2128" }, - "​": { "codepoints": [8203], "characters": "\u200B" }, - "Ζ": { "codepoints": [918], "characters": "\u0396" }, - "ζ": { "codepoints": [950], "characters": "\u03B6" }, - "𝔷": { "codepoints": [120119], "characters": "\uD835\uDD37" }, - "ℨ": { "codepoints": [8488], "characters": "\u2128" }, - "Ж": { "codepoints": [1046], "characters": "\u0416" }, - "ж": { "codepoints": [1078], "characters": "\u0436" }, - "⇝": { "codepoints": [8669], "characters": "\u21DD" }, - "𝕫": { "codepoints": [120171], "characters": "\uD835\uDD6B" }, - "ℤ": { "codepoints": [8484], "characters": "\u2124" }, - "𝒵": { "codepoints": [119989], "characters": "\uD835\uDCB5" }, - "𝓏": { "codepoints": [120015], "characters": "\uD835\uDCCF" }, - "‍": { "codepoints": [8205], "characters": "\u200D" }, - "‌": { "codepoints": [8204], "characters": "\u200C" } +const ENTITIES = { + "Á": {"codepoints": [193], "characters": "\u00C1"}, + "Á": {"codepoints": [193], "characters": "\u00C1"}, + "á": {"codepoints": [225], "characters": "\u00E1"}, + "á": {"codepoints": [225], "characters": "\u00E1"}, + "Ă": {"codepoints": [258], "characters": "\u0102"}, + "ă": {"codepoints": [259], "characters": "\u0103"}, + "∾": {"codepoints": [8766], "characters": "\u223E"}, + "∿": {"codepoints": [8767], "characters": "\u223F"}, + "∾̳": {"codepoints": [8766, 819], "characters": "\u223E\u0333"}, + "Â": {"codepoints": [194], "characters": "\u00C2"}, + "Â": {"codepoints": [194], "characters": "\u00C2"}, + "â": {"codepoints": [226], "characters": "\u00E2"}, + "â": {"codepoints": [226], "characters": "\u00E2"}, + "´": {"codepoints": [180], "characters": "\u00B4"}, + "´": {"codepoints": [180], "characters": "\u00B4"}, + "А": {"codepoints": [1040], "characters": "\u0410"}, + "а": {"codepoints": [1072], "characters": "\u0430"}, + "Æ": {"codepoints": [198], "characters": "\u00C6"}, + "Æ": {"codepoints": [198], "characters": "\u00C6"}, + "æ": {"codepoints": [230], "characters": "\u00E6"}, + "æ": {"codepoints": [230], "characters": "\u00E6"}, + "⁡": {"codepoints": [8289], "characters": "\u2061"}, + "𝔄": {"codepoints": [120068], "characters": "\uD835\uDD04"}, + "𝔞": {"codepoints": [120094], "characters": "\uD835\uDD1E"}, + "À": {"codepoints": [192], "characters": "\u00C0"}, + "À": {"codepoints": [192], "characters": "\u00C0"}, + "à": {"codepoints": [224], "characters": "\u00E0"}, + "à": {"codepoints": [224], "characters": "\u00E0"}, + "ℵ": {"codepoints": [8501], "characters": "\u2135"}, + "ℵ": {"codepoints": [8501], "characters": "\u2135"}, + "Α": {"codepoints": [913], "characters": "\u0391"}, + "α": {"codepoints": [945], "characters": "\u03B1"}, + "Ā": {"codepoints": [256], "characters": "\u0100"}, + "ā": {"codepoints": [257], "characters": "\u0101"}, + "⨿": {"codepoints": [10815], "characters": "\u2A3F"}, + "&": {"codepoints": [38], "characters": "\u0026"}, + "&": {"codepoints": [38], "characters": "\u0026"}, + "&": {"codepoints": [38], "characters": "\u0026"}, + "&": {"codepoints": [38], "characters": "\u0026"}, + "⩕": {"codepoints": [10837], "characters": "\u2A55"}, + "⩓": {"codepoints": [10835], "characters": "\u2A53"}, + "∧": {"codepoints": [8743], "characters": "\u2227"}, + "⩜": {"codepoints": [10844], "characters": "\u2A5C"}, + "⩘": {"codepoints": [10840], "characters": "\u2A58"}, + "⩚": {"codepoints": [10842], "characters": "\u2A5A"}, + "∠": {"codepoints": [8736], "characters": "\u2220"}, + "⦤": {"codepoints": [10660], "characters": "\u29A4"}, + "∠": {"codepoints": [8736], "characters": "\u2220"}, + "⦨": {"codepoints": [10664], "characters": "\u29A8"}, + "⦩": {"codepoints": [10665], "characters": "\u29A9"}, + "⦪": {"codepoints": [10666], "characters": "\u29AA"}, + "⦫": {"codepoints": [10667], "characters": "\u29AB"}, + "⦬": {"codepoints": [10668], "characters": "\u29AC"}, + "⦭": {"codepoints": [10669], "characters": "\u29AD"}, + "⦮": {"codepoints": [10670], "characters": "\u29AE"}, + "⦯": {"codepoints": [10671], "characters": "\u29AF"}, + "∡": {"codepoints": [8737], "characters": "\u2221"}, + "∟": {"codepoints": [8735], "characters": "\u221F"}, + "⊾": {"codepoints": [8894], "characters": "\u22BE"}, + "⦝": {"codepoints": [10653], "characters": "\u299D"}, + "∢": {"codepoints": [8738], "characters": "\u2222"}, + "Å": {"codepoints": [197], "characters": "\u00C5"}, + "⍼": {"codepoints": [9084], "characters": "\u237C"}, + "Ą": {"codepoints": [260], "characters": "\u0104"}, + "ą": {"codepoints": [261], "characters": "\u0105"}, + "𝔸": {"codepoints": [120120], "characters": "\uD835\uDD38"}, + "𝕒": {"codepoints": [120146], "characters": "\uD835\uDD52"}, + "⩯": {"codepoints": [10863], "characters": "\u2A6F"}, + "≈": {"codepoints": [8776], "characters": "\u2248"}, + "⩰": {"codepoints": [10864], "characters": "\u2A70"}, + "≊": {"codepoints": [8778], "characters": "\u224A"}, + "≋": {"codepoints": [8779], "characters": "\u224B"}, + "'": {"codepoints": [39], "characters": "\u0027"}, + "⁡": {"codepoints": [8289], "characters": "\u2061"}, + "≈": {"codepoints": [8776], "characters": "\u2248"}, + "≊": {"codepoints": [8778], "characters": "\u224A"}, + "Å": {"codepoints": [197], "characters": "\u00C5"}, + "Å": {"codepoints": [197], "characters": "\u00C5"}, + "å": {"codepoints": [229], "characters": "\u00E5"}, + "å": {"codepoints": [229], "characters": "\u00E5"}, + "𝒜": {"codepoints": [119964], "characters": "\uD835\uDC9C"}, + "𝒶": {"codepoints": [119990], "characters": "\uD835\uDCB6"}, + "≔": {"codepoints": [8788], "characters": "\u2254"}, + "*": {"codepoints": [42], "characters": "\u002A"}, + "≈": {"codepoints": [8776], "characters": "\u2248"}, + "≍": {"codepoints": [8781], "characters": "\u224D"}, + "Ã": {"codepoints": [195], "characters": "\u00C3"}, + "Ã": {"codepoints": [195], "characters": "\u00C3"}, + "ã": {"codepoints": [227], "characters": "\u00E3"}, + "ã": {"codepoints": [227], "characters": "\u00E3"}, + "Ä": {"codepoints": [196], "characters": "\u00C4"}, + "Ä": {"codepoints": [196], "characters": "\u00C4"}, + "ä": {"codepoints": [228], "characters": "\u00E4"}, + "ä": {"codepoints": [228], "characters": "\u00E4"}, + "∳": {"codepoints": [8755], "characters": "\u2233"}, + "⨑": {"codepoints": [10769], "characters": "\u2A11"}, + "≌": {"codepoints": [8780], "characters": "\u224C"}, + "϶": {"codepoints": [1014], "characters": "\u03F6"}, + "‵": {"codepoints": [8245], "characters": "\u2035"}, + "∽": {"codepoints": [8765], "characters": "\u223D"}, + "⋍": {"codepoints": [8909], "characters": "\u22CD"}, + "∖": {"codepoints": [8726], "characters": "\u2216"}, + "⫧": {"codepoints": [10983], "characters": "\u2AE7"}, + "⊽": {"codepoints": [8893], "characters": "\u22BD"}, + "⌅": {"codepoints": [8965], "characters": "\u2305"}, + "⌆": {"codepoints": [8966], "characters": "\u2306"}, + "⌅": {"codepoints": [8965], "characters": "\u2305"}, + "⎵": {"codepoints": [9141], "characters": "\u23B5"}, + "⎶": {"codepoints": [9142], "characters": "\u23B6"}, + "≌": {"codepoints": [8780], "characters": "\u224C"}, + "Б": {"codepoints": [1041], "characters": "\u0411"}, + "б": {"codepoints": [1073], "characters": "\u0431"}, + "„": {"codepoints": [8222], "characters": "\u201E"}, + "∵": {"codepoints": [8757], "characters": "\u2235"}, + "∵": {"codepoints": [8757], "characters": "\u2235"}, + "∵": {"codepoints": [8757], "characters": "\u2235"}, + "⦰": {"codepoints": [10672], "characters": "\u29B0"}, + "϶": {"codepoints": [1014], "characters": "\u03F6"}, + "ℬ": {"codepoints": [8492], "characters": "\u212C"}, + "ℬ": {"codepoints": [8492], "characters": "\u212C"}, + "Β": {"codepoints": [914], "characters": "\u0392"}, + "β": {"codepoints": [946], "characters": "\u03B2"}, + "ℶ": {"codepoints": [8502], "characters": "\u2136"}, + "≬": {"codepoints": [8812], "characters": "\u226C"}, + "𝔅": {"codepoints": [120069], "characters": "\uD835\uDD05"}, + "𝔟": {"codepoints": [120095], "characters": "\uD835\uDD1F"}, + "⋂": {"codepoints": [8898], "characters": "\u22C2"}, + "◯": {"codepoints": [9711], "characters": "\u25EF"}, + "⋃": {"codepoints": [8899], "characters": "\u22C3"}, + "⨀": {"codepoints": [10752], "characters": "\u2A00"}, + "⨁": {"codepoints": [10753], "characters": "\u2A01"}, + "⨂": {"codepoints": [10754], "characters": "\u2A02"}, + "⨆": {"codepoints": [10758], "characters": "\u2A06"}, + "★": {"codepoints": [9733], "characters": "\u2605"}, + "▽": {"codepoints": [9661], "characters": "\u25BD"}, + "△": {"codepoints": [9651], "characters": "\u25B3"}, + "⨄": {"codepoints": [10756], "characters": "\u2A04"}, + "⋁": {"codepoints": [8897], "characters": "\u22C1"}, + "⋀": {"codepoints": [8896], "characters": "\u22C0"}, + "⤍": {"codepoints": [10509], "characters": "\u290D"}, + "⧫": {"codepoints": [10731], "characters": "\u29EB"}, + "▪": {"codepoints": [9642], "characters": "\u25AA"}, + "▴": {"codepoints": [9652], "characters": "\u25B4"}, + "▾": {"codepoints": [9662], "characters": "\u25BE"}, + "◂": {"codepoints": [9666], "characters": "\u25C2"}, + "▸": {"codepoints": [9656], "characters": "\u25B8"}, + "␣": {"codepoints": [9251], "characters": "\u2423"}, + "▒": {"codepoints": [9618], "characters": "\u2592"}, + "░": {"codepoints": [9617], "characters": "\u2591"}, + "▓": {"codepoints": [9619], "characters": "\u2593"}, + "█": {"codepoints": [9608], "characters": "\u2588"}, + "=⃥": {"codepoints": [61, 8421], "characters": "\u003D\u20E5"}, + "≡⃥": {"codepoints": [8801, 8421], "characters": "\u2261\u20E5"}, + "⫭": {"codepoints": [10989], "characters": "\u2AED"}, + "⌐": {"codepoints": [8976], "characters": "\u2310"}, + "𝔹": {"codepoints": [120121], "characters": "\uD835\uDD39"}, + "𝕓": {"codepoints": [120147], "characters": "\uD835\uDD53"}, + "⊥": {"codepoints": [8869], "characters": "\u22A5"}, + "⊥": {"codepoints": [8869], "characters": "\u22A5"}, + "⋈": {"codepoints": [8904], "characters": "\u22C8"}, + "⧉": {"codepoints": [10697], "characters": "\u29C9"}, + "┐": {"codepoints": [9488], "characters": "\u2510"}, + "╕": {"codepoints": [9557], "characters": "\u2555"}, + "╖": {"codepoints": [9558], "characters": "\u2556"}, + "╗": {"codepoints": [9559], "characters": "\u2557"}, + "┌": {"codepoints": [9484], "characters": "\u250C"}, + "╒": {"codepoints": [9554], "characters": "\u2552"}, + "╓": {"codepoints": [9555], "characters": "\u2553"}, + "╔": {"codepoints": [9556], "characters": "\u2554"}, + "─": {"codepoints": [9472], "characters": "\u2500"}, + "═": {"codepoints": [9552], "characters": "\u2550"}, + "┬": {"codepoints": [9516], "characters": "\u252C"}, + "╤": {"codepoints": [9572], "characters": "\u2564"}, + "╥": {"codepoints": [9573], "characters": "\u2565"}, + "╦": {"codepoints": [9574], "characters": "\u2566"}, + "┴": {"codepoints": [9524], "characters": "\u2534"}, + "╧": {"codepoints": [9575], "characters": "\u2567"}, + "╨": {"codepoints": [9576], "characters": "\u2568"}, + "╩": {"codepoints": [9577], "characters": "\u2569"}, + "⊟": {"codepoints": [8863], "characters": "\u229F"}, + "⊞": {"codepoints": [8862], "characters": "\u229E"}, + "⊠": {"codepoints": [8864], "characters": "\u22A0"}, + "┘": {"codepoints": [9496], "characters": "\u2518"}, + "╛": {"codepoints": [9563], "characters": "\u255B"}, + "╜": {"codepoints": [9564], "characters": "\u255C"}, + "╝": {"codepoints": [9565], "characters": "\u255D"}, + "└": {"codepoints": [9492], "characters": "\u2514"}, + "╘": {"codepoints": [9560], "characters": "\u2558"}, + "╙": {"codepoints": [9561], "characters": "\u2559"}, + "╚": {"codepoints": [9562], "characters": "\u255A"}, + "│": {"codepoints": [9474], "characters": "\u2502"}, + "║": {"codepoints": [9553], "characters": "\u2551"}, + "┼": {"codepoints": [9532], "characters": "\u253C"}, + "╪": {"codepoints": [9578], "characters": "\u256A"}, + "╫": {"codepoints": [9579], "characters": "\u256B"}, + "╬": {"codepoints": [9580], "characters": "\u256C"}, + "┤": {"codepoints": [9508], "characters": "\u2524"}, + "╡": {"codepoints": [9569], "characters": "\u2561"}, + "╢": {"codepoints": [9570], "characters": "\u2562"}, + "╣": {"codepoints": [9571], "characters": "\u2563"}, + "├": {"codepoints": [9500], "characters": "\u251C"}, + "╞": {"codepoints": [9566], "characters": "\u255E"}, + "╟": {"codepoints": [9567], "characters": "\u255F"}, + "╠": {"codepoints": [9568], "characters": "\u2560"}, + "‵": {"codepoints": [8245], "characters": "\u2035"}, + "˘": {"codepoints": [728], "characters": "\u02D8"}, + "˘": {"codepoints": [728], "characters": "\u02D8"}, + "¦": {"codepoints": [166], "characters": "\u00A6"}, + "¦": {"codepoints": [166], "characters": "\u00A6"}, + "𝒷": {"codepoints": [119991], "characters": "\uD835\uDCB7"}, + "ℬ": {"codepoints": [8492], "characters": "\u212C"}, + "⁏": {"codepoints": [8271], "characters": "\u204F"}, + "∽": {"codepoints": [8765], "characters": "\u223D"}, + "⋍": {"codepoints": [8909], "characters": "\u22CD"}, + "⧅": {"codepoints": [10693], "characters": "\u29C5"}, + "\": {"codepoints": [92], "characters": "\u005C"}, + "⟈": {"codepoints": [10184], "characters": "\u27C8"}, + "•": {"codepoints": [8226], "characters": "\u2022"}, + "•": {"codepoints": [8226], "characters": "\u2022"}, + "≎": {"codepoints": [8782], "characters": "\u224E"}, + "⪮": {"codepoints": [10926], "characters": "\u2AAE"}, + "≏": {"codepoints": [8783], "characters": "\u224F"}, + "≎": {"codepoints": [8782], "characters": "\u224E"}, + "≏": {"codepoints": [8783], "characters": "\u224F"}, + "Ć": {"codepoints": [262], "characters": "\u0106"}, + "ć": {"codepoints": [263], "characters": "\u0107"}, + "⩄": {"codepoints": [10820], "characters": "\u2A44"}, + "⩉": {"codepoints": [10825], "characters": "\u2A49"}, + "⩋": {"codepoints": [10827], "characters": "\u2A4B"}, + "∩": {"codepoints": [8745], "characters": "\u2229"}, + "⋒": {"codepoints": [8914], "characters": "\u22D2"}, + "⩇": {"codepoints": [10823], "characters": "\u2A47"}, + "⩀": {"codepoints": [10816], "characters": "\u2A40"}, + "ⅅ": {"codepoints": [8517], "characters": "\u2145"}, + "∩︀": {"codepoints": [8745, 65024], "characters": "\u2229\uFE00"}, + "⁁": {"codepoints": [8257], "characters": "\u2041"}, + "ˇ": {"codepoints": [711], "characters": "\u02C7"}, + "ℭ": {"codepoints": [8493], "characters": "\u212D"}, + "⩍": {"codepoints": [10829], "characters": "\u2A4D"}, + "Č": {"codepoints": [268], "characters": "\u010C"}, + "č": {"codepoints": [269], "characters": "\u010D"}, + "Ç": {"codepoints": [199], "characters": "\u00C7"}, + "Ç": {"codepoints": [199], "characters": "\u00C7"}, + "ç": {"codepoints": [231], "characters": "\u00E7"}, + "ç": {"codepoints": [231], "characters": "\u00E7"}, + "Ĉ": {"codepoints": [264], "characters": "\u0108"}, + "ĉ": {"codepoints": [265], "characters": "\u0109"}, + "∰": {"codepoints": [8752], "characters": "\u2230"}, + "⩌": {"codepoints": [10828], "characters": "\u2A4C"}, + "⩐": {"codepoints": [10832], "characters": "\u2A50"}, + "Ċ": {"codepoints": [266], "characters": "\u010A"}, + "ċ": {"codepoints": [267], "characters": "\u010B"}, + "¸": {"codepoints": [184], "characters": "\u00B8"}, + "¸": {"codepoints": [184], "characters": "\u00B8"}, + "¸": {"codepoints": [184], "characters": "\u00B8"}, + "⦲": {"codepoints": [10674], "characters": "\u29B2"}, + "¢": {"codepoints": [162], "characters": "\u00A2"}, + "¢": {"codepoints": [162], "characters": "\u00A2"}, + "·": {"codepoints": [183], "characters": "\u00B7"}, + "·": {"codepoints": [183], "characters": "\u00B7"}, + "𝔠": {"codepoints": [120096], "characters": "\uD835\uDD20"}, + "ℭ": {"codepoints": [8493], "characters": "\u212D"}, + "Ч": {"codepoints": [1063], "characters": "\u0427"}, + "ч": {"codepoints": [1095], "characters": "\u0447"}, + "✓": {"codepoints": [10003], "characters": "\u2713"}, + "✓": {"codepoints": [10003], "characters": "\u2713"}, + "Χ": {"codepoints": [935], "characters": "\u03A7"}, + "χ": {"codepoints": [967], "characters": "\u03C7"}, + "ˆ": {"codepoints": [710], "characters": "\u02C6"}, + "≗": {"codepoints": [8791], "characters": "\u2257"}, + "↺": {"codepoints": [8634], "characters": "\u21BA"}, + "↻": {"codepoints": [8635], "characters": "\u21BB"}, + "⊛": {"codepoints": [8859], "characters": "\u229B"}, + "⊚": {"codepoints": [8858], "characters": "\u229A"}, + "⊝": {"codepoints": [8861], "characters": "\u229D"}, + "⊙": {"codepoints": [8857], "characters": "\u2299"}, + "®": {"codepoints": [174], "characters": "\u00AE"}, + "Ⓢ": {"codepoints": [9416], "characters": "\u24C8"}, + "⊖": {"codepoints": [8854], "characters": "\u2296"}, + "⊕": {"codepoints": [8853], "characters": "\u2295"}, + "⊗": {"codepoints": [8855], "characters": "\u2297"}, + "○": {"codepoints": [9675], "characters": "\u25CB"}, + "⧃": {"codepoints": [10691], "characters": "\u29C3"}, + "≗": {"codepoints": [8791], "characters": "\u2257"}, + "⨐": {"codepoints": [10768], "characters": "\u2A10"}, + "⫯": {"codepoints": [10991], "characters": "\u2AEF"}, + "⧂": {"codepoints": [10690], "characters": "\u29C2"}, + "∲": {"codepoints": [8754], "characters": "\u2232"}, + "”": {"codepoints": [8221], "characters": "\u201D"}, + "’": {"codepoints": [8217], "characters": "\u2019"}, + "♣": {"codepoints": [9827], "characters": "\u2663"}, + "♣": {"codepoints": [9827], "characters": "\u2663"}, + ":": {"codepoints": [58], "characters": "\u003A"}, + "∷": {"codepoints": [8759], "characters": "\u2237"}, + "⩴": {"codepoints": [10868], "characters": "\u2A74"}, + "≔": {"codepoints": [8788], "characters": "\u2254"}, + "≔": {"codepoints": [8788], "characters": "\u2254"}, + ",": {"codepoints": [44], "characters": "\u002C"}, + "@": {"codepoints": [64], "characters": "\u0040"}, + "∁": {"codepoints": [8705], "characters": "\u2201"}, + "∘": {"codepoints": [8728], "characters": "\u2218"}, + "∁": {"codepoints": [8705], "characters": "\u2201"}, + "ℂ": {"codepoints": [8450], "characters": "\u2102"}, + "≅": {"codepoints": [8773], "characters": "\u2245"}, + "⩭": {"codepoints": [10861], "characters": "\u2A6D"}, + "≡": {"codepoints": [8801], "characters": "\u2261"}, + "∮": {"codepoints": [8750], "characters": "\u222E"}, + "∯": {"codepoints": [8751], "characters": "\u222F"}, + "∮": {"codepoints": [8750], "characters": "\u222E"}, + "𝕔": {"codepoints": [120148], "characters": "\uD835\uDD54"}, + "ℂ": {"codepoints": [8450], "characters": "\u2102"}, + "∐": {"codepoints": [8720], "characters": "\u2210"}, + "∐": {"codepoints": [8720], "characters": "\u2210"}, + "©": {"codepoints": [169], "characters": "\u00A9"}, + "©": {"codepoints": [169], "characters": "\u00A9"}, + "©": {"codepoints": [169], "characters": "\u00A9"}, + "©": {"codepoints": [169], "characters": "\u00A9"}, + "℗": {"codepoints": [8471], "characters": "\u2117"}, + "∳": {"codepoints": [8755], "characters": "\u2233"}, + "↵": {"codepoints": [8629], "characters": "\u21B5"}, + "✗": {"codepoints": [10007], "characters": "\u2717"}, + "⨯": {"codepoints": [10799], "characters": "\u2A2F"}, + "𝒞": {"codepoints": [119966], "characters": "\uD835\uDC9E"}, + "𝒸": {"codepoints": [119992], "characters": "\uD835\uDCB8"}, + "⫏": {"codepoints": [10959], "characters": "\u2ACF"}, + "⫑": {"codepoints": [10961], "characters": "\u2AD1"}, + "⫐": {"codepoints": [10960], "characters": "\u2AD0"}, + "⫒": {"codepoints": [10962], "characters": "\u2AD2"}, + "⋯": {"codepoints": [8943], "characters": "\u22EF"}, + "⤸": {"codepoints": [10552], "characters": "\u2938"}, + "⤵": {"codepoints": [10549], "characters": "\u2935"}, + "⋞": {"codepoints": [8926], "characters": "\u22DE"}, + "⋟": {"codepoints": [8927], "characters": "\u22DF"}, + "↶": {"codepoints": [8630], "characters": "\u21B6"}, + "⤽": {"codepoints": [10557], "characters": "\u293D"}, + "⩈": {"codepoints": [10824], "characters": "\u2A48"}, + "⩆": {"codepoints": [10822], "characters": "\u2A46"}, + "≍": {"codepoints": [8781], "characters": "\u224D"}, + "∪": {"codepoints": [8746], "characters": "\u222A"}, + "⋓": {"codepoints": [8915], "characters": "\u22D3"}, + "⩊": {"codepoints": [10826], "characters": "\u2A4A"}, + "⊍": {"codepoints": [8845], "characters": "\u228D"}, + "⩅": {"codepoints": [10821], "characters": "\u2A45"}, + "∪︀": {"codepoints": [8746, 65024], "characters": "\u222A\uFE00"}, + "↷": {"codepoints": [8631], "characters": "\u21B7"}, + "⤼": {"codepoints": [10556], "characters": "\u293C"}, + "⋞": {"codepoints": [8926], "characters": "\u22DE"}, + "⋟": {"codepoints": [8927], "characters": "\u22DF"}, + "⋎": {"codepoints": [8910], "characters": "\u22CE"}, + "⋏": {"codepoints": [8911], "characters": "\u22CF"}, + "¤": {"codepoints": [164], "characters": "\u00A4"}, + "¤": {"codepoints": [164], "characters": "\u00A4"}, + "↶": {"codepoints": [8630], "characters": "\u21B6"}, + "↷": {"codepoints": [8631], "characters": "\u21B7"}, + "⋎": {"codepoints": [8910], "characters": "\u22CE"}, + "⋏": {"codepoints": [8911], "characters": "\u22CF"}, + "∲": {"codepoints": [8754], "characters": "\u2232"}, + "∱": {"codepoints": [8753], "characters": "\u2231"}, + "⌭": {"codepoints": [9005], "characters": "\u232D"}, + "†": {"codepoints": [8224], "characters": "\u2020"}, + "‡": {"codepoints": [8225], "characters": "\u2021"}, + "ℸ": {"codepoints": [8504], "characters": "\u2138"}, + "↓": {"codepoints": [8595], "characters": "\u2193"}, + "↡": {"codepoints": [8609], "characters": "\u21A1"}, + "⇓": {"codepoints": [8659], "characters": "\u21D3"}, + "‐": {"codepoints": [8208], "characters": "\u2010"}, + "⫤": {"codepoints": [10980], "characters": "\u2AE4"}, + "⊣": {"codepoints": [8867], "characters": "\u22A3"}, + "⤏": {"codepoints": [10511], "characters": "\u290F"}, + "˝": {"codepoints": [733], "characters": "\u02DD"}, + "Ď": {"codepoints": [270], "characters": "\u010E"}, + "ď": {"codepoints": [271], "characters": "\u010F"}, + "Д": {"codepoints": [1044], "characters": "\u0414"}, + "д": {"codepoints": [1076], "characters": "\u0434"}, + "‡": {"codepoints": [8225], "characters": "\u2021"}, + "⇊": {"codepoints": [8650], "characters": "\u21CA"}, + "ⅅ": {"codepoints": [8517], "characters": "\u2145"}, + "ⅆ": {"codepoints": [8518], "characters": "\u2146"}, + "⤑": {"codepoints": [10513], "characters": "\u2911"}, + "⩷": {"codepoints": [10871], "characters": "\u2A77"}, + "°": {"codepoints": [176], "characters": "\u00B0"}, + "°": {"codepoints": [176], "characters": "\u00B0"}, + "∇": {"codepoints": [8711], "characters": "\u2207"}, + "Δ": {"codepoints": [916], "characters": "\u0394"}, + "δ": {"codepoints": [948], "characters": "\u03B4"}, + "⦱": {"codepoints": [10673], "characters": "\u29B1"}, + "⥿": {"codepoints": [10623], "characters": "\u297F"}, + "𝔇": {"codepoints": [120071], "characters": "\uD835\uDD07"}, + "𝔡": {"codepoints": [120097], "characters": "\uD835\uDD21"}, + "⥥": {"codepoints": [10597], "characters": "\u2965"}, + "⇃": {"codepoints": [8643], "characters": "\u21C3"}, + "⇂": {"codepoints": [8642], "characters": "\u21C2"}, + "´": {"codepoints": [180], "characters": "\u00B4"}, + "˙": {"codepoints": [729], "characters": "\u02D9"}, + "˝": {"codepoints": [733], "characters": "\u02DD"}, + "`": {"codepoints": [96], "characters": "\u0060"}, + "˜": {"codepoints": [732], "characters": "\u02DC"}, + "⋄": {"codepoints": [8900], "characters": "\u22C4"}, + "⋄": {"codepoints": [8900], "characters": "\u22C4"}, + "⋄": {"codepoints": [8900], "characters": "\u22C4"}, + "♦": {"codepoints": [9830], "characters": "\u2666"}, + "♦": {"codepoints": [9830], "characters": "\u2666"}, + "¨": {"codepoints": [168], "characters": "\u00A8"}, + "ⅆ": {"codepoints": [8518], "characters": "\u2146"}, + "ϝ": {"codepoints": [989], "characters": "\u03DD"}, + "⋲": {"codepoints": [8946], "characters": "\u22F2"}, + "÷": {"codepoints": [247], "characters": "\u00F7"}, + "÷": {"codepoints": [247], "characters": "\u00F7"}, + "÷": {"codepoints": [247], "characters": "\u00F7"}, + "⋇": {"codepoints": [8903], "characters": "\u22C7"}, + "⋇": {"codepoints": [8903], "characters": "\u22C7"}, + "Ђ": {"codepoints": [1026], "characters": "\u0402"}, + "ђ": {"codepoints": [1106], "characters": "\u0452"}, + "⌞": {"codepoints": [8990], "characters": "\u231E"}, + "⌍": {"codepoints": [8973], "characters": "\u230D"}, + "$": {"codepoints": [36], "characters": "\u0024"}, + "𝔻": {"codepoints": [120123], "characters": "\uD835\uDD3B"}, + "𝕕": {"codepoints": [120149], "characters": "\uD835\uDD55"}, + "¨": {"codepoints": [168], "characters": "\u00A8"}, + "˙": {"codepoints": [729], "characters": "\u02D9"}, + "⃜": {"codepoints": [8412], "characters": "\u20DC"}, + "≐": {"codepoints": [8784], "characters": "\u2250"}, + "≑": {"codepoints": [8785], "characters": "\u2251"}, + "≐": {"codepoints": [8784], "characters": "\u2250"}, + "∸": {"codepoints": [8760], "characters": "\u2238"}, + "∔": {"codepoints": [8724], "characters": "\u2214"}, + "⊡": {"codepoints": [8865], "characters": "\u22A1"}, + "⌆": {"codepoints": [8966], "characters": "\u2306"}, + "∯": {"codepoints": [8751], "characters": "\u222F"}, + "¨": {"codepoints": [168], "characters": "\u00A8"}, + "⇓": {"codepoints": [8659], "characters": "\u21D3"}, + "⇐": {"codepoints": [8656], "characters": "\u21D0"}, + "⇔": {"codepoints": [8660], "characters": "\u21D4"}, + "⫤": {"codepoints": [10980], "characters": "\u2AE4"}, + "⟸": {"codepoints": [10232], "characters": "\u27F8"}, + "⟺": {"codepoints": [10234], "characters": "\u27FA"}, + "⟹": {"codepoints": [10233], "characters": "\u27F9"}, + "⇒": {"codepoints": [8658], "characters": "\u21D2"}, + "⊨": {"codepoints": [8872], "characters": "\u22A8"}, + "⇑": {"codepoints": [8657], "characters": "\u21D1"}, + "⇕": {"codepoints": [8661], "characters": "\u21D5"}, + "∥": {"codepoints": [8741], "characters": "\u2225"}, + "⤓": {"codepoints": [10515], "characters": "\u2913"}, + "↓": {"codepoints": [8595], "characters": "\u2193"}, + "↓": {"codepoints": [8595], "characters": "\u2193"}, + "⇓": {"codepoints": [8659], "characters": "\u21D3"}, + "⇵": {"codepoints": [8693], "characters": "\u21F5"}, + "̑": {"codepoints": [785], "characters": "\u0311"}, + "⇊": {"codepoints": [8650], "characters": "\u21CA"}, + "⇃": {"codepoints": [8643], "characters": "\u21C3"}, + "⇂": {"codepoints": [8642], "characters": "\u21C2"}, + "⥐": {"codepoints": [10576], "characters": "\u2950"}, + "⥞": {"codepoints": [10590], "characters": "\u295E"}, + "⥖": {"codepoints": [10582], "characters": "\u2956"}, + "↽": {"codepoints": [8637], "characters": "\u21BD"}, + "⥟": {"codepoints": [10591], "characters": "\u295F"}, + "⥗": {"codepoints": [10583], "characters": "\u2957"}, + "⇁": {"codepoints": [8641], "characters": "\u21C1"}, + "↧": {"codepoints": [8615], "characters": "\u21A7"}, + "⊤": {"codepoints": [8868], "characters": "\u22A4"}, + "⤐": {"codepoints": [10512], "characters": "\u2910"}, + "⌟": {"codepoints": [8991], "characters": "\u231F"}, + "⌌": {"codepoints": [8972], "characters": "\u230C"}, + "𝒟": {"codepoints": [119967], "characters": "\uD835\uDC9F"}, + "𝒹": {"codepoints": [119993], "characters": "\uD835\uDCB9"}, + "Ѕ": {"codepoints": [1029], "characters": "\u0405"}, + "ѕ": {"codepoints": [1109], "characters": "\u0455"}, + "⧶": {"codepoints": [10742], "characters": "\u29F6"}, + "Đ": {"codepoints": [272], "characters": "\u0110"}, + "đ": {"codepoints": [273], "characters": "\u0111"}, + "⋱": {"codepoints": [8945], "characters": "\u22F1"}, + "▿": {"codepoints": [9663], "characters": "\u25BF"}, + "▾": {"codepoints": [9662], "characters": "\u25BE"}, + "⇵": {"codepoints": [8693], "characters": "\u21F5"}, + "⥯": {"codepoints": [10607], "characters": "\u296F"}, + "⦦": {"codepoints": [10662], "characters": "\u29A6"}, + "Џ": {"codepoints": [1039], "characters": "\u040F"}, + "џ": {"codepoints": [1119], "characters": "\u045F"}, + "⟿": {"codepoints": [10239], "characters": "\u27FF"}, + "É": {"codepoints": [201], "characters": "\u00C9"}, + "É": {"codepoints": [201], "characters": "\u00C9"}, + "é": {"codepoints": [233], "characters": "\u00E9"}, + "é": {"codepoints": [233], "characters": "\u00E9"}, + "⩮": {"codepoints": [10862], "characters": "\u2A6E"}, + "Ě": {"codepoints": [282], "characters": "\u011A"}, + "ě": {"codepoints": [283], "characters": "\u011B"}, + "Ê": {"codepoints": [202], "characters": "\u00CA"}, + "Ê": {"codepoints": [202], "characters": "\u00CA"}, + "ê": {"codepoints": [234], "characters": "\u00EA"}, + "ê": {"codepoints": [234], "characters": "\u00EA"}, + "≖": {"codepoints": [8790], "characters": "\u2256"}, + "≕": {"codepoints": [8789], "characters": "\u2255"}, + "Э": {"codepoints": [1069], "characters": "\u042D"}, + "э": {"codepoints": [1101], "characters": "\u044D"}, + "⩷": {"codepoints": [10871], "characters": "\u2A77"}, + "Ė": {"codepoints": [278], "characters": "\u0116"}, + "ė": {"codepoints": [279], "characters": "\u0117"}, + "≑": {"codepoints": [8785], "characters": "\u2251"}, + "ⅇ": {"codepoints": [8519], "characters": "\u2147"}, + "≒": {"codepoints": [8786], "characters": "\u2252"}, + "𝔈": {"codepoints": [120072], "characters": "\uD835\uDD08"}, + "𝔢": {"codepoints": [120098], "characters": "\uD835\uDD22"}, + "⪚": {"codepoints": [10906], "characters": "\u2A9A"}, + "È": {"codepoints": [200], "characters": "\u00C8"}, + "È": {"codepoints": [200], "characters": "\u00C8"}, + "è": {"codepoints": [232], "characters": "\u00E8"}, + "è": {"codepoints": [232], "characters": "\u00E8"}, + "⪖": {"codepoints": [10902], "characters": "\u2A96"}, + "⪘": {"codepoints": [10904], "characters": "\u2A98"}, + "⪙": {"codepoints": [10905], "characters": "\u2A99"}, + "∈": {"codepoints": [8712], "characters": "\u2208"}, + "⏧": {"codepoints": [9191], "characters": "\u23E7"}, + "ℓ": {"codepoints": [8467], "characters": "\u2113"}, + "⪕": {"codepoints": [10901], "characters": "\u2A95"}, + "⪗": {"codepoints": [10903], "characters": "\u2A97"}, + "Ē": {"codepoints": [274], "characters": "\u0112"}, + "ē": {"codepoints": [275], "characters": "\u0113"}, + "∅": {"codepoints": [8709], "characters": "\u2205"}, + "∅": {"codepoints": [8709], "characters": "\u2205"}, + "◻": {"codepoints": [9723], "characters": "\u25FB"}, + "∅": {"codepoints": [8709], "characters": "\u2205"}, + "▫": {"codepoints": [9643], "characters": "\u25AB"}, + " ": {"codepoints": [8196], "characters": "\u2004"}, + " ": {"codepoints": [8197], "characters": "\u2005"}, + " ": {"codepoints": [8195], "characters": "\u2003"}, + "Ŋ": {"codepoints": [330], "characters": "\u014A"}, + "ŋ": {"codepoints": [331], "characters": "\u014B"}, + " ": {"codepoints": [8194], "characters": "\u2002"}, + "Ę": {"codepoints": [280], "characters": "\u0118"}, + "ę": {"codepoints": [281], "characters": "\u0119"}, + "𝔼": {"codepoints": [120124], "characters": "\uD835\uDD3C"}, + "𝕖": {"codepoints": [120150], "characters": "\uD835\uDD56"}, + "⋕": {"codepoints": [8917], "characters": "\u22D5"}, + "⧣": {"codepoints": [10723], "characters": "\u29E3"}, + "⩱": {"codepoints": [10865], "characters": "\u2A71"}, + "ε": {"codepoints": [949], "characters": "\u03B5"}, + "Ε": {"codepoints": [917], "characters": "\u0395"}, + "ε": {"codepoints": [949], "characters": "\u03B5"}, + "ϵ": {"codepoints": [1013], "characters": "\u03F5"}, + "≖": {"codepoints": [8790], "characters": "\u2256"}, + "≕": {"codepoints": [8789], "characters": "\u2255"}, + "≂": {"codepoints": [8770], "characters": "\u2242"}, + "⪖": {"codepoints": [10902], "characters": "\u2A96"}, + "⪕": {"codepoints": [10901], "characters": "\u2A95"}, + "⩵": {"codepoints": [10869], "characters": "\u2A75"}, + "=": {"codepoints": [61], "characters": "\u003D"}, + "≂": {"codepoints": [8770], "characters": "\u2242"}, + "≟": {"codepoints": [8799], "characters": "\u225F"}, + "⇌": {"codepoints": [8652], "characters": "\u21CC"}, + "≡": {"codepoints": [8801], "characters": "\u2261"}, + "⩸": {"codepoints": [10872], "characters": "\u2A78"}, + "⧥": {"codepoints": [10725], "characters": "\u29E5"}, + "⥱": {"codepoints": [10609], "characters": "\u2971"}, + "≓": {"codepoints": [8787], "characters": "\u2253"}, + "ℯ": {"codepoints": [8495], "characters": "\u212F"}, + "ℰ": {"codepoints": [8496], "characters": "\u2130"}, + "≐": {"codepoints": [8784], "characters": "\u2250"}, + "⩳": {"codepoints": [10867], "characters": "\u2A73"}, + "≂": {"codepoints": [8770], "characters": "\u2242"}, + "Η": {"codepoints": [919], "characters": "\u0397"}, + "η": {"codepoints": [951], "characters": "\u03B7"}, + "Ð": {"codepoints": [208], "characters": "\u00D0"}, + "Ð": {"codepoints": [208], "characters": "\u00D0"}, + "ð": {"codepoints": [240], "characters": "\u00F0"}, + "ð": {"codepoints": [240], "characters": "\u00F0"}, + "Ë": {"codepoints": [203], "characters": "\u00CB"}, + "Ë": {"codepoints": [203], "characters": "\u00CB"}, + "ë": {"codepoints": [235], "characters": "\u00EB"}, + "ë": {"codepoints": [235], "characters": "\u00EB"}, + "€": {"codepoints": [8364], "characters": "\u20AC"}, + "!": {"codepoints": [33], "characters": "\u0021"}, + "∃": {"codepoints": [8707], "characters": "\u2203"}, + "∃": {"codepoints": [8707], "characters": "\u2203"}, + "ℰ": {"codepoints": [8496], "characters": "\u2130"}, + "ⅇ": {"codepoints": [8519], "characters": "\u2147"}, + "ⅇ": {"codepoints": [8519], "characters": "\u2147"}, + "≒": {"codepoints": [8786], "characters": "\u2252"}, + "Ф": {"codepoints": [1060], "characters": "\u0424"}, + "ф": {"codepoints": [1092], "characters": "\u0444"}, + "♀": {"codepoints": [9792], "characters": "\u2640"}, + "ffi": {"codepoints": [64259], "characters": "\uFB03"}, + "ff": {"codepoints": [64256], "characters": "\uFB00"}, + "ffl": {"codepoints": [64260], "characters": "\uFB04"}, + "𝔉": {"codepoints": [120073], "characters": "\uD835\uDD09"}, + "𝔣": {"codepoints": [120099], "characters": "\uD835\uDD23"}, + "fi": {"codepoints": [64257], "characters": "\uFB01"}, + "◼": {"codepoints": [9724], "characters": "\u25FC"}, + "▪": {"codepoints": [9642], "characters": "\u25AA"}, + "fj": {"codepoints": [102, 106], "characters": "\u0066\u006A"}, + "♭": {"codepoints": [9837], "characters": "\u266D"}, + "fl": {"codepoints": [64258], "characters": "\uFB02"}, + "▱": {"codepoints": [9649], "characters": "\u25B1"}, + "ƒ": {"codepoints": [402], "characters": "\u0192"}, + "𝔽": {"codepoints": [120125], "characters": "\uD835\uDD3D"}, + "𝕗": {"codepoints": [120151], "characters": "\uD835\uDD57"}, + "∀": {"codepoints": [8704], "characters": "\u2200"}, + "∀": {"codepoints": [8704], "characters": "\u2200"}, + "⋔": {"codepoints": [8916], "characters": "\u22D4"}, + "⫙": {"codepoints": [10969], "characters": "\u2AD9"}, + "ℱ": {"codepoints": [8497], "characters": "\u2131"}, + "⨍": {"codepoints": [10765], "characters": "\u2A0D"}, + "½": {"codepoints": [189], "characters": "\u00BD"}, + "½": {"codepoints": [189], "characters": "\u00BD"}, + "⅓": {"codepoints": [8531], "characters": "\u2153"}, + "¼": {"codepoints": [188], "characters": "\u00BC"}, + "¼": {"codepoints": [188], "characters": "\u00BC"}, + "⅕": {"codepoints": [8533], "characters": "\u2155"}, + "⅙": {"codepoints": [8537], "characters": "\u2159"}, + "⅛": {"codepoints": [8539], "characters": "\u215B"}, + "⅔": {"codepoints": [8532], "characters": "\u2154"}, + "⅖": {"codepoints": [8534], "characters": "\u2156"}, + "¾": {"codepoints": [190], "characters": "\u00BE"}, + "¾": {"codepoints": [190], "characters": "\u00BE"}, + "⅗": {"codepoints": [8535], "characters": "\u2157"}, + "⅜": {"codepoints": [8540], "characters": "\u215C"}, + "⅘": {"codepoints": [8536], "characters": "\u2158"}, + "⅚": {"codepoints": [8538], "characters": "\u215A"}, + "⅝": {"codepoints": [8541], "characters": "\u215D"}, + "⅞": {"codepoints": [8542], "characters": "\u215E"}, + "⁄": {"codepoints": [8260], "characters": "\u2044"}, + "⌢": {"codepoints": [8994], "characters": "\u2322"}, + "𝒻": {"codepoints": [119995], "characters": "\uD835\uDCBB"}, + "ℱ": {"codepoints": [8497], "characters": "\u2131"}, + "ǵ": {"codepoints": [501], "characters": "\u01F5"}, + "Γ": {"codepoints": [915], "characters": "\u0393"}, + "γ": {"codepoints": [947], "characters": "\u03B3"}, + "Ϝ": {"codepoints": [988], "characters": "\u03DC"}, + "ϝ": {"codepoints": [989], "characters": "\u03DD"}, + "⪆": {"codepoints": [10886], "characters": "\u2A86"}, + "Ğ": {"codepoints": [286], "characters": "\u011E"}, + "ğ": {"codepoints": [287], "characters": "\u011F"}, + "Ģ": {"codepoints": [290], "characters": "\u0122"}, + "Ĝ": {"codepoints": [284], "characters": "\u011C"}, + "ĝ": {"codepoints": [285], "characters": "\u011D"}, + "Г": {"codepoints": [1043], "characters": "\u0413"}, + "г": {"codepoints": [1075], "characters": "\u0433"}, + "Ġ": {"codepoints": [288], "characters": "\u0120"}, + "ġ": {"codepoints": [289], "characters": "\u0121"}, + "≥": {"codepoints": [8805], "characters": "\u2265"}, + "≧": {"codepoints": [8807], "characters": "\u2267"}, + "⪌": {"codepoints": [10892], "characters": "\u2A8C"}, + "⋛": {"codepoints": [8923], "characters": "\u22DB"}, + "≥": {"codepoints": [8805], "characters": "\u2265"}, + "≧": {"codepoints": [8807], "characters": "\u2267"}, + "⩾": {"codepoints": [10878], "characters": "\u2A7E"}, + "⪩": {"codepoints": [10921], "characters": "\u2AA9"}, + "⩾": {"codepoints": [10878], "characters": "\u2A7E"}, + "⪀": {"codepoints": [10880], "characters": "\u2A80"}, + "⪂": {"codepoints": [10882], "characters": "\u2A82"}, + "⪄": {"codepoints": [10884], "characters": "\u2A84"}, + "⋛︀": {"codepoints": [8923, 65024], "characters": "\u22DB\uFE00"}, + "⪔": {"codepoints": [10900], "characters": "\u2A94"}, + "𝔊": {"codepoints": [120074], "characters": "\uD835\uDD0A"}, + "𝔤": {"codepoints": [120100], "characters": "\uD835\uDD24"}, + "≫": {"codepoints": [8811], "characters": "\u226B"}, + "⋙": {"codepoints": [8921], "characters": "\u22D9"}, + "⋙": {"codepoints": [8921], "characters": "\u22D9"}, + "ℷ": {"codepoints": [8503], "characters": "\u2137"}, + "Ѓ": {"codepoints": [1027], "characters": "\u0403"}, + "ѓ": {"codepoints": [1107], "characters": "\u0453"}, + "⪥": {"codepoints": [10917], "characters": "\u2AA5"}, + "≷": {"codepoints": [8823], "characters": "\u2277"}, + "⪒": {"codepoints": [10898], "characters": "\u2A92"}, + "⪤": {"codepoints": [10916], "characters": "\u2AA4"}, + "⪊": {"codepoints": [10890], "characters": "\u2A8A"}, + "⪊": {"codepoints": [10890], "characters": "\u2A8A"}, + "⪈": {"codepoints": [10888], "characters": "\u2A88"}, + "≩": {"codepoints": [8809], "characters": "\u2269"}, + "⪈": {"codepoints": [10888], "characters": "\u2A88"}, + "≩": {"codepoints": [8809], "characters": "\u2269"}, + "⋧": {"codepoints": [8935], "characters": "\u22E7"}, + "𝔾": {"codepoints": [120126], "characters": "\uD835\uDD3E"}, + "𝕘": {"codepoints": [120152], "characters": "\uD835\uDD58"}, + "`": {"codepoints": [96], "characters": "\u0060"}, + "≥": {"codepoints": [8805], "characters": "\u2265"}, + "⋛": {"codepoints": [8923], "characters": "\u22DB"}, + "≧": {"codepoints": [8807], "characters": "\u2267"}, + "⪢": {"codepoints": [10914], "characters": "\u2AA2"}, + "≷": {"codepoints": [8823], "characters": "\u2277"}, + "⩾": {"codepoints": [10878], "characters": "\u2A7E"}, + "≳": {"codepoints": [8819], "characters": "\u2273"}, + "𝒢": {"codepoints": [119970], "characters": "\uD835\uDCA2"}, + "ℊ": {"codepoints": [8458], "characters": "\u210A"}, + "≳": {"codepoints": [8819], "characters": "\u2273"}, + "⪎": {"codepoints": [10894], "characters": "\u2A8E"}, + "⪐": {"codepoints": [10896], "characters": "\u2A90"}, + "⪧": {"codepoints": [10919], "characters": "\u2AA7"}, + "⩺": {"codepoints": [10874], "characters": "\u2A7A"}, + ">": {"codepoints": [62], "characters": "\u003E"}, + ">": {"codepoints": [62], "characters": "\u003E"}, + ">": {"codepoints": [62], "characters": "\u003E"}, + ">": {"codepoints": [62], "characters": "\u003E"}, + "≫": {"codepoints": [8811], "characters": "\u226B"}, + "⋗": {"codepoints": [8919], "characters": "\u22D7"}, + "⦕": {"codepoints": [10645], "characters": "\u2995"}, + "⩼": {"codepoints": [10876], "characters": "\u2A7C"}, + "⪆": {"codepoints": [10886], "characters": "\u2A86"}, + "⥸": {"codepoints": [10616], "characters": "\u2978"}, + "⋗": {"codepoints": [8919], "characters": "\u22D7"}, + "⋛": {"codepoints": [8923], "characters": "\u22DB"}, + "⪌": {"codepoints": [10892], "characters": "\u2A8C"}, + "≷": {"codepoints": [8823], "characters": "\u2277"}, + "≳": {"codepoints": [8819], "characters": "\u2273"}, + "≩︀": {"codepoints": [8809, 65024], "characters": "\u2269\uFE00"}, + "≩︀": {"codepoints": [8809, 65024], "characters": "\u2269\uFE00"}, + "ˇ": {"codepoints": [711], "characters": "\u02C7"}, + " ": {"codepoints": [8202], "characters": "\u200A"}, + "½": {"codepoints": [189], "characters": "\u00BD"}, + "ℋ": {"codepoints": [8459], "characters": "\u210B"}, + "Ъ": {"codepoints": [1066], "characters": "\u042A"}, + "ъ": {"codepoints": [1098], "characters": "\u044A"}, + "⥈": {"codepoints": [10568], "characters": "\u2948"}, + "↔": {"codepoints": [8596], "characters": "\u2194"}, + "⇔": {"codepoints": [8660], "characters": "\u21D4"}, + "↭": {"codepoints": [8621], "characters": "\u21AD"}, + "^": {"codepoints": [94], "characters": "\u005E"}, + "ℏ": {"codepoints": [8463], "characters": "\u210F"}, + "Ĥ": {"codepoints": [292], "characters": "\u0124"}, + "ĥ": {"codepoints": [293], "characters": "\u0125"}, + "♥": {"codepoints": [9829], "characters": "\u2665"}, + "♥": {"codepoints": [9829], "characters": "\u2665"}, + "…": {"codepoints": [8230], "characters": "\u2026"}, + "⊹": {"codepoints": [8889], "characters": "\u22B9"}, + "𝔥": {"codepoints": [120101], "characters": "\uD835\uDD25"}, + "ℌ": {"codepoints": [8460], "characters": "\u210C"}, + "ℋ": {"codepoints": [8459], "characters": "\u210B"}, + "⤥": {"codepoints": [10533], "characters": "\u2925"}, + "⤦": {"codepoints": [10534], "characters": "\u2926"}, + "⇿": {"codepoints": [8703], "characters": "\u21FF"}, + "∻": {"codepoints": [8763], "characters": "\u223B"}, + "↩": {"codepoints": [8617], "characters": "\u21A9"}, + "↪": {"codepoints": [8618], "characters": "\u21AA"}, + "𝕙": {"codepoints": [120153], "characters": "\uD835\uDD59"}, + "ℍ": {"codepoints": [8461], "characters": "\u210D"}, + "―": {"codepoints": [8213], "characters": "\u2015"}, + "─": {"codepoints": [9472], "characters": "\u2500"}, + "𝒽": {"codepoints": [119997], "characters": "\uD835\uDCBD"}, + "ℋ": {"codepoints": [8459], "characters": "\u210B"}, + "ℏ": {"codepoints": [8463], "characters": "\u210F"}, + "Ħ": {"codepoints": [294], "characters": "\u0126"}, + "ħ": {"codepoints": [295], "characters": "\u0127"}, + "≎": {"codepoints": [8782], "characters": "\u224E"}, + "≏": {"codepoints": [8783], "characters": "\u224F"}, + "⁃": {"codepoints": [8259], "characters": "\u2043"}, + "‐": {"codepoints": [8208], "characters": "\u2010"}, + "Í": {"codepoints": [205], "characters": "\u00CD"}, + "Í": {"codepoints": [205], "characters": "\u00CD"}, + "í": {"codepoints": [237], "characters": "\u00ED"}, + "í": {"codepoints": [237], "characters": "\u00ED"}, + "⁣": {"codepoints": [8291], "characters": "\u2063"}, + "Î": {"codepoints": [206], "characters": "\u00CE"}, + "Î": {"codepoints": [206], "characters": "\u00CE"}, + "î": {"codepoints": [238], "characters": "\u00EE"}, + "î": {"codepoints": [238], "characters": "\u00EE"}, + "И": {"codepoints": [1048], "characters": "\u0418"}, + "и": {"codepoints": [1080], "characters": "\u0438"}, + "İ": {"codepoints": [304], "characters": "\u0130"}, + "Е": {"codepoints": [1045], "characters": "\u0415"}, + "е": {"codepoints": [1077], "characters": "\u0435"}, + "¡": {"codepoints": [161], "characters": "\u00A1"}, + "¡": {"codepoints": [161], "characters": "\u00A1"}, + "⇔": {"codepoints": [8660], "characters": "\u21D4"}, + "𝔦": {"codepoints": [120102], "characters": "\uD835\uDD26"}, + "ℑ": {"codepoints": [8465], "characters": "\u2111"}, + "Ì": {"codepoints": [204], "characters": "\u00CC"}, + "Ì": {"codepoints": [204], "characters": "\u00CC"}, + "ì": {"codepoints": [236], "characters": "\u00EC"}, + "ì": {"codepoints": [236], "characters": "\u00EC"}, + "ⅈ": {"codepoints": [8520], "characters": "\u2148"}, + "⨌": {"codepoints": [10764], "characters": "\u2A0C"}, + "∭": {"codepoints": [8749], "characters": "\u222D"}, + "⧜": {"codepoints": [10716], "characters": "\u29DC"}, + "℩": {"codepoints": [8489], "characters": "\u2129"}, + "IJ": {"codepoints": [306], "characters": "\u0132"}, + "ij": {"codepoints": [307], "characters": "\u0133"}, + "Ī": {"codepoints": [298], "characters": "\u012A"}, + "ī": {"codepoints": [299], "characters": "\u012B"}, + "ℑ": {"codepoints": [8465], "characters": "\u2111"}, + "ⅈ": {"codepoints": [8520], "characters": "\u2148"}, + "ℐ": {"codepoints": [8464], "characters": "\u2110"}, + "ℑ": {"codepoints": [8465], "characters": "\u2111"}, + "ı": {"codepoints": [305], "characters": "\u0131"}, + "ℑ": {"codepoints": [8465], "characters": "\u2111"}, + "⊷": {"codepoints": [8887], "characters": "\u22B7"}, + "Ƶ": {"codepoints": [437], "characters": "\u01B5"}, + "⇒": {"codepoints": [8658], "characters": "\u21D2"}, + "℅": {"codepoints": [8453], "characters": "\u2105"}, + "∈": {"codepoints": [8712], "characters": "\u2208"}, + "∞": {"codepoints": [8734], "characters": "\u221E"}, + "⧝": {"codepoints": [10717], "characters": "\u29DD"}, + "ı": {"codepoints": [305], "characters": "\u0131"}, + "⊺": {"codepoints": [8890], "characters": "\u22BA"}, + "∫": {"codepoints": [8747], "characters": "\u222B"}, + "∬": {"codepoints": [8748], "characters": "\u222C"}, + "ℤ": {"codepoints": [8484], "characters": "\u2124"}, + "∫": {"codepoints": [8747], "characters": "\u222B"}, + "⊺": {"codepoints": [8890], "characters": "\u22BA"}, + "⋂": {"codepoints": [8898], "characters": "\u22C2"}, + "⨗": {"codepoints": [10775], "characters": "\u2A17"}, + "⨼": {"codepoints": [10812], "characters": "\u2A3C"}, + "⁣": {"codepoints": [8291], "characters": "\u2063"}, + "⁢": {"codepoints": [8290], "characters": "\u2062"}, + "Ё": {"codepoints": [1025], "characters": "\u0401"}, + "ё": {"codepoints": [1105], "characters": "\u0451"}, + "Į": {"codepoints": [302], "characters": "\u012E"}, + "į": {"codepoints": [303], "characters": "\u012F"}, + "𝕀": {"codepoints": [120128], "characters": "\uD835\uDD40"}, + "𝕚": {"codepoints": [120154], "characters": "\uD835\uDD5A"}, + "Ι": {"codepoints": [921], "characters": "\u0399"}, + "ι": {"codepoints": [953], "characters": "\u03B9"}, + "⨼": {"codepoints": [10812], "characters": "\u2A3C"}, + "¿": {"codepoints": [191], "characters": "\u00BF"}, + "¿": {"codepoints": [191], "characters": "\u00BF"}, + "𝒾": {"codepoints": [119998], "characters": "\uD835\uDCBE"}, + "ℐ": {"codepoints": [8464], "characters": "\u2110"}, + "∈": {"codepoints": [8712], "characters": "\u2208"}, + "⋵": {"codepoints": [8949], "characters": "\u22F5"}, + "⋹": {"codepoints": [8953], "characters": "\u22F9"}, + "⋴": {"codepoints": [8948], "characters": "\u22F4"}, + "⋳": {"codepoints": [8947], "characters": "\u22F3"}, + "∈": {"codepoints": [8712], "characters": "\u2208"}, + "⁢": {"codepoints": [8290], "characters": "\u2062"}, + "Ĩ": {"codepoints": [296], "characters": "\u0128"}, + "ĩ": {"codepoints": [297], "characters": "\u0129"}, + "І": {"codepoints": [1030], "characters": "\u0406"}, + "і": {"codepoints": [1110], "characters": "\u0456"}, + "Ï": {"codepoints": [207], "characters": "\u00CF"}, + "Ï": {"codepoints": [207], "characters": "\u00CF"}, + "ï": {"codepoints": [239], "characters": "\u00EF"}, + "ï": {"codepoints": [239], "characters": "\u00EF"}, + "Ĵ": {"codepoints": [308], "characters": "\u0134"}, + "ĵ": {"codepoints": [309], "characters": "\u0135"}, + "Й": {"codepoints": [1049], "characters": "\u0419"}, + "й": {"codepoints": [1081], "characters": "\u0439"}, + "𝔍": {"codepoints": [120077], "characters": "\uD835\uDD0D"}, + "𝔧": {"codepoints": [120103], "characters": "\uD835\uDD27"}, + "ȷ": {"codepoints": [567], "characters": "\u0237"}, + "𝕁": {"codepoints": [120129], "characters": "\uD835\uDD41"}, + "𝕛": {"codepoints": [120155], "characters": "\uD835\uDD5B"}, + "𝒥": {"codepoints": [119973], "characters": "\uD835\uDCA5"}, + "𝒿": {"codepoints": [119999], "characters": "\uD835\uDCBF"}, + "Ј": {"codepoints": [1032], "characters": "\u0408"}, + "ј": {"codepoints": [1112], "characters": "\u0458"}, + "Є": {"codepoints": [1028], "characters": "\u0404"}, + "є": {"codepoints": [1108], "characters": "\u0454"}, + "Κ": {"codepoints": [922], "characters": "\u039A"}, + "κ": {"codepoints": [954], "characters": "\u03BA"}, + "ϰ": {"codepoints": [1008], "characters": "\u03F0"}, + "Ķ": {"codepoints": [310], "characters": "\u0136"}, + "ķ": {"codepoints": [311], "characters": "\u0137"}, + "К": {"codepoints": [1050], "characters": "\u041A"}, + "к": {"codepoints": [1082], "characters": "\u043A"}, + "𝔎": {"codepoints": [120078], "characters": "\uD835\uDD0E"}, + "𝔨": {"codepoints": [120104], "characters": "\uD835\uDD28"}, + "ĸ": {"codepoints": [312], "characters": "\u0138"}, + "Х": {"codepoints": [1061], "characters": "\u0425"}, + "х": {"codepoints": [1093], "characters": "\u0445"}, + "Ќ": {"codepoints": [1036], "characters": "\u040C"}, + "ќ": {"codepoints": [1116], "characters": "\u045C"}, + "𝕂": {"codepoints": [120130], "characters": "\uD835\uDD42"}, + "𝕜": {"codepoints": [120156], "characters": "\uD835\uDD5C"}, + "𝒦": {"codepoints": [119974], "characters": "\uD835\uDCA6"}, + "𝓀": {"codepoints": [120000], "characters": "\uD835\uDCC0"}, + "⇚": {"codepoints": [8666], "characters": "\u21DA"}, + "Ĺ": {"codepoints": [313], "characters": "\u0139"}, + "ĺ": {"codepoints": [314], "characters": "\u013A"}, + "⦴": {"codepoints": [10676], "characters": "\u29B4"}, + "ℒ": {"codepoints": [8466], "characters": "\u2112"}, + "Λ": {"codepoints": [923], "characters": "\u039B"}, + "λ": {"codepoints": [955], "characters": "\u03BB"}, + "⟨": {"codepoints": [10216], "characters": "\u27E8"}, + "⟪": {"codepoints": [10218], "characters": "\u27EA"}, + "⦑": {"codepoints": [10641], "characters": "\u2991"}, + "⟨": {"codepoints": [10216], "characters": "\u27E8"}, + "⪅": {"codepoints": [10885], "characters": "\u2A85"}, + "ℒ": {"codepoints": [8466], "characters": "\u2112"}, + "«": {"codepoints": [171], "characters": "\u00AB"}, + "«": {"codepoints": [171], "characters": "\u00AB"}, + "⇤": {"codepoints": [8676], "characters": "\u21E4"}, + "⤟": {"codepoints": [10527], "characters": "\u291F"}, + "←": {"codepoints": [8592], "characters": "\u2190"}, + "↞": {"codepoints": [8606], "characters": "\u219E"}, + "⇐": {"codepoints": [8656], "characters": "\u21D0"}, + "⤝": {"codepoints": [10525], "characters": "\u291D"}, + "↩": {"codepoints": [8617], "characters": "\u21A9"}, + "↫": {"codepoints": [8619], "characters": "\u21AB"}, + "⤹": {"codepoints": [10553], "characters": "\u2939"}, + "⥳": {"codepoints": [10611], "characters": "\u2973"}, + "↢": {"codepoints": [8610], "characters": "\u21A2"}, + "⤙": {"codepoints": [10521], "characters": "\u2919"}, + "⤛": {"codepoints": [10523], "characters": "\u291B"}, + "⪫": {"codepoints": [10923], "characters": "\u2AAB"}, + "⪭": {"codepoints": [10925], "characters": "\u2AAD"}, + "⪭︀": {"codepoints": [10925, 65024], "characters": "\u2AAD\uFE00"}, + "⤌": {"codepoints": [10508], "characters": "\u290C"}, + "⤎": {"codepoints": [10510], "characters": "\u290E"}, + "❲": {"codepoints": [10098], "characters": "\u2772"}, + "{": {"codepoints": [123], "characters": "\u007B"}, + "[": {"codepoints": [91], "characters": "\u005B"}, + "⦋": {"codepoints": [10635], "characters": "\u298B"}, + "⦏": {"codepoints": [10639], "characters": "\u298F"}, + "⦍": {"codepoints": [10637], "characters": "\u298D"}, + "Ľ": {"codepoints": [317], "characters": "\u013D"}, + "ľ": {"codepoints": [318], "characters": "\u013E"}, + "Ļ": {"codepoints": [315], "characters": "\u013B"}, + "ļ": {"codepoints": [316], "characters": "\u013C"}, + "⌈": {"codepoints": [8968], "characters": "\u2308"}, + "{": {"codepoints": [123], "characters": "\u007B"}, + "Л": {"codepoints": [1051], "characters": "\u041B"}, + "л": {"codepoints": [1083], "characters": "\u043B"}, + "⤶": {"codepoints": [10550], "characters": "\u2936"}, + "“": {"codepoints": [8220], "characters": "\u201C"}, + "„": {"codepoints": [8222], "characters": "\u201E"}, + "⥧": {"codepoints": [10599], "characters": "\u2967"}, + "⥋": {"codepoints": [10571], "characters": "\u294B"}, + "↲": {"codepoints": [8626], "characters": "\u21B2"}, + "≤": {"codepoints": [8804], "characters": "\u2264"}, + "≦": {"codepoints": [8806], "characters": "\u2266"}, + "⟨": {"codepoints": [10216], "characters": "\u27E8"}, + "⇤": {"codepoints": [8676], "characters": "\u21E4"}, + "←": {"codepoints": [8592], "characters": "\u2190"}, + "←": {"codepoints": [8592], "characters": "\u2190"}, + "⇐": {"codepoints": [8656], "characters": "\u21D0"}, + "⇆": {"codepoints": [8646], "characters": "\u21C6"}, + "↢": {"codepoints": [8610], "characters": "\u21A2"}, + "⌈": {"codepoints": [8968], "characters": "\u2308"}, + "⟦": {"codepoints": [10214], "characters": "\u27E6"}, + "⥡": {"codepoints": [10593], "characters": "\u2961"}, + "⥙": {"codepoints": [10585], "characters": "\u2959"}, + "⇃": {"codepoints": [8643], "characters": "\u21C3"}, + "⌊": {"codepoints": [8970], "characters": "\u230A"}, + "↽": {"codepoints": [8637], "characters": "\u21BD"}, + "↼": {"codepoints": [8636], "characters": "\u21BC"}, + "⇇": {"codepoints": [8647], "characters": "\u21C7"}, + "↔": {"codepoints": [8596], "characters": "\u2194"}, + "↔": {"codepoints": [8596], "characters": "\u2194"}, + "⇔": {"codepoints": [8660], "characters": "\u21D4"}, + "⇆": {"codepoints": [8646], "characters": "\u21C6"}, + "⇋": {"codepoints": [8651], "characters": "\u21CB"}, + "↭": {"codepoints": [8621], "characters": "\u21AD"}, + "⥎": {"codepoints": [10574], "characters": "\u294E"}, + "↤": {"codepoints": [8612], "characters": "\u21A4"}, + "⊣": {"codepoints": [8867], "characters": "\u22A3"}, + "⥚": {"codepoints": [10586], "characters": "\u295A"}, + "⋋": {"codepoints": [8907], "characters": "\u22CB"}, + "⧏": {"codepoints": [10703], "characters": "\u29CF"}, + "⊲": {"codepoints": [8882], "characters": "\u22B2"}, + "⊴": {"codepoints": [8884], "characters": "\u22B4"}, + "⥑": {"codepoints": [10577], "characters": "\u2951"}, + "⥠": {"codepoints": [10592], "characters": "\u2960"}, + "⥘": {"codepoints": [10584], "characters": "\u2958"}, + "↿": {"codepoints": [8639], "characters": "\u21BF"}, + "⥒": {"codepoints": [10578], "characters": "\u2952"}, + "↼": {"codepoints": [8636], "characters": "\u21BC"}, + "⪋": {"codepoints": [10891], "characters": "\u2A8B"}, + "⋚": {"codepoints": [8922], "characters": "\u22DA"}, + "≤": {"codepoints": [8804], "characters": "\u2264"}, + "≦": {"codepoints": [8806], "characters": "\u2266"}, + "⩽": {"codepoints": [10877], "characters": "\u2A7D"}, + "⪨": {"codepoints": [10920], "characters": "\u2AA8"}, + "⩽": {"codepoints": [10877], "characters": "\u2A7D"}, + "⩿": {"codepoints": [10879], "characters": "\u2A7F"}, + "⪁": {"codepoints": [10881], "characters": "\u2A81"}, + "⪃": {"codepoints": [10883], "characters": "\u2A83"}, + "⋚︀": {"codepoints": [8922, 65024], "characters": "\u22DA\uFE00"}, + "⪓": {"codepoints": [10899], "characters": "\u2A93"}, + "⪅": {"codepoints": [10885], "characters": "\u2A85"}, + "⋖": {"codepoints": [8918], "characters": "\u22D6"}, + "⋚": {"codepoints": [8922], "characters": "\u22DA"}, + "⪋": {"codepoints": [10891], "characters": "\u2A8B"}, + "⋚": {"codepoints": [8922], "characters": "\u22DA"}, + "≦": {"codepoints": [8806], "characters": "\u2266"}, + "≶": {"codepoints": [8822], "characters": "\u2276"}, + "≶": {"codepoints": [8822], "characters": "\u2276"}, + "⪡": {"codepoints": [10913], "characters": "\u2AA1"}, + "≲": {"codepoints": [8818], "characters": "\u2272"}, + "⩽": {"codepoints": [10877], "characters": "\u2A7D"}, + "≲": {"codepoints": [8818], "characters": "\u2272"}, + "⥼": {"codepoints": [10620], "characters": "\u297C"}, + "⌊": {"codepoints": [8970], "characters": "\u230A"}, + "𝔏": {"codepoints": [120079], "characters": "\uD835\uDD0F"}, + "𝔩": {"codepoints": [120105], "characters": "\uD835\uDD29"}, + "≶": {"codepoints": [8822], "characters": "\u2276"}, + "⪑": {"codepoints": [10897], "characters": "\u2A91"}, + "⥢": {"codepoints": [10594], "characters": "\u2962"}, + "↽": {"codepoints": [8637], "characters": "\u21BD"}, + "↼": {"codepoints": [8636], "characters": "\u21BC"}, + "⥪": {"codepoints": [10602], "characters": "\u296A"}, + "▄": {"codepoints": [9604], "characters": "\u2584"}, + "Љ": {"codepoints": [1033], "characters": "\u0409"}, + "љ": {"codepoints": [1113], "characters": "\u0459"}, + "⇇": {"codepoints": [8647], "characters": "\u21C7"}, + "≪": {"codepoints": [8810], "characters": "\u226A"}, + "⋘": {"codepoints": [8920], "characters": "\u22D8"}, + "⌞": {"codepoints": [8990], "characters": "\u231E"}, + "⇚": {"codepoints": [8666], "characters": "\u21DA"}, + "⥫": {"codepoints": [10603], "characters": "\u296B"}, + "◺": {"codepoints": [9722], "characters": "\u25FA"}, + "Ŀ": {"codepoints": [319], "characters": "\u013F"}, + "ŀ": {"codepoints": [320], "characters": "\u0140"}, + "⎰": {"codepoints": [9136], "characters": "\u23B0"}, + "⎰": {"codepoints": [9136], "characters": "\u23B0"}, + "⪉": {"codepoints": [10889], "characters": "\u2A89"}, + "⪉": {"codepoints": [10889], "characters": "\u2A89"}, + "⪇": {"codepoints": [10887], "characters": "\u2A87"}, + "≨": {"codepoints": [8808], "characters": "\u2268"}, + "⪇": {"codepoints": [10887], "characters": "\u2A87"}, + "≨": {"codepoints": [8808], "characters": "\u2268"}, + "⋦": {"codepoints": [8934], "characters": "\u22E6"}, + "⟬": {"codepoints": [10220], "characters": "\u27EC"}, + "⇽": {"codepoints": [8701], "characters": "\u21FD"}, + "⟦": {"codepoints": [10214], "characters": "\u27E6"}, + "⟵": {"codepoints": [10229], "characters": "\u27F5"}, + "⟵": {"codepoints": [10229], "characters": "\u27F5"}, + "⟸": {"codepoints": [10232], "characters": "\u27F8"}, + "⟷": {"codepoints": [10231], "characters": "\u27F7"}, + "⟷": {"codepoints": [10231], "characters": "\u27F7"}, + "⟺": {"codepoints": [10234], "characters": "\u27FA"}, + "⟼": {"codepoints": [10236], "characters": "\u27FC"}, + "⟶": {"codepoints": [10230], "characters": "\u27F6"}, + "⟶": {"codepoints": [10230], "characters": "\u27F6"}, + "⟹": {"codepoints": [10233], "characters": "\u27F9"}, + "↫": {"codepoints": [8619], "characters": "\u21AB"}, + "↬": {"codepoints": [8620], "characters": "\u21AC"}, + "⦅": {"codepoints": [10629], "characters": "\u2985"}, + "𝕃": {"codepoints": [120131], "characters": "\uD835\uDD43"}, + "𝕝": {"codepoints": [120157], "characters": "\uD835\uDD5D"}, + "⨭": {"codepoints": [10797], "characters": "\u2A2D"}, + "⨴": {"codepoints": [10804], "characters": "\u2A34"}, + "∗": {"codepoints": [8727], "characters": "\u2217"}, + "_": {"codepoints": [95], "characters": "\u005F"}, + "↙": {"codepoints": [8601], "characters": "\u2199"}, + "↘": {"codepoints": [8600], "characters": "\u2198"}, + "◊": {"codepoints": [9674], "characters": "\u25CA"}, + "◊": {"codepoints": [9674], "characters": "\u25CA"}, + "⧫": {"codepoints": [10731], "characters": "\u29EB"}, + "(": {"codepoints": [40], "characters": "\u0028"}, + "⦓": {"codepoints": [10643], "characters": "\u2993"}, + "⇆": {"codepoints": [8646], "characters": "\u21C6"}, + "⌟": {"codepoints": [8991], "characters": "\u231F"}, + "⇋": {"codepoints": [8651], "characters": "\u21CB"}, + "⥭": {"codepoints": [10605], "characters": "\u296D"}, + "‎": {"codepoints": [8206], "characters": "\u200E"}, + "⊿": {"codepoints": [8895], "characters": "\u22BF"}, + "‹": {"codepoints": [8249], "characters": "\u2039"}, + "𝓁": {"codepoints": [120001], "characters": "\uD835\uDCC1"}, + "ℒ": {"codepoints": [8466], "characters": "\u2112"}, + "↰": {"codepoints": [8624], "characters": "\u21B0"}, + "↰": {"codepoints": [8624], "characters": "\u21B0"}, + "≲": {"codepoints": [8818], "characters": "\u2272"}, + "⪍": {"codepoints": [10893], "characters": "\u2A8D"}, + "⪏": {"codepoints": [10895], "characters": "\u2A8F"}, + "[": {"codepoints": [91], "characters": "\u005B"}, + "‘": {"codepoints": [8216], "characters": "\u2018"}, + "‚": {"codepoints": [8218], "characters": "\u201A"}, + "Ł": {"codepoints": [321], "characters": "\u0141"}, + "ł": {"codepoints": [322], "characters": "\u0142"}, + "⪦": {"codepoints": [10918], "characters": "\u2AA6"}, + "⩹": {"codepoints": [10873], "characters": "\u2A79"}, + "<": {"codepoints": [60], "characters": "\u003C"}, + "<": {"codepoints": [60], "characters": "\u003C"}, + "<": {"codepoints": [60], "characters": "\u003C"}, + "<": {"codepoints": [60], "characters": "\u003C"}, + "≪": {"codepoints": [8810], "characters": "\u226A"}, + "⋖": {"codepoints": [8918], "characters": "\u22D6"}, + "⋋": {"codepoints": [8907], "characters": "\u22CB"}, + "⋉": {"codepoints": [8905], "characters": "\u22C9"}, + "⥶": {"codepoints": [10614], "characters": "\u2976"}, + "⩻": {"codepoints": [10875], "characters": "\u2A7B"}, + "◃": {"codepoints": [9667], "characters": "\u25C3"}, + "⊴": {"codepoints": [8884], "characters": "\u22B4"}, + "◂": {"codepoints": [9666], "characters": "\u25C2"}, + "⦖": {"codepoints": [10646], "characters": "\u2996"}, + "⥊": {"codepoints": [10570], "characters": "\u294A"}, + "⥦": {"codepoints": [10598], "characters": "\u2966"}, + "≨︀": {"codepoints": [8808, 65024], "characters": "\u2268\uFE00"}, + "≨︀": {"codepoints": [8808, 65024], "characters": "\u2268\uFE00"}, + "¯": {"codepoints": [175], "characters": "\u00AF"}, + "¯": {"codepoints": [175], "characters": "\u00AF"}, + "♂": {"codepoints": [9794], "characters": "\u2642"}, + "✠": {"codepoints": [10016], "characters": "\u2720"}, + "✠": {"codepoints": [10016], "characters": "\u2720"}, + "⤅": {"codepoints": [10501], "characters": "\u2905"}, + "↦": {"codepoints": [8614], "characters": "\u21A6"}, + "↦": {"codepoints": [8614], "characters": "\u21A6"}, + "↧": {"codepoints": [8615], "characters": "\u21A7"}, + "↤": {"codepoints": [8612], "characters": "\u21A4"}, + "↥": {"codepoints": [8613], "characters": "\u21A5"}, + "▮": {"codepoints": [9646], "characters": "\u25AE"}, + "⨩": {"codepoints": [10793], "characters": "\u2A29"}, + "М": {"codepoints": [1052], "characters": "\u041C"}, + "м": {"codepoints": [1084], "characters": "\u043C"}, + "—": {"codepoints": [8212], "characters": "\u2014"}, + "∺": {"codepoints": [8762], "characters": "\u223A"}, + "∡": {"codepoints": [8737], "characters": "\u2221"}, + " ": {"codepoints": [8287], "characters": "\u205F"}, + "ℳ": {"codepoints": [8499], "characters": "\u2133"}, + "𝔐": {"codepoints": [120080], "characters": "\uD835\uDD10"}, + "𝔪": {"codepoints": [120106], "characters": "\uD835\uDD2A"}, + "℧": {"codepoints": [8487], "characters": "\u2127"}, + "µ": {"codepoints": [181], "characters": "\u00B5"}, + "µ": {"codepoints": [181], "characters": "\u00B5"}, + "*": {"codepoints": [42], "characters": "\u002A"}, + "⫰": {"codepoints": [10992], "characters": "\u2AF0"}, + "∣": {"codepoints": [8739], "characters": "\u2223"}, + "·": {"codepoints": [183], "characters": "\u00B7"}, + "·": {"codepoints": [183], "characters": "\u00B7"}, + "⊟": {"codepoints": [8863], "characters": "\u229F"}, + "−": {"codepoints": [8722], "characters": "\u2212"}, + "∸": {"codepoints": [8760], "characters": "\u2238"}, + "⨪": {"codepoints": [10794], "characters": "\u2A2A"}, + "∓": {"codepoints": [8723], "characters": "\u2213"}, + "⫛": {"codepoints": [10971], "characters": "\u2ADB"}, + "…": {"codepoints": [8230], "characters": "\u2026"}, + "∓": {"codepoints": [8723], "characters": "\u2213"}, + "⊧": {"codepoints": [8871], "characters": "\u22A7"}, + "𝕄": {"codepoints": [120132], "characters": "\uD835\uDD44"}, + "𝕞": {"codepoints": [120158], "characters": "\uD835\uDD5E"}, + "∓": {"codepoints": [8723], "characters": "\u2213"}, + "𝓂": {"codepoints": [120002], "characters": "\uD835\uDCC2"}, + "ℳ": {"codepoints": [8499], "characters": "\u2133"}, + "∾": {"codepoints": [8766], "characters": "\u223E"}, + "Μ": {"codepoints": [924], "characters": "\u039C"}, + "μ": {"codepoints": [956], "characters": "\u03BC"}, + "⊸": {"codepoints": [8888], "characters": "\u22B8"}, + "⊸": {"codepoints": [8888], "characters": "\u22B8"}, + "∇": {"codepoints": [8711], "characters": "\u2207"}, + "Ń": {"codepoints": [323], "characters": "\u0143"}, + "ń": {"codepoints": [324], "characters": "\u0144"}, + "∠⃒": {"codepoints": [8736, 8402], "characters": "\u2220\u20D2"}, + "≉": {"codepoints": [8777], "characters": "\u2249"}, + "⩰̸": {"codepoints": [10864, 824], "characters": "\u2A70\u0338"}, + "≋̸": {"codepoints": [8779, 824], "characters": "\u224B\u0338"}, + "ʼn": {"codepoints": [329], "characters": "\u0149"}, + "≉": {"codepoints": [8777], "characters": "\u2249"}, + "♮": {"codepoints": [9838], "characters": "\u266E"}, + "ℕ": {"codepoints": [8469], "characters": "\u2115"}, + "♮": {"codepoints": [9838], "characters": "\u266E"}, + " ": {"codepoints": [160], "characters": "\u00A0"}, + " ": {"codepoints": [160], "characters": "\u00A0"}, + "≎̸": {"codepoints": [8782, 824], "characters": "\u224E\u0338"}, + "≏̸": {"codepoints": [8783, 824], "characters": "\u224F\u0338"}, + "⩃": {"codepoints": [10819], "characters": "\u2A43"}, + "Ň": {"codepoints": [327], "characters": "\u0147"}, + "ň": {"codepoints": [328], "characters": "\u0148"}, + "Ņ": {"codepoints": [325], "characters": "\u0145"}, + "ņ": {"codepoints": [326], "characters": "\u0146"}, + "≇": {"codepoints": [8775], "characters": "\u2247"}, + "⩭̸": {"codepoints": [10861, 824], "characters": "\u2A6D\u0338"}, + "⩂": {"codepoints": [10818], "characters": "\u2A42"}, + "Н": {"codepoints": [1053], "characters": "\u041D"}, + "н": {"codepoints": [1085], "characters": "\u043D"}, + "–": {"codepoints": [8211], "characters": "\u2013"}, + "⤤": {"codepoints": [10532], "characters": "\u2924"}, + "↗": {"codepoints": [8599], "characters": "\u2197"}, + "⇗": {"codepoints": [8663], "characters": "\u21D7"}, + "↗": {"codepoints": [8599], "characters": "\u2197"}, + "≠": {"codepoints": [8800], "characters": "\u2260"}, + "≐̸": {"codepoints": [8784, 824], "characters": "\u2250\u0338"}, + "​": {"codepoints": [8203], "characters": "\u200B"}, + "​": {"codepoints": [8203], "characters": "\u200B"}, + "​": {"codepoints": [8203], "characters": "\u200B"}, + "​": {"codepoints": [8203], "characters": "\u200B"}, + "≢": {"codepoints": [8802], "characters": "\u2262"}, + "⤨": {"codepoints": [10536], "characters": "\u2928"}, + "≂̸": {"codepoints": [8770, 824], "characters": "\u2242\u0338"}, + "≫": {"codepoints": [8811], "characters": "\u226B"}, + "≪": {"codepoints": [8810], "characters": "\u226A"}, + " ": {"codepoints": [10], "characters": "\u000A"}, + "∄": {"codepoints": [8708], "characters": "\u2204"}, + "∄": {"codepoints": [8708], "characters": "\u2204"}, + "𝔑": {"codepoints": [120081], "characters": "\uD835\uDD11"}, + "𝔫": {"codepoints": [120107], "characters": "\uD835\uDD2B"}, + "≧̸": {"codepoints": [8807, 824], "characters": "\u2267\u0338"}, + "≱": {"codepoints": [8817], "characters": "\u2271"}, + "≱": {"codepoints": [8817], "characters": "\u2271"}, + "≧̸": {"codepoints": [8807, 824], "characters": "\u2267\u0338"}, + "⩾̸": {"codepoints": [10878, 824], "characters": "\u2A7E\u0338"}, + "⩾̸": {"codepoints": [10878, 824], "characters": "\u2A7E\u0338"}, + "⋙̸": {"codepoints": [8921, 824], "characters": "\u22D9\u0338"}, + "≵": {"codepoints": [8821], "characters": "\u2275"}, + "≫⃒": {"codepoints": [8811, 8402], "characters": "\u226B\u20D2"}, + "≯": {"codepoints": [8815], "characters": "\u226F"}, + "≯": {"codepoints": [8815], "characters": "\u226F"}, + "≫̸": {"codepoints": [8811, 824], "characters": "\u226B\u0338"}, + "↮": {"codepoints": [8622], "characters": "\u21AE"}, + "⇎": {"codepoints": [8654], "characters": "\u21CE"}, + "⫲": {"codepoints": [10994], "characters": "\u2AF2"}, + "∋": {"codepoints": [8715], "characters": "\u220B"}, + "⋼": {"codepoints": [8956], "characters": "\u22FC"}, + "⋺": {"codepoints": [8954], "characters": "\u22FA"}, + "∋": {"codepoints": [8715], "characters": "\u220B"}, + "Њ": {"codepoints": [1034], "characters": "\u040A"}, + "њ": {"codepoints": [1114], "characters": "\u045A"}, + "↚": {"codepoints": [8602], "characters": "\u219A"}, + "⇍": {"codepoints": [8653], "characters": "\u21CD"}, + "‥": {"codepoints": [8229], "characters": "\u2025"}, + "≦̸": {"codepoints": [8806, 824], "characters": "\u2266\u0338"}, + "≰": {"codepoints": [8816], "characters": "\u2270"}, + "↚": {"codepoints": [8602], "characters": "\u219A"}, + "⇍": {"codepoints": [8653], "characters": "\u21CD"}, + "↮": {"codepoints": [8622], "characters": "\u21AE"}, + "⇎": {"codepoints": [8654], "characters": "\u21CE"}, + "≰": {"codepoints": [8816], "characters": "\u2270"}, + "≦̸": {"codepoints": [8806, 824], "characters": "\u2266\u0338"}, + "⩽̸": {"codepoints": [10877, 824], "characters": "\u2A7D\u0338"}, + "⩽̸": {"codepoints": [10877, 824], "characters": "\u2A7D\u0338"}, + "≮": {"codepoints": [8814], "characters": "\u226E"}, + "⋘̸": {"codepoints": [8920, 824], "characters": "\u22D8\u0338"}, + "≴": {"codepoints": [8820], "characters": "\u2274"}, + "≪⃒": {"codepoints": [8810, 8402], "characters": "\u226A\u20D2"}, + "≮": {"codepoints": [8814], "characters": "\u226E"}, + "⋪": {"codepoints": [8938], "characters": "\u22EA"}, + "⋬": {"codepoints": [8940], "characters": "\u22EC"}, + "≪̸": {"codepoints": [8810, 824], "characters": "\u226A\u0338"}, + "∤": {"codepoints": [8740], "characters": "\u2224"}, + "⁠": {"codepoints": [8288], "characters": "\u2060"}, + " ": {"codepoints": [160], "characters": "\u00A0"}, + "𝕟": {"codepoints": [120159], "characters": "\uD835\uDD5F"}, + "ℕ": {"codepoints": [8469], "characters": "\u2115"}, + "⫬": {"codepoints": [10988], "characters": "\u2AEC"}, + "¬": {"codepoints": [172], "characters": "\u00AC"}, + "¬": {"codepoints": [172], "characters": "\u00AC"}, + "≢": {"codepoints": [8802], "characters": "\u2262"}, + "≭": {"codepoints": [8813], "characters": "\u226D"}, + "∦": {"codepoints": [8742], "characters": "\u2226"}, + "∉": {"codepoints": [8713], "characters": "\u2209"}, + "≠": {"codepoints": [8800], "characters": "\u2260"}, + "≂̸": {"codepoints": [8770, 824], "characters": "\u2242\u0338"}, + "∄": {"codepoints": [8708], "characters": "\u2204"}, + "≯": {"codepoints": [8815], "characters": "\u226F"}, + "≱": {"codepoints": [8817], "characters": "\u2271"}, + "≧̸": {"codepoints": [8807, 824], "characters": "\u2267\u0338"}, + "≫̸": {"codepoints": [8811, 824], "characters": "\u226B\u0338"}, + "≹": {"codepoints": [8825], "characters": "\u2279"}, + "⩾̸": {"codepoints": [10878, 824], "characters": "\u2A7E\u0338"}, + "≵": {"codepoints": [8821], "characters": "\u2275"}, + "≎̸": {"codepoints": [8782, 824], "characters": "\u224E\u0338"}, + "≏̸": {"codepoints": [8783, 824], "characters": "\u224F\u0338"}, + "∉": {"codepoints": [8713], "characters": "\u2209"}, + "⋵̸": {"codepoints": [8949, 824], "characters": "\u22F5\u0338"}, + "⋹̸": {"codepoints": [8953, 824], "characters": "\u22F9\u0338"}, + "∉": {"codepoints": [8713], "characters": "\u2209"}, + "⋷": {"codepoints": [8951], "characters": "\u22F7"}, + "⋶": {"codepoints": [8950], "characters": "\u22F6"}, + "⧏̸": {"codepoints": [10703, 824], "characters": "\u29CF\u0338"}, + "⋪": {"codepoints": [8938], "characters": "\u22EA"}, + "⋬": {"codepoints": [8940], "characters": "\u22EC"}, + "≮": {"codepoints": [8814], "characters": "\u226E"}, + "≰": {"codepoints": [8816], "characters": "\u2270"}, + "≸": {"codepoints": [8824], "characters": "\u2278"}, + "≪̸": {"codepoints": [8810, 824], "characters": "\u226A\u0338"}, + "⩽̸": {"codepoints": [10877, 824], "characters": "\u2A7D\u0338"}, + "≴": {"codepoints": [8820], "characters": "\u2274"}, + "⪢̸": {"codepoints": [10914, 824], "characters": "\u2AA2\u0338"}, + "⪡̸": {"codepoints": [10913, 824], "characters": "\u2AA1\u0338"}, + "∌": {"codepoints": [8716], "characters": "\u220C"}, + "∌": {"codepoints": [8716], "characters": "\u220C"}, + "⋾": {"codepoints": [8958], "characters": "\u22FE"}, + "⋽": {"codepoints": [8957], "characters": "\u22FD"}, + "⊀": {"codepoints": [8832], "characters": "\u2280"}, + "⪯̸": {"codepoints": [10927, 824], "characters": "\u2AAF\u0338"}, + "⋠": {"codepoints": [8928], "characters": "\u22E0"}, + "∌": {"codepoints": [8716], "characters": "\u220C"}, + "⧐̸": {"codepoints": [10704, 824], "characters": "\u29D0\u0338"}, + "⋫": {"codepoints": [8939], "characters": "\u22EB"}, + "⋭": {"codepoints": [8941], "characters": "\u22ED"}, + "⊏̸": {"codepoints": [8847, 824], "characters": "\u228F\u0338"}, + "⋢": {"codepoints": [8930], "characters": "\u22E2"}, + "⊐̸": {"codepoints": [8848, 824], "characters": "\u2290\u0338"}, + "⋣": {"codepoints": [8931], "characters": "\u22E3"}, + "⊂⃒": {"codepoints": [8834, 8402], "characters": "\u2282\u20D2"}, + "⊈": {"codepoints": [8840], "characters": "\u2288"}, + "⊁": {"codepoints": [8833], "characters": "\u2281"}, + "⪰̸": {"codepoints": [10928, 824], "characters": "\u2AB0\u0338"}, + "⋡": {"codepoints": [8929], "characters": "\u22E1"}, + "≿̸": {"codepoints": [8831, 824], "characters": "\u227F\u0338"}, + "⊃⃒": {"codepoints": [8835, 8402], "characters": "\u2283\u20D2"}, + "⊉": {"codepoints": [8841], "characters": "\u2289"}, + "≁": {"codepoints": [8769], "characters": "\u2241"}, + "≄": {"codepoints": [8772], "characters": "\u2244"}, + "≇": {"codepoints": [8775], "characters": "\u2247"}, + "≉": {"codepoints": [8777], "characters": "\u2249"}, + "∤": {"codepoints": [8740], "characters": "\u2224"}, + "∦": {"codepoints": [8742], "characters": "\u2226"}, + "∦": {"codepoints": [8742], "characters": "\u2226"}, + "⫽⃥": {"codepoints": [11005, 8421], "characters": "\u2AFD\u20E5"}, + "∂̸": {"codepoints": [8706, 824], "characters": "\u2202\u0338"}, + "⨔": {"codepoints": [10772], "characters": "\u2A14"}, + "⊀": {"codepoints": [8832], "characters": "\u2280"}, + "⋠": {"codepoints": [8928], "characters": "\u22E0"}, + "⊀": {"codepoints": [8832], "characters": "\u2280"}, + "⪯̸": {"codepoints": [10927, 824], "characters": "\u2AAF\u0338"}, + "⪯̸": {"codepoints": [10927, 824], "characters": "\u2AAF\u0338"}, + "⤳̸": {"codepoints": [10547, 824], "characters": "\u2933\u0338"}, + "↛": {"codepoints": [8603], "characters": "\u219B"}, + "⇏": {"codepoints": [8655], "characters": "\u21CF"}, + "↝̸": {"codepoints": [8605, 824], "characters": "\u219D\u0338"}, + "↛": {"codepoints": [8603], "characters": "\u219B"}, + "⇏": {"codepoints": [8655], "characters": "\u21CF"}, + "⋫": {"codepoints": [8939], "characters": "\u22EB"}, + "⋭": {"codepoints": [8941], "characters": "\u22ED"}, + "⊁": {"codepoints": [8833], "characters": "\u2281"}, + "⋡": {"codepoints": [8929], "characters": "\u22E1"}, + "⪰̸": {"codepoints": [10928, 824], "characters": "\u2AB0\u0338"}, + "𝒩": {"codepoints": [119977], "characters": "\uD835\uDCA9"}, + "𝓃": {"codepoints": [120003], "characters": "\uD835\uDCC3"}, + "∤": {"codepoints": [8740], "characters": "\u2224"}, + "∦": {"codepoints": [8742], "characters": "\u2226"}, + "≁": {"codepoints": [8769], "characters": "\u2241"}, + "≄": {"codepoints": [8772], "characters": "\u2244"}, + "≄": {"codepoints": [8772], "characters": "\u2244"}, + "∤": {"codepoints": [8740], "characters": "\u2224"}, + "∦": {"codepoints": [8742], "characters": "\u2226"}, + "⋢": {"codepoints": [8930], "characters": "\u22E2"}, + "⋣": {"codepoints": [8931], "characters": "\u22E3"}, + "⊄": {"codepoints": [8836], "characters": "\u2284"}, + "⫅̸": {"codepoints": [10949, 824], "characters": "\u2AC5\u0338"}, + "⊈": {"codepoints": [8840], "characters": "\u2288"}, + "⊂⃒": {"codepoints": [8834, 8402], "characters": "\u2282\u20D2"}, + "⊈": {"codepoints": [8840], "characters": "\u2288"}, + "⫅̸": {"codepoints": [10949, 824], "characters": "\u2AC5\u0338"}, + "⊁": {"codepoints": [8833], "characters": "\u2281"}, + "⪰̸": {"codepoints": [10928, 824], "characters": "\u2AB0\u0338"}, + "⊅": {"codepoints": [8837], "characters": "\u2285"}, + "⫆̸": {"codepoints": [10950, 824], "characters": "\u2AC6\u0338"}, + "⊉": {"codepoints": [8841], "characters": "\u2289"}, + "⊃⃒": {"codepoints": [8835, 8402], "characters": "\u2283\u20D2"}, + "⊉": {"codepoints": [8841], "characters": "\u2289"}, + "⫆̸": {"codepoints": [10950, 824], "characters": "\u2AC6\u0338"}, + "≹": {"codepoints": [8825], "characters": "\u2279"}, + "Ñ": {"codepoints": [209], "characters": "\u00D1"}, + "Ñ": {"codepoints": [209], "characters": "\u00D1"}, + "ñ": {"codepoints": [241], "characters": "\u00F1"}, + "ñ": {"codepoints": [241], "characters": "\u00F1"}, + "≸": {"codepoints": [8824], "characters": "\u2278"}, + "⋪": {"codepoints": [8938], "characters": "\u22EA"}, + "⋬": {"codepoints": [8940], "characters": "\u22EC"}, + "⋫": {"codepoints": [8939], "characters": "\u22EB"}, + "⋭": {"codepoints": [8941], "characters": "\u22ED"}, + "Ν": {"codepoints": [925], "characters": "\u039D"}, + "ν": {"codepoints": [957], "characters": "\u03BD"}, + "#": {"codepoints": [35], "characters": "\u0023"}, + "№": {"codepoints": [8470], "characters": "\u2116"}, + " ": {"codepoints": [8199], "characters": "\u2007"}, + "≍⃒": {"codepoints": [8781, 8402], "characters": "\u224D\u20D2"}, + "⊬": {"codepoints": [8876], "characters": "\u22AC"}, + "⊭": {"codepoints": [8877], "characters": "\u22AD"}, + "⊮": {"codepoints": [8878], "characters": "\u22AE"}, + "⊯": {"codepoints": [8879], "characters": "\u22AF"}, + "≥⃒": {"codepoints": [8805, 8402], "characters": "\u2265\u20D2"}, + ">⃒": {"codepoints": [62, 8402], "characters": "\u003E\u20D2"}, + "⤄": {"codepoints": [10500], "characters": "\u2904"}, + "⧞": {"codepoints": [10718], "characters": "\u29DE"}, + "⤂": {"codepoints": [10498], "characters": "\u2902"}, + "≤⃒": {"codepoints": [8804, 8402], "characters": "\u2264\u20D2"}, + "<⃒": {"codepoints": [60, 8402], "characters": "\u003C\u20D2"}, + "⊴⃒": {"codepoints": [8884, 8402], "characters": "\u22B4\u20D2"}, + "⤃": {"codepoints": [10499], "characters": "\u2903"}, + "⊵⃒": {"codepoints": [8885, 8402], "characters": "\u22B5\u20D2"}, + "∼⃒": {"codepoints": [8764, 8402], "characters": "\u223C\u20D2"}, + "⤣": {"codepoints": [10531], "characters": "\u2923"}, + "↖": {"codepoints": [8598], "characters": "\u2196"}, + "⇖": {"codepoints": [8662], "characters": "\u21D6"}, + "↖": {"codepoints": [8598], "characters": "\u2196"}, + "⤧": {"codepoints": [10535], "characters": "\u2927"}, + "Ó": {"codepoints": [211], "characters": "\u00D3"}, + "Ó": {"codepoints": [211], "characters": "\u00D3"}, + "ó": {"codepoints": [243], "characters": "\u00F3"}, + "ó": {"codepoints": [243], "characters": "\u00F3"}, + "⊛": {"codepoints": [8859], "characters": "\u229B"}, + "Ô": {"codepoints": [212], "characters": "\u00D4"}, + "Ô": {"codepoints": [212], "characters": "\u00D4"}, + "ô": {"codepoints": [244], "characters": "\u00F4"}, + "ô": {"codepoints": [244], "characters": "\u00F4"}, + "⊚": {"codepoints": [8858], "characters": "\u229A"}, + "О": {"codepoints": [1054], "characters": "\u041E"}, + "о": {"codepoints": [1086], "characters": "\u043E"}, + "⊝": {"codepoints": [8861], "characters": "\u229D"}, + "Ő": {"codepoints": [336], "characters": "\u0150"}, + "ő": {"codepoints": [337], "characters": "\u0151"}, + "⨸": {"codepoints": [10808], "characters": "\u2A38"}, + "⊙": {"codepoints": [8857], "characters": "\u2299"}, + "⦼": {"codepoints": [10684], "characters": "\u29BC"}, + "Œ": {"codepoints": [338], "characters": "\u0152"}, + "œ": {"codepoints": [339], "characters": "\u0153"}, + "⦿": {"codepoints": [10687], "characters": "\u29BF"}, + "𝔒": {"codepoints": [120082], "characters": "\uD835\uDD12"}, + "𝔬": {"codepoints": [120108], "characters": "\uD835\uDD2C"}, + "˛": {"codepoints": [731], "characters": "\u02DB"}, + "Ò": {"codepoints": [210], "characters": "\u00D2"}, + "Ò": {"codepoints": [210], "characters": "\u00D2"}, + "ò": {"codepoints": [242], "characters": "\u00F2"}, + "ò": {"codepoints": [242], "characters": "\u00F2"}, + "⧁": {"codepoints": [10689], "characters": "\u29C1"}, + "⦵": {"codepoints": [10677], "characters": "\u29B5"}, + "Ω": {"codepoints": [937], "characters": "\u03A9"}, + "∮": {"codepoints": [8750], "characters": "\u222E"}, + "↺": {"codepoints": [8634], "characters": "\u21BA"}, + "⦾": {"codepoints": [10686], "characters": "\u29BE"}, + "⦻": {"codepoints": [10683], "characters": "\u29BB"}, + "‾": {"codepoints": [8254], "characters": "\u203E"}, + "⧀": {"codepoints": [10688], "characters": "\u29C0"}, + "Ō": {"codepoints": [332], "characters": "\u014C"}, + "ō": {"codepoints": [333], "characters": "\u014D"}, + "Ω": {"codepoints": [937], "characters": "\u03A9"}, + "ω": {"codepoints": [969], "characters": "\u03C9"}, + "Ο": {"codepoints": [927], "characters": "\u039F"}, + "ο": {"codepoints": [959], "characters": "\u03BF"}, + "⦶": {"codepoints": [10678], "characters": "\u29B6"}, + "⊖": {"codepoints": [8854], "characters": "\u2296"}, + "𝕆": {"codepoints": [120134], "characters": "\uD835\uDD46"}, + "𝕠": {"codepoints": [120160], "characters": "\uD835\uDD60"}, + "⦷": {"codepoints": [10679], "characters": "\u29B7"}, + "“": {"codepoints": [8220], "characters": "\u201C"}, + "‘": {"codepoints": [8216], "characters": "\u2018"}, + "⦹": {"codepoints": [10681], "characters": "\u29B9"}, + "⊕": {"codepoints": [8853], "characters": "\u2295"}, + "↻": {"codepoints": [8635], "characters": "\u21BB"}, + "⩔": {"codepoints": [10836], "characters": "\u2A54"}, + "∨": {"codepoints": [8744], "characters": "\u2228"}, + "⩝": {"codepoints": [10845], "characters": "\u2A5D"}, + "ℴ": {"codepoints": [8500], "characters": "\u2134"}, + "ℴ": {"codepoints": [8500], "characters": "\u2134"}, + "ª": {"codepoints": [170], "characters": "\u00AA"}, + "ª": {"codepoints": [170], "characters": "\u00AA"}, + "º": {"codepoints": [186], "characters": "\u00BA"}, + "º": {"codepoints": [186], "characters": "\u00BA"}, + "⊶": {"codepoints": [8886], "characters": "\u22B6"}, + "⩖": {"codepoints": [10838], "characters": "\u2A56"}, + "⩗": {"codepoints": [10839], "characters": "\u2A57"}, + "⩛": {"codepoints": [10843], "characters": "\u2A5B"}, + "Ⓢ": {"codepoints": [9416], "characters": "\u24C8"}, + "𝒪": {"codepoints": [119978], "characters": "\uD835\uDCAA"}, + "ℴ": {"codepoints": [8500], "characters": "\u2134"}, + "Ø": {"codepoints": [216], "characters": "\u00D8"}, + "Ø": {"codepoints": [216], "characters": "\u00D8"}, + "ø": {"codepoints": [248], "characters": "\u00F8"}, + "ø": {"codepoints": [248], "characters": "\u00F8"}, + "⊘": {"codepoints": [8856], "characters": "\u2298"}, + "Õ": {"codepoints": [213], "characters": "\u00D5"}, + "Õ": {"codepoints": [213], "characters": "\u00D5"}, + "õ": {"codepoints": [245], "characters": "\u00F5"}, + "õ": {"codepoints": [245], "characters": "\u00F5"}, + "⨶": {"codepoints": [10806], "characters": "\u2A36"}, + "⨷": {"codepoints": [10807], "characters": "\u2A37"}, + "⊗": {"codepoints": [8855], "characters": "\u2297"}, + "Ö": {"codepoints": [214], "characters": "\u00D6"}, + "Ö": {"codepoints": [214], "characters": "\u00D6"}, + "ö": {"codepoints": [246], "characters": "\u00F6"}, + "ö": {"codepoints": [246], "characters": "\u00F6"}, + "⌽": {"codepoints": [9021], "characters": "\u233D"}, + "‾": {"codepoints": [8254], "characters": "\u203E"}, + "⏞": {"codepoints": [9182], "characters": "\u23DE"}, + "⎴": {"codepoints": [9140], "characters": "\u23B4"}, + "⏜": {"codepoints": [9180], "characters": "\u23DC"}, + "¶": {"codepoints": [182], "characters": "\u00B6"}, + "¶": {"codepoints": [182], "characters": "\u00B6"}, + "∥": {"codepoints": [8741], "characters": "\u2225"}, + "∥": {"codepoints": [8741], "characters": "\u2225"}, + "⫳": {"codepoints": [10995], "characters": "\u2AF3"}, + "⫽": {"codepoints": [11005], "characters": "\u2AFD"}, + "∂": {"codepoints": [8706], "characters": "\u2202"}, + "∂": {"codepoints": [8706], "characters": "\u2202"}, + "П": {"codepoints": [1055], "characters": "\u041F"}, + "п": {"codepoints": [1087], "characters": "\u043F"}, + "%": {"codepoints": [37], "characters": "\u0025"}, + ".": {"codepoints": [46], "characters": "\u002E"}, + "‰": {"codepoints": [8240], "characters": "\u2030"}, + "⊥": {"codepoints": [8869], "characters": "\u22A5"}, + "‱": {"codepoints": [8241], "characters": "\u2031"}, + "𝔓": {"codepoints": [120083], "characters": "\uD835\uDD13"}, + "𝔭": {"codepoints": [120109], "characters": "\uD835\uDD2D"}, + "Φ": {"codepoints": [934], "characters": "\u03A6"}, + "φ": {"codepoints": [966], "characters": "\u03C6"}, + "ϕ": {"codepoints": [981], "characters": "\u03D5"}, + "ℳ": {"codepoints": [8499], "characters": "\u2133"}, + "☎": {"codepoints": [9742], "characters": "\u260E"}, + "Π": {"codepoints": [928], "characters": "\u03A0"}, + "π": {"codepoints": [960], "characters": "\u03C0"}, + "⋔": {"codepoints": [8916], "characters": "\u22D4"}, + "ϖ": {"codepoints": [982], "characters": "\u03D6"}, + "ℏ": {"codepoints": [8463], "characters": "\u210F"}, + "ℎ": {"codepoints": [8462], "characters": "\u210E"}, + "ℏ": {"codepoints": [8463], "characters": "\u210F"}, + "⨣": {"codepoints": [10787], "characters": "\u2A23"}, + "⊞": {"codepoints": [8862], "characters": "\u229E"}, + "⨢": {"codepoints": [10786], "characters": "\u2A22"}, + "+": {"codepoints": [43], "characters": "\u002B"}, + "∔": {"codepoints": [8724], "characters": "\u2214"}, + "⨥": {"codepoints": [10789], "characters": "\u2A25"}, + "⩲": {"codepoints": [10866], "characters": "\u2A72"}, + "±": {"codepoints": [177], "characters": "\u00B1"}, + "±": {"codepoints": [177], "characters": "\u00B1"}, + "±": {"codepoints": [177], "characters": "\u00B1"}, + "⨦": {"codepoints": [10790], "characters": "\u2A26"}, + "⨧": {"codepoints": [10791], "characters": "\u2A27"}, + "±": {"codepoints": [177], "characters": "\u00B1"}, + "ℌ": {"codepoints": [8460], "characters": "\u210C"}, + "⨕": {"codepoints": [10773], "characters": "\u2A15"}, + "𝕡": {"codepoints": [120161], "characters": "\uD835\uDD61"}, + "ℙ": {"codepoints": [8473], "characters": "\u2119"}, + "£": {"codepoints": [163], "characters": "\u00A3"}, + "£": {"codepoints": [163], "characters": "\u00A3"}, + "⪷": {"codepoints": [10935], "characters": "\u2AB7"}, + "⪻": {"codepoints": [10939], "characters": "\u2ABB"}, + "≺": {"codepoints": [8826], "characters": "\u227A"}, + "≼": {"codepoints": [8828], "characters": "\u227C"}, + "⪷": {"codepoints": [10935], "characters": "\u2AB7"}, + "≺": {"codepoints": [8826], "characters": "\u227A"}, + "≼": {"codepoints": [8828], "characters": "\u227C"}, + "≺": {"codepoints": [8826], "characters": "\u227A"}, + "⪯": {"codepoints": [10927], "characters": "\u2AAF"}, + "≼": {"codepoints": [8828], "characters": "\u227C"}, + "≾": {"codepoints": [8830], "characters": "\u227E"}, + "⪯": {"codepoints": [10927], "characters": "\u2AAF"}, + "⪹": {"codepoints": [10937], "characters": "\u2AB9"}, + "⪵": {"codepoints": [10933], "characters": "\u2AB5"}, + "⋨": {"codepoints": [8936], "characters": "\u22E8"}, + "⪯": {"codepoints": [10927], "characters": "\u2AAF"}, + "⪳": {"codepoints": [10931], "characters": "\u2AB3"}, + "≾": {"codepoints": [8830], "characters": "\u227E"}, + "′": {"codepoints": [8242], "characters": "\u2032"}, + "″": {"codepoints": [8243], "characters": "\u2033"}, + "ℙ": {"codepoints": [8473], "characters": "\u2119"}, + "⪹": {"codepoints": [10937], "characters": "\u2AB9"}, + "⪵": {"codepoints": [10933], "characters": "\u2AB5"}, + "⋨": {"codepoints": [8936], "characters": "\u22E8"}, + "∏": {"codepoints": [8719], "characters": "\u220F"}, + "∏": {"codepoints": [8719], "characters": "\u220F"}, + "⌮": {"codepoints": [9006], "characters": "\u232E"}, + "⌒": {"codepoints": [8978], "characters": "\u2312"}, + "⌓": {"codepoints": [8979], "characters": "\u2313"}, + "∝": {"codepoints": [8733], "characters": "\u221D"}, + "∝": {"codepoints": [8733], "characters": "\u221D"}, + "∷": {"codepoints": [8759], "characters": "\u2237"}, + "∝": {"codepoints": [8733], "characters": "\u221D"}, + "≾": {"codepoints": [8830], "characters": "\u227E"}, + "⊰": {"codepoints": [8880], "characters": "\u22B0"}, + "𝒫": {"codepoints": [119979], "characters": "\uD835\uDCAB"}, + "𝓅": {"codepoints": [120005], "characters": "\uD835\uDCC5"}, + "Ψ": {"codepoints": [936], "characters": "\u03A8"}, + "ψ": {"codepoints": [968], "characters": "\u03C8"}, + " ": {"codepoints": [8200], "characters": "\u2008"}, + "𝔔": {"codepoints": [120084], "characters": "\uD835\uDD14"}, + "𝔮": {"codepoints": [120110], "characters": "\uD835\uDD2E"}, + "⨌": {"codepoints": [10764], "characters": "\u2A0C"}, + "𝕢": {"codepoints": [120162], "characters": "\uD835\uDD62"}, + "ℚ": {"codepoints": [8474], "characters": "\u211A"}, + "⁗": {"codepoints": [8279], "characters": "\u2057"}, + "𝒬": {"codepoints": [119980], "characters": "\uD835\uDCAC"}, + "𝓆": {"codepoints": [120006], "characters": "\uD835\uDCC6"}, + "ℍ": {"codepoints": [8461], "characters": "\u210D"}, + "⨖": {"codepoints": [10774], "characters": "\u2A16"}, + "?": {"codepoints": [63], "characters": "\u003F"}, + "≟": {"codepoints": [8799], "characters": "\u225F"}, + """: {"codepoints": [34], "characters": "\u0022"}, + """: {"codepoints": [34], "characters": "\u0022"}, + """: {"codepoints": [34], "characters": "\u0022"}, + """: {"codepoints": [34], "characters": "\u0022"}, + "⇛": {"codepoints": [8667], "characters": "\u21DB"}, + "∽̱": {"codepoints": [8765, 817], "characters": "\u223D\u0331"}, + "Ŕ": {"codepoints": [340], "characters": "\u0154"}, + "ŕ": {"codepoints": [341], "characters": "\u0155"}, + "√": {"codepoints": [8730], "characters": "\u221A"}, + "⦳": {"codepoints": [10675], "characters": "\u29B3"}, + "⟩": {"codepoints": [10217], "characters": "\u27E9"}, + "⟫": {"codepoints": [10219], "characters": "\u27EB"}, + "⦒": {"codepoints": [10642], "characters": "\u2992"}, + "⦥": {"codepoints": [10661], "characters": "\u29A5"}, + "⟩": {"codepoints": [10217], "characters": "\u27E9"}, + "»": {"codepoints": [187], "characters": "\u00BB"}, + "»": {"codepoints": [187], "characters": "\u00BB"}, + "⥵": {"codepoints": [10613], "characters": "\u2975"}, + "⇥": {"codepoints": [8677], "characters": "\u21E5"}, + "⤠": {"codepoints": [10528], "characters": "\u2920"}, + "⤳": {"codepoints": [10547], "characters": "\u2933"}, + "→": {"codepoints": [8594], "characters": "\u2192"}, + "↠": {"codepoints": [8608], "characters": "\u21A0"}, + "⇒": {"codepoints": [8658], "characters": "\u21D2"}, + "⤞": {"codepoints": [10526], "characters": "\u291E"}, + "↪": {"codepoints": [8618], "characters": "\u21AA"}, + "↬": {"codepoints": [8620], "characters": "\u21AC"}, + "⥅": {"codepoints": [10565], "characters": "\u2945"}, + "⥴": {"codepoints": [10612], "characters": "\u2974"}, + "⤖": {"codepoints": [10518], "characters": "\u2916"}, + "↣": {"codepoints": [8611], "characters": "\u21A3"}, + "↝": {"codepoints": [8605], "characters": "\u219D"}, + "⤚": {"codepoints": [10522], "characters": "\u291A"}, + "⤜": {"codepoints": [10524], "characters": "\u291C"}, + "∶": {"codepoints": [8758], "characters": "\u2236"}, + "ℚ": {"codepoints": [8474], "characters": "\u211A"}, + "⤍": {"codepoints": [10509], "characters": "\u290D"}, + "⤏": {"codepoints": [10511], "characters": "\u290F"}, + "⤐": {"codepoints": [10512], "characters": "\u2910"}, + "❳": {"codepoints": [10099], "characters": "\u2773"}, + "}": {"codepoints": [125], "characters": "\u007D"}, + "]": {"codepoints": [93], "characters": "\u005D"}, + "⦌": {"codepoints": [10636], "characters": "\u298C"}, + "⦎": {"codepoints": [10638], "characters": "\u298E"}, + "⦐": {"codepoints": [10640], "characters": "\u2990"}, + "Ř": {"codepoints": [344], "characters": "\u0158"}, + "ř": {"codepoints": [345], "characters": "\u0159"}, + "Ŗ": {"codepoints": [342], "characters": "\u0156"}, + "ŗ": {"codepoints": [343], "characters": "\u0157"}, + "⌉": {"codepoints": [8969], "characters": "\u2309"}, + "}": {"codepoints": [125], "characters": "\u007D"}, + "Р": {"codepoints": [1056], "characters": "\u0420"}, + "р": {"codepoints": [1088], "characters": "\u0440"}, + "⤷": {"codepoints": [10551], "characters": "\u2937"}, + "⥩": {"codepoints": [10601], "characters": "\u2969"}, + "”": {"codepoints": [8221], "characters": "\u201D"}, + "”": {"codepoints": [8221], "characters": "\u201D"}, + "↳": {"codepoints": [8627], "characters": "\u21B3"}, + "ℜ": {"codepoints": [8476], "characters": "\u211C"}, + "ℛ": {"codepoints": [8475], "characters": "\u211B"}, + "ℜ": {"codepoints": [8476], "characters": "\u211C"}, + "ℝ": {"codepoints": [8477], "characters": "\u211D"}, + "ℜ": {"codepoints": [8476], "characters": "\u211C"}, + "▭": {"codepoints": [9645], "characters": "\u25AD"}, + "®": {"codepoints": [174], "characters": "\u00AE"}, + "®": {"codepoints": [174], "characters": "\u00AE"}, + "®": {"codepoints": [174], "characters": "\u00AE"}, + "®": {"codepoints": [174], "characters": "\u00AE"}, + "∋": {"codepoints": [8715], "characters": "\u220B"}, + "⇋": {"codepoints": [8651], "characters": "\u21CB"}, + "⥯": {"codepoints": [10607], "characters": "\u296F"}, + "⥽": {"codepoints": [10621], "characters": "\u297D"}, + "⌋": {"codepoints": [8971], "characters": "\u230B"}, + "𝔯": {"codepoints": [120111], "characters": "\uD835\uDD2F"}, + "ℜ": {"codepoints": [8476], "characters": "\u211C"}, + "⥤": {"codepoints": [10596], "characters": "\u2964"}, + "⇁": {"codepoints": [8641], "characters": "\u21C1"}, + "⇀": {"codepoints": [8640], "characters": "\u21C0"}, + "⥬": {"codepoints": [10604], "characters": "\u296C"}, + "Ρ": {"codepoints": [929], "characters": "\u03A1"}, + "ρ": {"codepoints": [961], "characters": "\u03C1"}, + "ϱ": {"codepoints": [1009], "characters": "\u03F1"}, + "⟩": {"codepoints": [10217], "characters": "\u27E9"}, + "⇥": {"codepoints": [8677], "characters": "\u21E5"}, + "→": {"codepoints": [8594], "characters": "\u2192"}, + "→": {"codepoints": [8594], "characters": "\u2192"}, + "⇒": {"codepoints": [8658], "characters": "\u21D2"}, + "⇄": {"codepoints": [8644], "characters": "\u21C4"}, + "↣": {"codepoints": [8611], "characters": "\u21A3"}, + "⌉": {"codepoints": [8969], "characters": "\u2309"}, + "⟧": {"codepoints": [10215], "characters": "\u27E7"}, + "⥝": {"codepoints": [10589], "characters": "\u295D"}, + "⥕": {"codepoints": [10581], "characters": "\u2955"}, + "⇂": {"codepoints": [8642], "characters": "\u21C2"}, + "⌋": {"codepoints": [8971], "characters": "\u230B"}, + "⇁": {"codepoints": [8641], "characters": "\u21C1"}, + "⇀": {"codepoints": [8640], "characters": "\u21C0"}, + "⇄": {"codepoints": [8644], "characters": "\u21C4"}, + "⇌": {"codepoints": [8652], "characters": "\u21CC"}, + "⇉": {"codepoints": [8649], "characters": "\u21C9"}, + "↝": {"codepoints": [8605], "characters": "\u219D"}, + "↦": {"codepoints": [8614], "characters": "\u21A6"}, + "⊢": {"codepoints": [8866], "characters": "\u22A2"}, + "⥛": {"codepoints": [10587], "characters": "\u295B"}, + "⋌": {"codepoints": [8908], "characters": "\u22CC"}, + "⧐": {"codepoints": [10704], "characters": "\u29D0"}, + "⊳": {"codepoints": [8883], "characters": "\u22B3"}, + "⊵": {"codepoints": [8885], "characters": "\u22B5"}, + "⥏": {"codepoints": [10575], "characters": "\u294F"}, + "⥜": {"codepoints": [10588], "characters": "\u295C"}, + "⥔": {"codepoints": [10580], "characters": "\u2954"}, + "↾": {"codepoints": [8638], "characters": "\u21BE"}, + "⥓": {"codepoints": [10579], "characters": "\u2953"}, + "⇀": {"codepoints": [8640], "characters": "\u21C0"}, + "˚": {"codepoints": [730], "characters": "\u02DA"}, + "≓": {"codepoints": [8787], "characters": "\u2253"}, + "⇄": {"codepoints": [8644], "characters": "\u21C4"}, + "⇌": {"codepoints": [8652], "characters": "\u21CC"}, + "‏": {"codepoints": [8207], "characters": "\u200F"}, + "⎱": {"codepoints": [9137], "characters": "\u23B1"}, + "⎱": {"codepoints": [9137], "characters": "\u23B1"}, + "⫮": {"codepoints": [10990], "characters": "\u2AEE"}, + "⟭": {"codepoints": [10221], "characters": "\u27ED"}, + "⇾": {"codepoints": [8702], "characters": "\u21FE"}, + "⟧": {"codepoints": [10215], "characters": "\u27E7"}, + "⦆": {"codepoints": [10630], "characters": "\u2986"}, + "𝕣": {"codepoints": [120163], "characters": "\uD835\uDD63"}, + "ℝ": {"codepoints": [8477], "characters": "\u211D"}, + "⨮": {"codepoints": [10798], "characters": "\u2A2E"}, + "⨵": {"codepoints": [10805], "characters": "\u2A35"}, + "⥰": {"codepoints": [10608], "characters": "\u2970"}, + ")": {"codepoints": [41], "characters": "\u0029"}, + "⦔": {"codepoints": [10644], "characters": "\u2994"}, + "⨒": {"codepoints": [10770], "characters": "\u2A12"}, + "⇉": {"codepoints": [8649], "characters": "\u21C9"}, + "⇛": {"codepoints": [8667], "characters": "\u21DB"}, + "›": {"codepoints": [8250], "characters": "\u203A"}, + "𝓇": {"codepoints": [120007], "characters": "\uD835\uDCC7"}, + "ℛ": {"codepoints": [8475], "characters": "\u211B"}, + "↱": {"codepoints": [8625], "characters": "\u21B1"}, + "↱": {"codepoints": [8625], "characters": "\u21B1"}, + "]": {"codepoints": [93], "characters": "\u005D"}, + "’": {"codepoints": [8217], "characters": "\u2019"}, + "’": {"codepoints": [8217], "characters": "\u2019"}, + "⋌": {"codepoints": [8908], "characters": "\u22CC"}, + "⋊": {"codepoints": [8906], "characters": "\u22CA"}, + "▹": {"codepoints": [9657], "characters": "\u25B9"}, + "⊵": {"codepoints": [8885], "characters": "\u22B5"}, + "▸": {"codepoints": [9656], "characters": "\u25B8"}, + "⧎": {"codepoints": [10702], "characters": "\u29CE"}, + "⧴": {"codepoints": [10740], "characters": "\u29F4"}, + "⥨": {"codepoints": [10600], "characters": "\u2968"}, + "℞": {"codepoints": [8478], "characters": "\u211E"}, + "Ś": {"codepoints": [346], "characters": "\u015A"}, + "ś": {"codepoints": [347], "characters": "\u015B"}, + "‚": {"codepoints": [8218], "characters": "\u201A"}, + "⪸": {"codepoints": [10936], "characters": "\u2AB8"}, + "Š": {"codepoints": [352], "characters": "\u0160"}, + "š": {"codepoints": [353], "characters": "\u0161"}, + "⪼": {"codepoints": [10940], "characters": "\u2ABC"}, + "≻": {"codepoints": [8827], "characters": "\u227B"}, + "≽": {"codepoints": [8829], "characters": "\u227D"}, + "⪰": {"codepoints": [10928], "characters": "\u2AB0"}, + "⪴": {"codepoints": [10932], "characters": "\u2AB4"}, + "Ş": {"codepoints": [350], "characters": "\u015E"}, + "ş": {"codepoints": [351], "characters": "\u015F"}, + "Ŝ": {"codepoints": [348], "characters": "\u015C"}, + "ŝ": {"codepoints": [349], "characters": "\u015D"}, + "⪺": {"codepoints": [10938], "characters": "\u2ABA"}, + "⪶": {"codepoints": [10934], "characters": "\u2AB6"}, + "⋩": {"codepoints": [8937], "characters": "\u22E9"}, + "⨓": {"codepoints": [10771], "characters": "\u2A13"}, + "≿": {"codepoints": [8831], "characters": "\u227F"}, + "С": {"codepoints": [1057], "characters": "\u0421"}, + "с": {"codepoints": [1089], "characters": "\u0441"}, + "⊡": {"codepoints": [8865], "characters": "\u22A1"}, + "⋅": {"codepoints": [8901], "characters": "\u22C5"}, + "⩦": {"codepoints": [10854], "characters": "\u2A66"}, + "⤥": {"codepoints": [10533], "characters": "\u2925"}, + "↘": {"codepoints": [8600], "characters": "\u2198"}, + "⇘": {"codepoints": [8664], "characters": "\u21D8"}, + "↘": {"codepoints": [8600], "characters": "\u2198"}, + "§": {"codepoints": [167], "characters": "\u00A7"}, + "§": {"codepoints": [167], "characters": "\u00A7"}, + ";": {"codepoints": [59], "characters": "\u003B"}, + "⤩": {"codepoints": [10537], "characters": "\u2929"}, + "∖": {"codepoints": [8726], "characters": "\u2216"}, + "∖": {"codepoints": [8726], "characters": "\u2216"}, + "✶": {"codepoints": [10038], "characters": "\u2736"}, + "𝔖": {"codepoints": [120086], "characters": "\uD835\uDD16"}, + "𝔰": {"codepoints": [120112], "characters": "\uD835\uDD30"}, + "⌢": {"codepoints": [8994], "characters": "\u2322"}, + "♯": {"codepoints": [9839], "characters": "\u266F"}, + "Щ": {"codepoints": [1065], "characters": "\u0429"}, + "щ": {"codepoints": [1097], "characters": "\u0449"}, + "Ш": {"codepoints": [1064], "characters": "\u0428"}, + "ш": {"codepoints": [1096], "characters": "\u0448"}, + "↓": {"codepoints": [8595], "characters": "\u2193"}, + "←": {"codepoints": [8592], "characters": "\u2190"}, + "∣": {"codepoints": [8739], "characters": "\u2223"}, + "∥": {"codepoints": [8741], "characters": "\u2225"}, + "→": {"codepoints": [8594], "characters": "\u2192"}, + "↑": {"codepoints": [8593], "characters": "\u2191"}, + "­": {"codepoints": [173], "characters": "\u00AD"}, + "­": {"codepoints": [173], "characters": "\u00AD"}, + "Σ": {"codepoints": [931], "characters": "\u03A3"}, + "σ": {"codepoints": [963], "characters": "\u03C3"}, + "ς": {"codepoints": [962], "characters": "\u03C2"}, + "ς": {"codepoints": [962], "characters": "\u03C2"}, + "∼": {"codepoints": [8764], "characters": "\u223C"}, + "⩪": {"codepoints": [10858], "characters": "\u2A6A"}, + "≃": {"codepoints": [8771], "characters": "\u2243"}, + "≃": {"codepoints": [8771], "characters": "\u2243"}, + "⪞": {"codepoints": [10910], "characters": "\u2A9E"}, + "⪠": {"codepoints": [10912], "characters": "\u2AA0"}, + "⪝": {"codepoints": [10909], "characters": "\u2A9D"}, + "⪟": {"codepoints": [10911], "characters": "\u2A9F"}, + "≆": {"codepoints": [8774], "characters": "\u2246"}, + "⨤": {"codepoints": [10788], "characters": "\u2A24"}, + "⥲": {"codepoints": [10610], "characters": "\u2972"}, + "←": {"codepoints": [8592], "characters": "\u2190"}, + "∘": {"codepoints": [8728], "characters": "\u2218"}, + "∖": {"codepoints": [8726], "characters": "\u2216"}, + "⨳": {"codepoints": [10803], "characters": "\u2A33"}, + "⧤": {"codepoints": [10724], "characters": "\u29E4"}, + "∣": {"codepoints": [8739], "characters": "\u2223"}, + "⌣": {"codepoints": [8995], "characters": "\u2323"}, + "⪪": {"codepoints": [10922], "characters": "\u2AAA"}, + "⪬": {"codepoints": [10924], "characters": "\u2AAC"}, + "⪬︀": {"codepoints": [10924, 65024], "characters": "\u2AAC\uFE00"}, + "Ь": {"codepoints": [1068], "characters": "\u042C"}, + "ь": {"codepoints": [1100], "characters": "\u044C"}, + "⌿": {"codepoints": [9023], "characters": "\u233F"}, + "⧄": {"codepoints": [10692], "characters": "\u29C4"}, + "/": {"codepoints": [47], "characters": "\u002F"}, + "𝕊": {"codepoints": [120138], "characters": "\uD835\uDD4A"}, + "𝕤": {"codepoints": [120164], "characters": "\uD835\uDD64"}, + "♠": {"codepoints": [9824], "characters": "\u2660"}, + "♠": {"codepoints": [9824], "characters": "\u2660"}, + "∥": {"codepoints": [8741], "characters": "\u2225"}, + "⊓": {"codepoints": [8851], "characters": "\u2293"}, + "⊓︀": {"codepoints": [8851, 65024], "characters": "\u2293\uFE00"}, + "⊔": {"codepoints": [8852], "characters": "\u2294"}, + "⊔︀": {"codepoints": [8852, 65024], "characters": "\u2294\uFE00"}, + "√": {"codepoints": [8730], "characters": "\u221A"}, + "⊏": {"codepoints": [8847], "characters": "\u228F"}, + "⊑": {"codepoints": [8849], "characters": "\u2291"}, + "⊏": {"codepoints": [8847], "characters": "\u228F"}, + "⊑": {"codepoints": [8849], "characters": "\u2291"}, + "⊐": {"codepoints": [8848], "characters": "\u2290"}, + "⊒": {"codepoints": [8850], "characters": "\u2292"}, + "⊐": {"codepoints": [8848], "characters": "\u2290"}, + "⊒": {"codepoints": [8850], "characters": "\u2292"}, + "□": {"codepoints": [9633], "characters": "\u25A1"}, + "□": {"codepoints": [9633], "characters": "\u25A1"}, + "⊓": {"codepoints": [8851], "characters": "\u2293"}, + "⊏": {"codepoints": [8847], "characters": "\u228F"}, + "⊑": {"codepoints": [8849], "characters": "\u2291"}, + "⊐": {"codepoints": [8848], "characters": "\u2290"}, + "⊒": {"codepoints": [8850], "characters": "\u2292"}, + "⊔": {"codepoints": [8852], "characters": "\u2294"}, + "▪": {"codepoints": [9642], "characters": "\u25AA"}, + "□": {"codepoints": [9633], "characters": "\u25A1"}, + "▪": {"codepoints": [9642], "characters": "\u25AA"}, + "→": {"codepoints": [8594], "characters": "\u2192"}, + "𝒮": {"codepoints": [119982], "characters": "\uD835\uDCAE"}, + "𝓈": {"codepoints": [120008], "characters": "\uD835\uDCC8"}, + "∖": {"codepoints": [8726], "characters": "\u2216"}, + "⌣": {"codepoints": [8995], "characters": "\u2323"}, + "⋆": {"codepoints": [8902], "characters": "\u22C6"}, + "⋆": {"codepoints": [8902], "characters": "\u22C6"}, + "☆": {"codepoints": [9734], "characters": "\u2606"}, + "★": {"codepoints": [9733], "characters": "\u2605"}, + "ϵ": {"codepoints": [1013], "characters": "\u03F5"}, + "ϕ": {"codepoints": [981], "characters": "\u03D5"}, + "¯": {"codepoints": [175], "characters": "\u00AF"}, + "⊂": {"codepoints": [8834], "characters": "\u2282"}, + "⋐": {"codepoints": [8912], "characters": "\u22D0"}, + "⪽": {"codepoints": [10941], "characters": "\u2ABD"}, + "⫅": {"codepoints": [10949], "characters": "\u2AC5"}, + "⊆": {"codepoints": [8838], "characters": "\u2286"}, + "⫃": {"codepoints": [10947], "characters": "\u2AC3"}, + "⫁": {"codepoints": [10945], "characters": "\u2AC1"}, + "⫋": {"codepoints": [10955], "characters": "\u2ACB"}, + "⊊": {"codepoints": [8842], "characters": "\u228A"}, + "⪿": {"codepoints": [10943], "characters": "\u2ABF"}, + "⥹": {"codepoints": [10617], "characters": "\u2979"}, + "⊂": {"codepoints": [8834], "characters": "\u2282"}, + "⋐": {"codepoints": [8912], "characters": "\u22D0"}, + "⊆": {"codepoints": [8838], "characters": "\u2286"}, + "⫅": {"codepoints": [10949], "characters": "\u2AC5"}, + "⊆": {"codepoints": [8838], "characters": "\u2286"}, + "⊊": {"codepoints": [8842], "characters": "\u228A"}, + "⫋": {"codepoints": [10955], "characters": "\u2ACB"}, + "⫇": {"codepoints": [10951], "characters": "\u2AC7"}, + "⫕": {"codepoints": [10965], "characters": "\u2AD5"}, + "⫓": {"codepoints": [10963], "characters": "\u2AD3"}, + "⪸": {"codepoints": [10936], "characters": "\u2AB8"}, + "≻": {"codepoints": [8827], "characters": "\u227B"}, + "≽": {"codepoints": [8829], "characters": "\u227D"}, + "≻": {"codepoints": [8827], "characters": "\u227B"}, + "⪰": {"codepoints": [10928], "characters": "\u2AB0"}, + "≽": {"codepoints": [8829], "characters": "\u227D"}, + "≿": {"codepoints": [8831], "characters": "\u227F"}, + "⪰": {"codepoints": [10928], "characters": "\u2AB0"}, + "⪺": {"codepoints": [10938], "characters": "\u2ABA"}, + "⪶": {"codepoints": [10934], "characters": "\u2AB6"}, + "⋩": {"codepoints": [8937], "characters": "\u22E9"}, + "≿": {"codepoints": [8831], "characters": "\u227F"}, + "∋": {"codepoints": [8715], "characters": "\u220B"}, + "∑": {"codepoints": [8721], "characters": "\u2211"}, + "∑": {"codepoints": [8721], "characters": "\u2211"}, + "♪": {"codepoints": [9834], "characters": "\u266A"}, + "¹": {"codepoints": [185], "characters": "\u00B9"}, + "¹": {"codepoints": [185], "characters": "\u00B9"}, + "²": {"codepoints": [178], "characters": "\u00B2"}, + "²": {"codepoints": [178], "characters": "\u00B2"}, + "³": {"codepoints": [179], "characters": "\u00B3"}, + "³": {"codepoints": [179], "characters": "\u00B3"}, + "⊃": {"codepoints": [8835], "characters": "\u2283"}, + "⋑": {"codepoints": [8913], "characters": "\u22D1"}, + "⪾": {"codepoints": [10942], "characters": "\u2ABE"}, + "⫘": {"codepoints": [10968], "characters": "\u2AD8"}, + "⫆": {"codepoints": [10950], "characters": "\u2AC6"}, + "⊇": {"codepoints": [8839], "characters": "\u2287"}, + "⫄": {"codepoints": [10948], "characters": "\u2AC4"}, + "⊃": {"codepoints": [8835], "characters": "\u2283"}, + "⊇": {"codepoints": [8839], "characters": "\u2287"}, + "⟉": {"codepoints": [10185], "characters": "\u27C9"}, + "⫗": {"codepoints": [10967], "characters": "\u2AD7"}, + "⥻": {"codepoints": [10619], "characters": "\u297B"}, + "⫂": {"codepoints": [10946], "characters": "\u2AC2"}, + "⫌": {"codepoints": [10956], "characters": "\u2ACC"}, + "⊋": {"codepoints": [8843], "characters": "\u228B"}, + "⫀": {"codepoints": [10944], "characters": "\u2AC0"}, + "⊃": {"codepoints": [8835], "characters": "\u2283"}, + "⋑": {"codepoints": [8913], "characters": "\u22D1"}, + "⊇": {"codepoints": [8839], "characters": "\u2287"}, + "⫆": {"codepoints": [10950], "characters": "\u2AC6"}, + "⊋": {"codepoints": [8843], "characters": "\u228B"}, + "⫌": {"codepoints": [10956], "characters": "\u2ACC"}, + "⫈": {"codepoints": [10952], "characters": "\u2AC8"}, + "⫔": {"codepoints": [10964], "characters": "\u2AD4"}, + "⫖": {"codepoints": [10966], "characters": "\u2AD6"}, + "⤦": {"codepoints": [10534], "characters": "\u2926"}, + "↙": {"codepoints": [8601], "characters": "\u2199"}, + "⇙": {"codepoints": [8665], "characters": "\u21D9"}, + "↙": {"codepoints": [8601], "characters": "\u2199"}, + "⤪": {"codepoints": [10538], "characters": "\u292A"}, + "ß": {"codepoints": [223], "characters": "\u00DF"}, + "ß": {"codepoints": [223], "characters": "\u00DF"}, + " ": {"codepoints": [9], "characters": "\u0009"}, + "⌖": {"codepoints": [8982], "characters": "\u2316"}, + "Τ": {"codepoints": [932], "characters": "\u03A4"}, + "τ": {"codepoints": [964], "characters": "\u03C4"}, + "⎴": {"codepoints": [9140], "characters": "\u23B4"}, + "Ť": {"codepoints": [356], "characters": "\u0164"}, + "ť": {"codepoints": [357], "characters": "\u0165"}, + "Ţ": {"codepoints": [354], "characters": "\u0162"}, + "ţ": {"codepoints": [355], "characters": "\u0163"}, + "Т": {"codepoints": [1058], "characters": "\u0422"}, + "т": {"codepoints": [1090], "characters": "\u0442"}, + "⃛": {"codepoints": [8411], "characters": "\u20DB"}, + "⌕": {"codepoints": [8981], "characters": "\u2315"}, + "𝔗": {"codepoints": [120087], "characters": "\uD835\uDD17"}, + "𝔱": {"codepoints": [120113], "characters": "\uD835\uDD31"}, + "∴": {"codepoints": [8756], "characters": "\u2234"}, + "∴": {"codepoints": [8756], "characters": "\u2234"}, + "∴": {"codepoints": [8756], "characters": "\u2234"}, + "Θ": {"codepoints": [920], "characters": "\u0398"}, + "θ": {"codepoints": [952], "characters": "\u03B8"}, + "ϑ": {"codepoints": [977], "characters": "\u03D1"}, + "ϑ": {"codepoints": [977], "characters": "\u03D1"}, + "≈": {"codepoints": [8776], "characters": "\u2248"}, + "∼": {"codepoints": [8764], "characters": "\u223C"}, + "  ": {"codepoints": [8287, 8202], "characters": "\u205F\u200A"}, + " ": {"codepoints": [8201], "characters": "\u2009"}, + " ": {"codepoints": [8201], "characters": "\u2009"}, + "≈": {"codepoints": [8776], "characters": "\u2248"}, + "∼": {"codepoints": [8764], "characters": "\u223C"}, + "Þ": {"codepoints": [222], "characters": "\u00DE"}, + "Þ": {"codepoints": [222], "characters": "\u00DE"}, + "þ": {"codepoints": [254], "characters": "\u00FE"}, + "þ": {"codepoints": [254], "characters": "\u00FE"}, + "˜": {"codepoints": [732], "characters": "\u02DC"}, + "∼": {"codepoints": [8764], "characters": "\u223C"}, + "≃": {"codepoints": [8771], "characters": "\u2243"}, + "≅": {"codepoints": [8773], "characters": "\u2245"}, + "≈": {"codepoints": [8776], "characters": "\u2248"}, + "⨱": {"codepoints": [10801], "characters": "\u2A31"}, + "⊠": {"codepoints": [8864], "characters": "\u22A0"}, + "×": {"codepoints": [215], "characters": "\u00D7"}, + "×": {"codepoints": [215], "characters": "\u00D7"}, + "⨰": {"codepoints": [10800], "characters": "\u2A30"}, + "∭": {"codepoints": [8749], "characters": "\u222D"}, + "⤨": {"codepoints": [10536], "characters": "\u2928"}, + "⌶": {"codepoints": [9014], "characters": "\u2336"}, + "⫱": {"codepoints": [10993], "characters": "\u2AF1"}, + "⊤": {"codepoints": [8868], "characters": "\u22A4"}, + "𝕋": {"codepoints": [120139], "characters": "\uD835\uDD4B"}, + "𝕥": {"codepoints": [120165], "characters": "\uD835\uDD65"}, + "⫚": {"codepoints": [10970], "characters": "\u2ADA"}, + "⤩": {"codepoints": [10537], "characters": "\u2929"}, + "‴": {"codepoints": [8244], "characters": "\u2034"}, + "™": {"codepoints": [8482], "characters": "\u2122"}, + "™": {"codepoints": [8482], "characters": "\u2122"}, + "▵": {"codepoints": [9653], "characters": "\u25B5"}, + "▿": {"codepoints": [9663], "characters": "\u25BF"}, + "◃": {"codepoints": [9667], "characters": "\u25C3"}, + "⊴": {"codepoints": [8884], "characters": "\u22B4"}, + "≜": {"codepoints": [8796], "characters": "\u225C"}, + "▹": {"codepoints": [9657], "characters": "\u25B9"}, + "⊵": {"codepoints": [8885], "characters": "\u22B5"}, + "◬": {"codepoints": [9708], "characters": "\u25EC"}, + "≜": {"codepoints": [8796], "characters": "\u225C"}, + "⨺": {"codepoints": [10810], "characters": "\u2A3A"}, + "⃛": {"codepoints": [8411], "characters": "\u20DB"}, + "⨹": {"codepoints": [10809], "characters": "\u2A39"}, + "⧍": {"codepoints": [10701], "characters": "\u29CD"}, + "⨻": {"codepoints": [10811], "characters": "\u2A3B"}, + "⏢": {"codepoints": [9186], "characters": "\u23E2"}, + "𝒯": {"codepoints": [119983], "characters": "\uD835\uDCAF"}, + "𝓉": {"codepoints": [120009], "characters": "\uD835\uDCC9"}, + "Ц": {"codepoints": [1062], "characters": "\u0426"}, + "ц": {"codepoints": [1094], "characters": "\u0446"}, + "Ћ": {"codepoints": [1035], "characters": "\u040B"}, + "ћ": {"codepoints": [1115], "characters": "\u045B"}, + "Ŧ": {"codepoints": [358], "characters": "\u0166"}, + "ŧ": {"codepoints": [359], "characters": "\u0167"}, + "≬": {"codepoints": [8812], "characters": "\u226C"}, + "↞": {"codepoints": [8606], "characters": "\u219E"}, + "↠": {"codepoints": [8608], "characters": "\u21A0"}, + "Ú": {"codepoints": [218], "characters": "\u00DA"}, + "Ú": {"codepoints": [218], "characters": "\u00DA"}, + "ú": {"codepoints": [250], "characters": "\u00FA"}, + "ú": {"codepoints": [250], "characters": "\u00FA"}, + "↑": {"codepoints": [8593], "characters": "\u2191"}, + "↟": {"codepoints": [8607], "characters": "\u219F"}, + "⇑": {"codepoints": [8657], "characters": "\u21D1"}, + "⥉": {"codepoints": [10569], "characters": "\u2949"}, + "Ў": {"codepoints": [1038], "characters": "\u040E"}, + "ў": {"codepoints": [1118], "characters": "\u045E"}, + "Ŭ": {"codepoints": [364], "characters": "\u016C"}, + "ŭ": {"codepoints": [365], "characters": "\u016D"}, + "Û": {"codepoints": [219], "characters": "\u00DB"}, + "Û": {"codepoints": [219], "characters": "\u00DB"}, + "û": {"codepoints": [251], "characters": "\u00FB"}, + "û": {"codepoints": [251], "characters": "\u00FB"}, + "У": {"codepoints": [1059], "characters": "\u0423"}, + "у": {"codepoints": [1091], "characters": "\u0443"}, + "⇅": {"codepoints": [8645], "characters": "\u21C5"}, + "Ű": {"codepoints": [368], "characters": "\u0170"}, + "ű": {"codepoints": [369], "characters": "\u0171"}, + "⥮": {"codepoints": [10606], "characters": "\u296E"}, + "⥾": {"codepoints": [10622], "characters": "\u297E"}, + "𝔘": {"codepoints": [120088], "characters": "\uD835\uDD18"}, + "𝔲": {"codepoints": [120114], "characters": "\uD835\uDD32"}, + "Ù": {"codepoints": [217], "characters": "\u00D9"}, + "Ù": {"codepoints": [217], "characters": "\u00D9"}, + "ù": {"codepoints": [249], "characters": "\u00F9"}, + "ù": {"codepoints": [249], "characters": "\u00F9"}, + "⥣": {"codepoints": [10595], "characters": "\u2963"}, + "↿": {"codepoints": [8639], "characters": "\u21BF"}, + "↾": {"codepoints": [8638], "characters": "\u21BE"}, + "▀": {"codepoints": [9600], "characters": "\u2580"}, + "⌜": {"codepoints": [8988], "characters": "\u231C"}, + "⌜": {"codepoints": [8988], "characters": "\u231C"}, + "⌏": {"codepoints": [8975], "characters": "\u230F"}, + "◸": {"codepoints": [9720], "characters": "\u25F8"}, + "Ū": {"codepoints": [362], "characters": "\u016A"}, + "ū": {"codepoints": [363], "characters": "\u016B"}, + "¨": {"codepoints": [168], "characters": "\u00A8"}, + "¨": {"codepoints": [168], "characters": "\u00A8"}, + "_": {"codepoints": [95], "characters": "\u005F"}, + "⏟": {"codepoints": [9183], "characters": "\u23DF"}, + "⎵": {"codepoints": [9141], "characters": "\u23B5"}, + "⏝": {"codepoints": [9181], "characters": "\u23DD"}, + "⋃": {"codepoints": [8899], "characters": "\u22C3"}, + "⊎": {"codepoints": [8846], "characters": "\u228E"}, + "Ų": {"codepoints": [370], "characters": "\u0172"}, + "ų": {"codepoints": [371], "characters": "\u0173"}, + "𝕌": {"codepoints": [120140], "characters": "\uD835\uDD4C"}, + "𝕦": {"codepoints": [120166], "characters": "\uD835\uDD66"}, + "⤒": {"codepoints": [10514], "characters": "\u2912"}, + "↑": {"codepoints": [8593], "characters": "\u2191"}, + "↑": {"codepoints": [8593], "characters": "\u2191"}, + "⇑": {"codepoints": [8657], "characters": "\u21D1"}, + "⇅": {"codepoints": [8645], "characters": "\u21C5"}, + "↕": {"codepoints": [8597], "characters": "\u2195"}, + "↕": {"codepoints": [8597], "characters": "\u2195"}, + "⇕": {"codepoints": [8661], "characters": "\u21D5"}, + "⥮": {"codepoints": [10606], "characters": "\u296E"}, + "↿": {"codepoints": [8639], "characters": "\u21BF"}, + "↾": {"codepoints": [8638], "characters": "\u21BE"}, + "⊎": {"codepoints": [8846], "characters": "\u228E"}, + "↖": {"codepoints": [8598], "characters": "\u2196"}, + "↗": {"codepoints": [8599], "characters": "\u2197"}, + "υ": {"codepoints": [965], "characters": "\u03C5"}, + "ϒ": {"codepoints": [978], "characters": "\u03D2"}, + "ϒ": {"codepoints": [978], "characters": "\u03D2"}, + "Υ": {"codepoints": [933], "characters": "\u03A5"}, + "υ": {"codepoints": [965], "characters": "\u03C5"}, + "↥": {"codepoints": [8613], "characters": "\u21A5"}, + "⊥": {"codepoints": [8869], "characters": "\u22A5"}, + "⇈": {"codepoints": [8648], "characters": "\u21C8"}, + "⌝": {"codepoints": [8989], "characters": "\u231D"}, + "⌝": {"codepoints": [8989], "characters": "\u231D"}, + "⌎": {"codepoints": [8974], "characters": "\u230E"}, + "Ů": {"codepoints": [366], "characters": "\u016E"}, + "ů": {"codepoints": [367], "characters": "\u016F"}, + "◹": {"codepoints": [9721], "characters": "\u25F9"}, + "𝒰": {"codepoints": [119984], "characters": "\uD835\uDCB0"}, + "𝓊": {"codepoints": [120010], "characters": "\uD835\uDCCA"}, + "⋰": {"codepoints": [8944], "characters": "\u22F0"}, + "Ũ": {"codepoints": [360], "characters": "\u0168"}, + "ũ": {"codepoints": [361], "characters": "\u0169"}, + "▵": {"codepoints": [9653], "characters": "\u25B5"}, + "▴": {"codepoints": [9652], "characters": "\u25B4"}, + "⇈": {"codepoints": [8648], "characters": "\u21C8"}, + "Ü": {"codepoints": [220], "characters": "\u00DC"}, + "Ü": {"codepoints": [220], "characters": "\u00DC"}, + "ü": {"codepoints": [252], "characters": "\u00FC"}, + "ü": {"codepoints": [252], "characters": "\u00FC"}, + "⦧": {"codepoints": [10663], "characters": "\u29A7"}, + "⦜": {"codepoints": [10652], "characters": "\u299C"}, + "ϵ": {"codepoints": [1013], "characters": "\u03F5"}, + "ϰ": {"codepoints": [1008], "characters": "\u03F0"}, + "∅": {"codepoints": [8709], "characters": "\u2205"}, + "ϕ": {"codepoints": [981], "characters": "\u03D5"}, + "ϖ": {"codepoints": [982], "characters": "\u03D6"}, + "∝": {"codepoints": [8733], "characters": "\u221D"}, + "↕": {"codepoints": [8597], "characters": "\u2195"}, + "⇕": {"codepoints": [8661], "characters": "\u21D5"}, + "ϱ": {"codepoints": [1009], "characters": "\u03F1"}, + "ς": {"codepoints": [962], "characters": "\u03C2"}, + "⊊︀": {"codepoints": [8842, 65024], "characters": "\u228A\uFE00"}, + "⫋︀": {"codepoints": [10955, 65024], "characters": "\u2ACB\uFE00"}, + "⊋︀": {"codepoints": [8843, 65024], "characters": "\u228B\uFE00"}, + "⫌︀": {"codepoints": [10956, 65024], "characters": "\u2ACC\uFE00"}, + "ϑ": {"codepoints": [977], "characters": "\u03D1"}, + "⊲": {"codepoints": [8882], "characters": "\u22B2"}, + "⊳": {"codepoints": [8883], "characters": "\u22B3"}, + "⫨": {"codepoints": [10984], "characters": "\u2AE8"}, + "⫫": {"codepoints": [10987], "characters": "\u2AEB"}, + "⫩": {"codepoints": [10985], "characters": "\u2AE9"}, + "В": {"codepoints": [1042], "characters": "\u0412"}, + "в": {"codepoints": [1074], "characters": "\u0432"}, + "⊢": {"codepoints": [8866], "characters": "\u22A2"}, + "⊨": {"codepoints": [8872], "characters": "\u22A8"}, + "⊩": {"codepoints": [8873], "characters": "\u22A9"}, + "⊫": {"codepoints": [8875], "characters": "\u22AB"}, + "⫦": {"codepoints": [10982], "characters": "\u2AE6"}, + "⊻": {"codepoints": [8891], "characters": "\u22BB"}, + "∨": {"codepoints": [8744], "characters": "\u2228"}, + "⋁": {"codepoints": [8897], "characters": "\u22C1"}, + "≚": {"codepoints": [8794], "characters": "\u225A"}, + "⋮": {"codepoints": [8942], "characters": "\u22EE"}, + "|": {"codepoints": [124], "characters": "\u007C"}, + "‖": {"codepoints": [8214], "characters": "\u2016"}, + "|": {"codepoints": [124], "characters": "\u007C"}, + "‖": {"codepoints": [8214], "characters": "\u2016"}, + "∣": {"codepoints": [8739], "characters": "\u2223"}, + "|": {"codepoints": [124], "characters": "\u007C"}, + "❘": {"codepoints": [10072], "characters": "\u2758"}, + "≀": {"codepoints": [8768], "characters": "\u2240"}, + " ": {"codepoints": [8202], "characters": "\u200A"}, + "𝔙": {"codepoints": [120089], "characters": "\uD835\uDD19"}, + "𝔳": {"codepoints": [120115], "characters": "\uD835\uDD33"}, + "⊲": {"codepoints": [8882], "characters": "\u22B2"}, + "⊂⃒": {"codepoints": [8834, 8402], "characters": "\u2282\u20D2"}, + "⊃⃒": {"codepoints": [8835, 8402], "characters": "\u2283\u20D2"}, + "𝕍": {"codepoints": [120141], "characters": "\uD835\uDD4D"}, + "𝕧": {"codepoints": [120167], "characters": "\uD835\uDD67"}, + "∝": {"codepoints": [8733], "characters": "\u221D"}, + "⊳": {"codepoints": [8883], "characters": "\u22B3"}, + "𝒱": {"codepoints": [119985], "characters": "\uD835\uDCB1"}, + "𝓋": {"codepoints": [120011], "characters": "\uD835\uDCCB"}, + "⫋︀": {"codepoints": [10955, 65024], "characters": "\u2ACB\uFE00"}, + "⊊︀": {"codepoints": [8842, 65024], "characters": "\u228A\uFE00"}, + "⫌︀": {"codepoints": [10956, 65024], "characters": "\u2ACC\uFE00"}, + "⊋︀": {"codepoints": [8843, 65024], "characters": "\u228B\uFE00"}, + "⊪": {"codepoints": [8874], "characters": "\u22AA"}, + "⦚": {"codepoints": [10650], "characters": "\u299A"}, + "Ŵ": {"codepoints": [372], "characters": "\u0174"}, + "ŵ": {"codepoints": [373], "characters": "\u0175"}, + "⩟": {"codepoints": [10847], "characters": "\u2A5F"}, + "∧": {"codepoints": [8743], "characters": "\u2227"}, + "⋀": {"codepoints": [8896], "characters": "\u22C0"}, + "≙": {"codepoints": [8793], "characters": "\u2259"}, + "℘": {"codepoints": [8472], "characters": "\u2118"}, + "𝔚": {"codepoints": [120090], "characters": "\uD835\uDD1A"}, + "𝔴": {"codepoints": [120116], "characters": "\uD835\uDD34"}, + "𝕎": {"codepoints": [120142], "characters": "\uD835\uDD4E"}, + "𝕨": {"codepoints": [120168], "characters": "\uD835\uDD68"}, + "℘": {"codepoints": [8472], "characters": "\u2118"}, + "≀": {"codepoints": [8768], "characters": "\u2240"}, + "≀": {"codepoints": [8768], "characters": "\u2240"}, + "𝒲": {"codepoints": [119986], "characters": "\uD835\uDCB2"}, + "𝓌": {"codepoints": [120012], "characters": "\uD835\uDCCC"}, + "⋂": {"codepoints": [8898], "characters": "\u22C2"}, + "◯": {"codepoints": [9711], "characters": "\u25EF"}, + "⋃": {"codepoints": [8899], "characters": "\u22C3"}, + "▽": {"codepoints": [9661], "characters": "\u25BD"}, + "𝔛": {"codepoints": [120091], "characters": "\uD835\uDD1B"}, + "𝔵": {"codepoints": [120117], "characters": "\uD835\uDD35"}, + "⟷": {"codepoints": [10231], "characters": "\u27F7"}, + "⟺": {"codepoints": [10234], "characters": "\u27FA"}, + "Ξ": {"codepoints": [926], "characters": "\u039E"}, + "ξ": {"codepoints": [958], "characters": "\u03BE"}, + "⟵": {"codepoints": [10229], "characters": "\u27F5"}, + "⟸": {"codepoints": [10232], "characters": "\u27F8"}, + "⟼": {"codepoints": [10236], "characters": "\u27FC"}, + "⋻": {"codepoints": [8955], "characters": "\u22FB"}, + "⨀": {"codepoints": [10752], "characters": "\u2A00"}, + "𝕏": {"codepoints": [120143], "characters": "\uD835\uDD4F"}, + "𝕩": {"codepoints": [120169], "characters": "\uD835\uDD69"}, + "⨁": {"codepoints": [10753], "characters": "\u2A01"}, + "⨂": {"codepoints": [10754], "characters": "\u2A02"}, + "⟶": {"codepoints": [10230], "characters": "\u27F6"}, + "⟹": {"codepoints": [10233], "characters": "\u27F9"}, + "𝒳": {"codepoints": [119987], "characters": "\uD835\uDCB3"}, + "𝓍": {"codepoints": [120013], "characters": "\uD835\uDCCD"}, + "⨆": {"codepoints": [10758], "characters": "\u2A06"}, + "⨄": {"codepoints": [10756], "characters": "\u2A04"}, + "△": {"codepoints": [9651], "characters": "\u25B3"}, + "⋁": {"codepoints": [8897], "characters": "\u22C1"}, + "⋀": {"codepoints": [8896], "characters": "\u22C0"}, + "Ý": {"codepoints": [221], "characters": "\u00DD"}, + "Ý": {"codepoints": [221], "characters": "\u00DD"}, + "ý": {"codepoints": [253], "characters": "\u00FD"}, + "ý": {"codepoints": [253], "characters": "\u00FD"}, + "Я": {"codepoints": [1071], "characters": "\u042F"}, + "я": {"codepoints": [1103], "characters": "\u044F"}, + "Ŷ": {"codepoints": [374], "characters": "\u0176"}, + "ŷ": {"codepoints": [375], "characters": "\u0177"}, + "Ы": {"codepoints": [1067], "characters": "\u042B"}, + "ы": {"codepoints": [1099], "characters": "\u044B"}, + "¥": {"codepoints": [165], "characters": "\u00A5"}, + "¥": {"codepoints": [165], "characters": "\u00A5"}, + "𝔜": {"codepoints": [120092], "characters": "\uD835\uDD1C"}, + "𝔶": {"codepoints": [120118], "characters": "\uD835\uDD36"}, + "Ї": {"codepoints": [1031], "characters": "\u0407"}, + "ї": {"codepoints": [1111], "characters": "\u0457"}, + "𝕐": {"codepoints": [120144], "characters": "\uD835\uDD50"}, + "𝕪": {"codepoints": [120170], "characters": "\uD835\uDD6A"}, + "𝒴": {"codepoints": [119988], "characters": "\uD835\uDCB4"}, + "𝓎": {"codepoints": [120014], "characters": "\uD835\uDCCE"}, + "Ю": {"codepoints": [1070], "characters": "\u042E"}, + "ю": {"codepoints": [1102], "characters": "\u044E"}, + "ÿ": {"codepoints": [255], "characters": "\u00FF"}, + "ÿ": {"codepoints": [255], "characters": "\u00FF"}, + "Ÿ": {"codepoints": [376], "characters": "\u0178"}, + "Ź": {"codepoints": [377], "characters": "\u0179"}, + "ź": {"codepoints": [378], "characters": "\u017A"}, + "Ž": {"codepoints": [381], "characters": "\u017D"}, + "ž": {"codepoints": [382], "characters": "\u017E"}, + "З": {"codepoints": [1047], "characters": "\u0417"}, + "з": {"codepoints": [1079], "characters": "\u0437"}, + "Ż": {"codepoints": [379], "characters": "\u017B"}, + "ż": {"codepoints": [380], "characters": "\u017C"}, + "ℨ": {"codepoints": [8488], "characters": "\u2128"}, + "​": {"codepoints": [8203], "characters": "\u200B"}, + "Ζ": {"codepoints": [918], "characters": "\u0396"}, + "ζ": {"codepoints": [950], "characters": "\u03B6"}, + "𝔷": {"codepoints": [120119], "characters": "\uD835\uDD37"}, + "ℨ": {"codepoints": [8488], "characters": "\u2128"}, + "Ж": {"codepoints": [1046], "characters": "\u0416"}, + "ж": {"codepoints": [1078], "characters": "\u0436"}, + "⇝": {"codepoints": [8669], "characters": "\u21DD"}, + "𝕫": {"codepoints": [120171], "characters": "\uD835\uDD6B"}, + "ℤ": {"codepoints": [8484], "characters": "\u2124"}, + "𝒵": {"codepoints": [119989], "characters": "\uD835\uDCB5"}, + "𝓏": {"codepoints": [120015], "characters": "\uD835\uDCCF"}, + "‍": {"codepoints": [8205], "characters": "\u200D"}, + "‌": {"codepoints": [8204], "characters": "\u200C"} }; -var ALPHANUMERIC = /^[a-zA-Z0-9]/; -var getPossibleNamedEntityStart = makeRegexMatcher(/^&[a-zA-Z0-9]/); -var getApparentNamedEntity = makeRegexMatcher(/^&[a-zA-Z0-9]+;/); +const ALPHANUMERIC = /^[a-zA-Z0-9]/; +const getPossibleNamedEntityStart = makeRegexMatcher(/^&[a-zA-Z0-9]/); +const getApparentNamedEntity = makeRegexMatcher(/^&[a-zA-Z0-9]+;/); + +const getNamedEntityByFirstChar = {}; -var getNamedEntityByFirstChar = {}; (function () { - var namedEntitiesByFirstChar = {}; - for (var ent in ENTITIES) { - var chr = ent.charAt(1); + const namedEntitiesByFirstChar = {}; + let chr; + + for (let ent in ENTITIES) { + chr = ent.charAt(1); namedEntitiesByFirstChar[chr] = (namedEntitiesByFirstChar[chr] || []); namedEntitiesByFirstChar[chr].push(ent.slice(2)); } - for (var chr in namedEntitiesByFirstChar) { - getNamedEntityByFirstChar[chr] = makeRegexMatcher( - new RegExp('^&' + chr + '(?:' + - namedEntitiesByFirstChar[chr].join('|') + ')')); + + for (chr in namedEntitiesByFirstChar) { + let regex = new RegExp('^&' + chr + '(?:' + namedEntitiesByFirstChar[chr].join('|') + ')'); + getNamedEntityByFirstChar[chr] = makeRegexMatcher(regex); } })(); // Run a provided "matcher" function but reset the current position afterwards. // Fatal failure of the matcher is not suppressed. -var peekMatcher = function (scanner, matcher) { - var start = scanner.pos; - var result = matcher(scanner); +const peekMatcher = function (scanner, matcher) { + const start = scanner.pos; + const result = matcher(scanner); scanner.pos = start; + return result; }; // Returns a string like "&" or a falsy value if no match. Fails fatally // if something looks like a named entity but isn't. -var getNamedCharRef = function (scanner, inAttribute) { +const getNamedCharRef = function (scanner, inAttribute) { // look for `&` followed by alphanumeric - if (! peekMatcher(scanner, getPossibleNamedEntityStart)) + if (!peekMatcher(scanner, getPossibleNamedEntityStart)) return null; - var matcher = getNamedEntityByFirstChar[scanner.rest().charAt(1)]; - var entity = null; + const matcher = getNamedEntityByFirstChar[scanner.rest().charAt(1)]; + let entity = null; + if (matcher) entity = peekMatcher(scanner, matcher); @@ -2290,7 +2293,8 @@ var getNamedCharRef = function (scanner, inAttribute) { // to be ok but "/?foo=bar<=abc" to not be. if (inAttribute && ALPHANUMERIC.test(scanner.rest().charAt(entity.length))) return null; - scanner.fatal("Character reference requires semicolon: " + entity); + + scanner.fatal(`Character reference requires semicolon: ${entity}`); } else { scanner.pos += entity.length; return entity; @@ -2298,9 +2302,9 @@ var getNamedCharRef = function (scanner, inAttribute) { } else { // we couldn't match any real entity, so see if this is a bad entity // or something we can overlook. - var badEntity = peekMatcher(scanner, getApparentNamedEntity); + const badEntity = peekMatcher(scanner, getApparentNamedEntity); if (badEntity) - scanner.fatal("Invalid character reference: " + badEntity); + scanner.fatal(`Invalid character reference: ${badEntity}`); // `&aaaa` is ok with no semicolon return null; } @@ -2309,40 +2313,41 @@ var getNamedCharRef = function (scanner, inAttribute) { // Returns the sequence of one or two codepoints making up an entity as an array. // Codepoints in the array are integers and may be out of the single-char JavaScript // range. -var getCodePoints = function (namedEntity) { +const getCodePoints = function (namedEntity) { return ENTITIES[namedEntity].codepoints; }; -var ALLOWED_AFTER_AMP = /^[\u0009\u000a\u000c <&]/; +const ALLOWED_AFTER_AMP = /^[\u0009\u000a\u000c <&]/; + +const getCharRefNumber = makeRegexMatcher(/^(?:[xX][0-9a-fA-F]+|\d+);/); -var getCharRefNumber = makeRegexMatcher(/^(?:[xX][0-9a-fA-F]+|[0-9]+);/); +const BIG_BAD_CODEPOINTS = (function (obj) { + const list = [0x1FFFE, 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE, 0x3FFFF, + 0x4FFFE, 0x4FFFF, 0x5FFFE, 0x5FFFF, 0x6FFFE, 0x6FFFF, + 0x7FFFE, 0x7FFFF, 0x8FFFE, 0x8FFFF, 0x9FFFE, 0x9FFFF, + 0xAFFFE, 0xAFFFF, 0xBFFFE, 0xBFFFF, 0xCFFFE, 0xCFFFF, + 0xDFFFE, 0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE, 0xFFFFF, + 0x10FFFE, 0x10FFFF]; -var BIG_BAD_CODEPOINTS = (function (obj) { - var list = [0x1FFFE, 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE, 0x3FFFF, - 0x4FFFE, 0x4FFFF, 0x5FFFE, 0x5FFFF, 0x6FFFE, 0x6FFFF, - 0x7FFFE, 0x7FFFF, 0x8FFFE, 0x8FFFF, 0x9FFFE, 0x9FFFF, - 0xAFFFE, 0xAFFFF, 0xBFFFE, 0xBFFFF, 0xCFFFE, 0xCFFFF, - 0xDFFFE, 0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE, 0xFFFFF, - 0x10FFFE, 0x10FFFF]; - for (var i = 0; i < list.length; i++) - obj[list[i]] = true; + for (const item of list) + obj[item] = true; return obj; })({}); -var isLegalCodepoint = function (cp) { +const isLegalCodepoint = function (cp) { if ((cp === 0) || - (cp >= 0x80 && cp <= 0x9f) || - (cp >= 0xd800 && cp <= 0xdfff) || - (cp >= 0x10ffff) || - (cp >= 0x1 && cp <= 0x8) || - (cp === 0xb) || - (cp >= 0xd && cp <= 0x1f) || - (cp >= 0x7f && cp <= 0x9f) || - (cp >= 0xfdd0 && cp <= 0xfdef) || - (cp === 0xfffe) || - (cp === 0xffff) || - (cp >= 0x10000 && BIG_BAD_CODEPOINTS[cp])) + (cp >= 0x80 && cp <= 0x9f) || + (cp >= 0xd800 && cp <= 0xdfff) || + (cp >= 0x10ffff) || + (cp >= 0x1 && cp <= 0x8) || + (cp === 0xb) || + (cp >= 0xd && cp <= 0x1f) || + (cp >= 0x7f && cp <= 0x9f) || + (cp >= 0xfdd0 && cp <= 0xfdef) || + (cp === 0xfffe) || + (cp === 0xffff) || + (cp >= 0x10000 && BIG_BAD_CODEPOINTS[cp])) return false; return true; @@ -2361,55 +2366,72 @@ var isLegalCodepoint = function (cp) { // either `"`, `'`, or `>` and is supplied when parsing attribute values. NOTE: In the current spec, the // value of `allowedChar` doesn't actually seem to end up mattering, but there is still some debate about // the right approach to ampersands. -export function getCharacterReference (scanner, inAttribute, allowedChar) { +export function getCharacterReference(scanner, inAttribute, allowedChar) { if (scanner.peek() !== '&') // no ampersand return null; - var afterAmp = scanner.rest().charAt(1); + const afterAmp = scanner.rest().charAt(1); if (afterAmp === '#') { scanner.pos += 2; + // refNumber includes possible initial `x` and final semicolon - var refNumber = getCharRefNumber(scanner); + const refNumber = getCharRefNumber(scanner); + // At this point we've consumed the input, so we're committed to returning // something or failing fatally. - if (! refNumber) + if (!refNumber) scanner.fatal("Invalid numerical character reference starting with &#"); - var codepoint; + + let codepoint; + if (refNumber.charAt(0) === 'x' || refNumber.charAt(0) === 'X') { // hex - var hex = refNumber.slice(1, -1); + let hex = refNumber.slice(1, -1); + while (hex.charAt(0) === '0') hex = hex.slice(1); + if (hex.length > 6) scanner.fatal("Numerical character reference too large: 0x" + hex); + codepoint = parseInt(hex || "0", 16); } else { - var dec = refNumber.slice(0, -1); + let dec = refNumber.slice(0, -1); + while (dec.charAt(0) === '0') dec = dec.slice(1); + if (dec.length > 7) scanner.fatal("Numerical character reference too large: " + dec); + codepoint = parseInt(dec || "0", 10); } - if (! isLegalCodepoint(codepoint)) + + if (!isLegalCodepoint(codepoint)) scanner.fatal("Illegal codepoint in numerical character reference: &#" + refNumber); - return { t: 'CharRef', - v: '&#' + refNumber, - cp: [codepoint] }; - } else if ((! afterAmp) // EOF - || (allowedChar && afterAmp === allowedChar) - || ALLOWED_AFTER_AMP.test(afterAmp)) { + + return { + t: 'CharRef', + v: '&#' + refNumber, + cp: [codepoint] + }; + } else if ((!afterAmp) // EOF + || (allowedChar && afterAmp === allowedChar) + || ALLOWED_AFTER_AMP.test(afterAmp)) { return null; } else { - var namedEntity = getNamedCharRef(scanner, inAttribute); + const namedEntity = getNamedCharRef(scanner, inAttribute); + if (namedEntity) { - return { t: 'CharRef', - v: namedEntity, - cp: getCodePoints(namedEntity) }; - } else { - return null; + return { + t: 'CharRef', + v: namedEntity, + cp: getCodePoints(namedEntity) + }; } + + return null; } } diff --git a/packages/html-tools/charref_tests.js b/packages/html-tools/charref_tests.js index 2c7d555ad..e615c5eb5 100644 --- a/packages/html-tools/charref_tests.js +++ b/packages/html-tools/charref_tests.js @@ -1,10 +1,10 @@ import { HTMLTools } from 'meteor/html-tools'; -var Scanner = HTMLTools.Scanner; -var getCharacterReference = HTMLTools.Parse.getCharacterReference; +const Scanner = HTMLTools.Scanner; +const getCharacterReference = HTMLTools.Parse.getCharacterReference; Tinytest.add("html-tools - entities", function (test) { - var succeed = function (input, match, codepoints) { + const succeed = function (input, match, codepoints) { if (typeof input === 'string') input = {input: input}; @@ -14,35 +14,37 @@ Tinytest.add("html-tools - entities", function (test) { match = input.input; } - var scanner = new Scanner(input.input); - var result = getCharacterReference(scanner, input.inAttribute, input.allowedChar); + const scanner = new Scanner(input.input); + const result = getCharacterReference(scanner, input.inAttribute, input.allowedChar); test.isTrue(result); test.equal(scanner.pos, match.length); test.equal(result, { t: 'CharRef', v: match, cp: codepoints.map( - function (x) { return (typeof x === 'string' ? - x.charCodeAt(0) : x); }) + function (x) { + return (typeof x === 'string' ? + x.charCodeAt(0) : x); + }) }); }; - var ignore = function (input) { + const ignore = function (input) { if (typeof input === 'string') input = {input: input}; - var scanner = new Scanner(input.input); - var result = getCharacterReference(scanner, input.inAttribute, input.allowedChar); + const scanner = new Scanner(input.input); + const result = getCharacterReference(scanner, input.inAttribute, input.allowedChar); test.isFalse(result); test.equal(scanner.pos, 0); }; - var fatal = function (input, messageContains) { + const fatal = function (input, messageContains) { if (typeof input === 'string') input = {input: input}; - var scanner = new Scanner(input.input); - var error; + const scanner = new Scanner(input.input); + let error; try { getCharacterReference(scanner, input.inAttribute, input.allowedChar); } catch (e) { diff --git a/packages/html-tools/main.js b/packages/html-tools/main.js index 4250fb909..eba95bf85 100644 --- a/packages/html-tools/main.js +++ b/packages/html-tools/main.js @@ -1,4 +1,3 @@ - import { getCharacterReference } from './charref'; import { asciiLowerCase, properCaseTagName, properCaseAttributeName} from "./utils"; import { TemplateTag } from './templatetag' @@ -6,7 +5,7 @@ import { Scanner } from './scanner'; import { parseFragment, codePointToString, getContent, getRCData } from './parse'; import { getComment, getDoctype, getHTMLToken, getTagToken, TEMPLATE_TAG_POSITION } from './tokenize'; -HTMLTools = { +export const HTMLTools = { asciiLowerCase, properCaseTagName, properCaseAttributeName, @@ -25,5 +24,3 @@ HTMLTools = { getTagToken, } }; - -export { HTMLTools }; diff --git a/packages/html-tools/package.js b/packages/html-tools/package.js index af5d8d183..83968e1a5 100644 --- a/packages/html-tools/package.js +++ b/packages/html-tools/package.js @@ -1,7 +1,7 @@ Package.describe({ name: 'html-tools', summary: "Standards-compliant HTML tools", - version: '1.1.3', + version: '1.1.4', git: 'https://github.com/meteor/blaze.git' }); diff --git a/packages/html-tools/parse.js b/packages/html-tools/parse.js index 248b1ab3c..0c71af22a 100644 --- a/packages/html-tools/parse.js +++ b/packages/html-tools/parse.js @@ -1,12 +1,139 @@ -import { HTML } from 'meteor/htmljs'; -import { Scanner } from './scanner'; -import { properCaseAttributeName } from './utils'; -import { getHTMLToken, isLookingAtEndTag } from './tokenize'; +import {HTML} from 'meteor/htmljs'; +import {Scanner} from './scanner'; +import {properCaseAttributeName} from './utils'; +import {getHTMLToken, isLookingAtEndTag} from './tokenize'; // Parse a "fragment" of HTML, up to the end of the input or a particular +const getRawText = (scanner, tagName, shouldStopFunc) => { + let items = []; + + while (!scanner.isEOF()) { + // break at appropriate end tag + if (tagName && isLookingAtEndTag(scanner, tagName)) + break; + + if (shouldStopFunc && shouldStopFunc(scanner)) + break; + + const token = getHTMLToken(scanner, 'rawtext'); + + if (!token) + // tokenizer reached EOF on its own, e.g. while scanning + // template comments like `{{! foo}}`. + continue; + + if (token.t === 'Chars') { + items = pushOrAppendString(items, token.v); + } else if (token.t === 'TemplateTag') { + items.push(token.v); + } else { + // (can't happen) + scanner.fatal(`Unknown or unexpected token type: ${token.t}`); + } + } + + if (items.length === 0) + return null; + else if (items.length === 1) + return items[0]; + + return items; +}; + +const pushOrAppendString = (items, string) => { + if (items.length && typeof items[items.length - 1] === 'string') + items[items.length - 1] += string; + else + items.push(string); + + return items; +}; + +// Input: A token like `{ t: 'CharRef', v: '&', cp: [38] }`. +// +// Output: A tag like `HTML.CharRef({ html: '&', str: '&' })`. +const convertCharRef = token => { + const codePoints = token.cp; + let str = ''; + + for (const item of codePoints) + str += codePointToString(item); + + return HTML.CharRef({html: token.v, str: str}); +}; + +// Input is always a dictionary (even if zero attributes) and each +// value in the dictionary is an array of `Chars`, `CharRef`, +// and maybe `TemplateTag` tokens. +// +// Output is null if there are zero attributes, and otherwise a +// dictionary, or an array of dictionaries and template tags. +// Each value in the dictionary is HTMLjs (e.g. a +// string or an array of `Chars`, `CharRef`, and `TemplateTag` +// nodes). +// +// An attribute value with no input tokens is represented as "", +// not an empty array, in order to prop open empty attributes +// with no template tags. +const parseAttrs = attrs => { + let result = null; + + if (HTML.isArray(attrs)) { + // first element is non-dynamic attrs, rest are template tags + const nonDynamicAttrs = parseAttrs(attrs[0]); + + if (nonDynamicAttrs) { + result = (result || []); + result.push(nonDynamicAttrs); + } + + for (let i = 1; i < attrs.length; i++) { + let token = attrs[i]; + + if (token.t !== 'TemplateTag') + throw new Error("Expected TemplateTag token"); + + result = (result || []); + result.push(token.v); + } + + return result; + } + + for (let k in attrs) { + if (!result) + result = {}; + + const inValue = attrs[k]; + let outParts = []; + + for (let token of inValue) { + switch (token.t) { + case 'Chars': + outParts = pushOrAppendString(outParts, token.v); + break; + case 'CharRef': + outParts.push(convertCharRef(token)); + break; + case 'TemplateTag': + outParts.push(token.v); + break; + } + } + + const outValue = (inValue.length === 0 ? '' : (outParts.length === 1 ? outParts[0] : outParts)); + const properKey = properCaseAttributeName(k); + + result[properKey] = outValue; + } + + return result; +}; + // template tag (using the "shouldStop" option). export function parseFragment(input, options) { - var scanner; + let scanner; + if (typeof input === 'string') scanner = new Scanner(input); else @@ -25,9 +152,10 @@ export function parseFragment(input, options) { scanner.getTemplateTag = options.getTemplateTag; // function (scanner) -> boolean - var shouldStop = options && options.shouldStop; + const shouldStop = options && options.shouldStop; + + let result; - var result; if (options && options.textMode) { if (options.textMode === HTML.TEXTMODE.STRING) { result = getRawText(scanner, null, shouldStop); @@ -39,16 +167,18 @@ export function parseFragment(input, options) { } else { result = getContent(scanner, shouldStop); } - if (! scanner.isEOF()) { + + if (!scanner.isEOF()) { // If we aren't at the end of the input, we either stopped at an unmatched // HTML end tag or at a template tag (like `{{else}}` or `{{/if}}`). // Detect the former case (stopped at an HTML end tag) and throw a good // error. - var posBefore = scanner.pos; + const posBefore = scanner.pos; + let endTag; try { - var endTag = getHTMLToken(scanner); + endTag = getHTMLToken(scanner); } catch (e) { // ignore errors from getTemplateTag } @@ -57,18 +187,16 @@ export function parseFragment(input, options) { // won't tell us to stop at an HTML end tag. Should refactor // `shouldStop` into something more suitable. if (endTag && endTag.t === 'Tag' && endTag.isEnd) { - var closeTag = endTag.n; - var isVoidElement = HTML.isVoidElement(closeTag); - scanner.fatal("Unexpected HTML close tag" + - (isVoidElement ? - '. <' + endTag.n + '> should have no close tag.' : '')); + const closeTag = endTag.n; + const isVoidElement = HTML.isVoidElement(closeTag); + scanner.fatal("Unexpected HTML close tag" + (isVoidElement ? '. <' + endTag.n + '> should have no close tag.' : '')); } scanner.pos = posBefore; // rewind, we'll continue parsing as usual // If no "shouldStop" option was provided, we should have consumed the whole // input. - if (! shouldStop) + if (!shouldStop) scanner.fatal("Expected EOF"); } @@ -80,39 +208,40 @@ export function parseFragment(input, options) { // // Adapted from // http://stackoverflow.com/questions/7126384/expressing-utf-16-unicode-characters-in-javascript/7126661. -export function codePointToString(cp) { - if (cp >= 0 && cp <= 0xD7FF || cp >= 0xE000 && cp <= 0xFFFF) { - return String.fromCharCode(cp); - } else if (cp >= 0x10000 && cp <= 0x10FFFF) { +export function codePointToString(codePoint) { + if (codePoint >= 0 && codePoint <= 0xD7FF || codePoint >= 0xE000 && codePoint <= 0xFFFF) { + return String.fromCharCode(codePoint); + } else if (codePoint >= 0x10000 && codePoint <= 0x10FFFF) { - // we substract 0x10000 from cp to get a 20-bit number + // we subtract 0x10000 from codePoint to get a 20-bit number // in the range 0..0xFFFF - cp -= 0x10000; + codePoint -= 0x10000; // we add 0xD800 to the number formed by the first 10 bits // to give the first byte - var first = ((0xffc00 & cp) >> 10) + 0xD800; + const first = ((0xffc00 & codePoint) >> 10) + 0xD800; // we add 0xDC00 to the number formed by the low 10 bits // to give the second byte - var second = (0x3ff & cp) + 0xDC00; + const second = (0x3ff & codePoint) + 0xDC00; return String.fromCharCode(first) + String.fromCharCode(second); - } else { - return ''; } + + return ''; } -export function getContent (scanner, shouldStopFunc) { - var items = []; +export function getContent(scanner, shouldStopFunc) { + let items = []; - while (! scanner.isEOF()) { + while (!scanner.isEOF()) { if (shouldStopFunc && shouldStopFunc(scanner)) break; - var posBefore = scanner.pos; - var token = getHTMLToken(scanner); - if (! token) + const posBefore = scanner.pos; + const token = getHTMLToken(scanner); + + if (!token) // tokenizer reached EOF on its own, e.g. while scanning // template comments like `{{! foo}}`. continue; @@ -120,7 +249,7 @@ export function getContent (scanner, shouldStopFunc) { if (token.t === 'Doctype') { scanner.fatal("Unexpected Doctype"); } else if (token.t === 'Chars') { - pushOrAppendString(items, token.v); + items = pushOrAppendString(items, token.v); } else if (token.t === 'CharRef') { items.push(convertCharRef(token)); } else if (token.t === 'Comment') { @@ -135,36 +264,41 @@ export function getContent (scanner, shouldStopFunc) { break; } - var tagName = token.n; + const tagName = token.n; + // is this an element with no close tag (a BR, HR, IMG, etc.) based // on its name? - var isVoid = HTML.isVoidElement(tagName); + const isVoid = HTML.isVoidElement(tagName); + if (token.isSelfClosing) { - if (! (isVoid || HTML.isKnownSVGElement(tagName) || tagName.indexOf(':') >= 0)) + if (!(isVoid || HTML.isKnownSVGElement(tagName) || tagName.indexOf(':') >= 0)) scanner.fatal('Only certain elements like BR, HR, IMG, etc. (and foreign elements like SVG) are allowed to self-close'); } // result of parseAttrs may be null - var attrs = parseAttrs(token.attrs); + let attrs = parseAttrs(token.attrs); + // arrays need to be wrapped in HTML.Attrs(...) // when used to construct tags if (HTML.isArray(attrs)) attrs = HTML.Attrs.apply(null, attrs); - var tagFunc = HTML.getTag(tagName); + const tagFunc = HTML.getTag(tagName); + if (isVoid || token.isSelfClosing) { items.push(attrs ? tagFunc(attrs) : tagFunc()); } else { // parse HTML tag contents. // HTML treats a final `/` in a tag as part of an attribute, as in ``, but the template author who writes ``, say, may not be thinking about that, so generate a good error message in the "looks like self-close" case. - var looksLikeSelfClose = (scanner.input.substr(scanner.pos - 2, 2) === '/>'); + const looksLikeSelfClose = (scanner.input.substr(scanner.pos - 2, 2) === '/>'); + + let content = null; - var content = null; if (token.n === 'textarea') { if (scanner.peek() === '\n') scanner.pos++; - var textareaValue = getRCData(scanner, token.n, shouldStopFunc); + const textareaValue = getRCData(scanner, token.n, shouldStopFunc); if (textareaValue) { if (attrs instanceof HTML.Attrs) { attrs = HTML.Attrs.apply( @@ -180,9 +314,9 @@ export function getContent (scanner, shouldStopFunc) { content = getContent(scanner, shouldStopFunc); } - var endTag = getHTMLToken(scanner); + const endTag = getHTMLToken(scanner); - if (! (endTag && endTag.t === 'Tag' && endTag.isEnd && endTag.n === tagName)) + if (!(endTag && endTag.t === 'Tag' && endTag.isEnd && endTag.n === tagName)) scanner.fatal('Expected "' + tagName + '" end tag' + (looksLikeSelfClose ? ' -- if the "<' + token.n + ' />" tag was supposed to self-close, try adding a space before the "/"' : '')); // XXX support implied end tags in cases allowed by the spec @@ -191,14 +325,14 @@ export function getContent (scanner, shouldStopFunc) { // as in `FOO.apply(null, content)`. if (content == null) content = []; - else if (! HTML.isArray(content)) + else if (!HTML.isArray(content)) content = [content]; items.push(HTML.getTag(tagName).apply( null, (attrs ? [attrs] : []).concat(content))); } } else { - scanner.fatal("Unknown token type: " + token.t); + scanner.fatal(`Unknown token type: ${token.t}`); } } @@ -206,23 +340,15 @@ export function getContent (scanner, shouldStopFunc) { return null; else if (items.length === 1) return items[0]; - else - return items; -} -var pushOrAppendString = function (items, string) { - if (items.length && - typeof items[items.length - 1] === 'string') - items[items.length - 1] += string; - else - items.push(string); -}; + return items; +} // get RCDATA to go in the lowercase (or camel case) tagName (e.g. "textarea") export function getRCData(scanner, tagName, shouldStopFunc) { - var items = []; + let items = []; - while (! scanner.isEOF()) { + while (!scanner.isEOF()) { // break at appropriate end tag if (tagName && isLookingAtEndTag(scanner, tagName)) break; @@ -230,56 +356,26 @@ export function getRCData(scanner, tagName, shouldStopFunc) { if (shouldStopFunc && shouldStopFunc(scanner)) break; - var token = getHTMLToken(scanner, 'rcdata'); - if (! token) - // tokenizer reached EOF on its own, e.g. while scanning - // template comments like `{{! foo}}`. - continue; + const token = getHTMLToken(scanner, 'rcdata'); - if (token.t === 'Chars') { - pushOrAppendString(items, token.v); - } else if (token.t === 'CharRef') { - items.push(convertCharRef(token)); - } else if (token.t === 'TemplateTag') { - items.push(token.v); - } else { - // (can't happen) - scanner.fatal("Unknown or unexpected token type: " + token.t); - } - } - - if (items.length === 0) - return null; - else if (items.length === 1) - return items[0]; - else - return items; -} - -var getRawText = function (scanner, tagName, shouldStopFunc) { - var items = []; - - while (! scanner.isEOF()) { - // break at appropriate end tag - if (tagName && isLookingAtEndTag(scanner, tagName)) - break; - - if (shouldStopFunc && shouldStopFunc(scanner)) - break; - - var token = getHTMLToken(scanner, 'rawtext'); - if (! token) + if (!token) // tokenizer reached EOF on its own, e.g. while scanning // template comments like `{{! foo}}`. continue; - if (token.t === 'Chars') { - pushOrAppendString(items, token.v); - } else if (token.t === 'TemplateTag') { - items.push(token.v); - } else { - // (can't happen) - scanner.fatal("Unknown or unexpected token type: " + token.t); + switch (token.t) { + case 'Chars': + items = pushOrAppendString(items, token.v); + break; + case 'CharRef': + items.push(convertCharRef(token)); + break; + case 'TemplateTag': + items.push(token.v); + break; + default: + // (can't happen) + scanner.fatal(`Unknown or unexpected token type: ${token.t}`); } } @@ -287,76 +383,6 @@ var getRawText = function (scanner, tagName, shouldStopFunc) { return null; else if (items.length === 1) return items[0]; - else - return items; -}; - -// Input: A token like `{ t: 'CharRef', v: '&', cp: [38] }`. -// -// Output: A tag like `HTML.CharRef({ html: '&', str: '&' })`. -var convertCharRef = function (token) { - var codePoints = token.cp; - var str = ''; - for (var i = 0; i < codePoints.length; i++) - str += codePointToString(codePoints[i]); - return HTML.CharRef({ html: token.v, str: str }); -}; - -// Input is always a dictionary (even if zero attributes) and each -// value in the dictionary is an array of `Chars`, `CharRef`, -// and maybe `TemplateTag` tokens. -// -// Output is null if there are zero attributes, and otherwise a -// dictionary, or an array of dictionaries and template tags. -// Each value in the dictionary is HTMLjs (e.g. a -// string or an array of `Chars`, `CharRef`, and `TemplateTag` -// nodes). -// -// An attribute value with no input tokens is represented as "", -// not an empty array, in order to prop open empty attributes -// with no template tags. -var parseAttrs = function (attrs) { - var result = null; - if (HTML.isArray(attrs)) { - // first element is nondynamic attrs, rest are template tags - var nondynamicAttrs = parseAttrs(attrs[0]); - if (nondynamicAttrs) { - result = (result || []); - result.push(nondynamicAttrs); - } - for (var i = 1; i < attrs.length; i++) { - var token = attrs[i]; - if (token.t !== 'TemplateTag') - throw new Error("Expected TemplateTag token"); - result = (result || []); - result.push(token.v); - } - return result; - } - - for (var k in attrs) { - if (! result) - result = {}; - - var inValue = attrs[k]; - var outParts = []; - for (var i = 0; i < inValue.length; i++) { - var token = inValue[i]; - if (token.t === 'CharRef') { - outParts.push(convertCharRef(token)); - } else if (token.t === 'TemplateTag') { - outParts.push(token.v); - } else if (token.t === 'Chars') { - pushOrAppendString(outParts, token.v); - } - } - - var outValue = (inValue.length === 0 ? '' : - (outParts.length === 1 ? outParts[0] : outParts)); - var properKey = properCaseAttributeName(k); - result[properKey] = outValue; - } - - return result; -}; + return items; +} diff --git a/packages/html-tools/parse_tests.js b/packages/html-tools/parse_tests.js index 5029b6714..35da926c9 100644 --- a/packages/html-tools/parse_tests.js +++ b/packages/html-tools/parse_tests.js @@ -2,40 +2,40 @@ import { HTML } from 'meteor/htmljs'; import { HTMLTools } from 'meteor/html-tools'; import { BlazeTools} from 'meteor/blaze-tools'; -var Scanner = HTMLTools.Scanner; -var getContent = HTMLTools.Parse.getContent; - -var CharRef = HTML.CharRef; -var Comment = HTML.Comment; -var TemplateTag = HTMLTools.TemplateTag; -var Attrs = HTML.Attrs; - -var BR = HTML.BR; -var HR = HTML.HR; -var INPUT = HTML.INPUT; -var A = HTML.A; -var DIV = HTML.DIV; -var P = HTML.P; -var TEXTAREA = HTML.TEXTAREA; -var SCRIPT = HTML.SCRIPT; -var STYLE = HTML.STYLE; +const Scanner = HTMLTools.Scanner; +const getContent = HTMLTools.Parse.getContent; + +const CharRef = HTML.CharRef; +const Comment = HTML.Comment; +const TemplateTag = HTMLTools.TemplateTag; +const Attrs = HTML.Attrs; + +const BR = HTML.BR; +const HR = HTML.HR; +const INPUT = HTML.INPUT; +const A = HTML.A; +const DIV = HTML.DIV; +const P = HTML.P; +const TEXTAREA = HTML.TEXTAREA; +const SCRIPT = HTML.SCRIPT; +const STYLE = HTML.STYLE; Tinytest.add("html-tools - parser getContent", function (test) { - var succeed = function (input, expected) { - var endPos = input.indexOf('^^^'); + const succeed = function (input, expected) { + let endPos = input.indexOf('^^^'); if (endPos < 0) endPos = input.length; - var scanner = new Scanner(input.replace('^^^', '')); - var result = getContent(scanner); + const scanner = new Scanner(input.replace('^^^', '')); + const result = getContent(scanner); test.equal(scanner.pos, endPos); test.equal(BlazeTools.toJS(result), BlazeTools.toJS(expected)); }; - var fatal = function (input, messageContains) { - var scanner = new Scanner(input); - var error; + const fatal = function (input, messageContains) { + const scanner = new Scanner(input); + let error; try { getContent(scanner); } catch (e) { @@ -72,7 +72,7 @@ Tinytest.add("html-tools - parser getContent", function (test) { succeed('', INPUT({selected: ''})); succeed('', INPUT({selected: ''})); succeed('', INPUT({selected: ''})); - var FOO = HTML.getTag('foo'); + const FOO = HTML.getTag('foo'); succeed('', FOO({bar: ''})); succeed('', FOO({bar: '', baz: ''})); succeed('', @@ -98,10 +98,10 @@ Tinytest.add("html-tools - parser getContent", function (test) { A({href: "http://www.apple.com/"}, 'Apple')); (function () { - var A = HTML.getTag('a'); - var B = HTML.getTag('b'); - var C = HTML.getTag('c'); - var D = HTML.getTag('d'); + const A = HTML.getTag('a'); + const B = HTML.getTag('b'); + const C = HTML.getTag('c'); + const D = HTML.getTag('d'); succeed('12345678', [A('1', B('2', C('3', D('4'), '5'), '6'), '7'), '8']); @@ -156,8 +156,8 @@ Tinytest.add("html-tools - parser getContent", function (test) { succeed('
', BR({x:'y'})); fatal('
'); - succeed('',SCRIPT('var x="
";')); - succeed('',SCRIPT('var x=1 && 0;')); + succeed('',SCRIPT('const x="
";')); + succeed('',SCRIPT('const x=1 && 0;')); succeed('', SCRIPT("asdf")); succeed('', SCRIPT({x: "y"}, "asdf")); @@ -202,7 +202,7 @@ Tinytest.add("html-tools - parseFragment", function (test) { }); (function () { - var p = HTMLTools.parseFragment('

'); + const p = HTMLTools.parseFragment('

'); test.equal(p.tagName, 'p'); test.equal(p.attrs, null); test.isTrue(p instanceof HTML.Tag); @@ -210,7 +210,7 @@ Tinytest.add("html-tools - parseFragment", function (test) { })(); (function () { - var p = HTMLTools.parseFragment('

x

'); + const p = HTMLTools.parseFragment('

x

'); test.equal(p.tagName, 'p'); test.equal(p.attrs, null); test.isTrue(p instanceof HTML.Tag); @@ -219,7 +219,7 @@ Tinytest.add("html-tools - parseFragment", function (test) { })(); (function () { - var p = HTMLTools.parseFragment('

xA

'); + const p = HTMLTools.parseFragment('

xA

'); test.equal(p.tagName, 'p'); test.equal(p.attrs, null); test.isTrue(p instanceof HTML.Tag); @@ -232,7 +232,7 @@ Tinytest.add("html-tools - parseFragment", function (test) { })(); (function () { - var pp = HTMLTools.parseFragment('

x

y

'); + const pp = HTMLTools.parseFragment('

x

y

'); test.isTrue(pp instanceof Array); test.equal(pp.length, 2); @@ -249,12 +249,12 @@ Tinytest.add("html-tools - parseFragment", function (test) { test.equal(pp[1].children[0], 'y'); })(); - var scanner = new Scanner('asdf'); + const scanner = new Scanner('asdf'); scanner.pos = 1; test.equal(HTMLTools.parseFragment(scanner), 'sdf'); test.throws(function () { - var scanner = new Scanner('asdf

'); + const scanner = new Scanner('asdf

'); scanner.pos = 1; HTMLTools.parseFragment(scanner); }); @@ -264,19 +264,19 @@ Tinytest.add("html-tools - getTemplateTag", function (test) { // match a simple tag consisting of `{{`, an optional `!`, one // or more ASCII letters, spaces or html tags, and a closing `}}`. - var mustache = /^\{\{(!?[a-zA-Z 0-9]+)\}\}/; + const mustache = /^\{\{(!?[a-zA-Z 0-9]+)\}\}/; // This implementation of `getTemplateTag` looks for "{{" and if it // finds it, it will match the regex above or fail fatally trying. // The object it returns is opaque to the tokenizer/parser and can // be anything we want. - var getTemplateTag = function (scanner, position) { - if (! (scanner.peek() === '{' && // one-char peek is just an optimization - scanner.rest().slice(0, 2) === '{{')) + const getTemplateTag = function (scanner, position) { + if (!(scanner.peek() === '{' && // one-char peek is just an optimization + scanner.rest().slice(0, 2) === '{{')) return null; - var match = mustache.exec(scanner.rest()); - if (! match) + const match = mustache.exec(scanner.rest()); + if (!match) scanner.fatal("Bad mustache"); scanner.pos += match[0].length; @@ -284,19 +284,18 @@ Tinytest.add("html-tools - getTemplateTag", function (test) { if (match[1].charAt(0) === '!') return null; // `{{!foo}}` is like a comment - return TemplateTag({ stuff: match[1] }); + return TemplateTag({stuff: match[1]}); }; - - var succeed = function (input, expected) { - var endPos = input.indexOf('^^^'); + const succeed = function (input, expected) { + let endPos = input.indexOf('^^^'); if (endPos < 0) endPos = input.length; - var scanner = new Scanner(input.replace('^^^', '')); + const scanner = new Scanner(input.replace('^^^', '')); scanner.getTemplateTag = getTemplateTag; - var result; + let result; try { result = getContent(scanner); } catch (e) { @@ -306,10 +305,10 @@ Tinytest.add("html-tools - getTemplateTag", function (test) { test.equal(BlazeTools.toJS(result), BlazeTools.toJS(expected)); }; - var fatal = function (input, messageContains) { - var scanner = new Scanner(input); + const fatal = function (input, messageContains) { + const scanner = new Scanner(input); scanner.getTemplateTag = getTemplateTag; - var error; + let error; try { getContent(scanner); } catch (e) { diff --git a/packages/html-tools/scanner.js b/packages/html-tools/scanner.js index 6f1b51726..a13e49aa7 100644 --- a/packages/html-tools/scanner.js +++ b/packages/html-tools/scanner.js @@ -8,7 +8,6 @@ // * `scanner.peek()` - returns the character at `pos` // * `scanner.isEOF()` - true if `pos` is at or beyond the end of `input` // * `scanner.fatal(msg)` - throw an error indicating a problem at `pos` - export function Scanner (input) { this.input = input; // public, read-only this.pos = 0; // public, read-write @@ -23,31 +22,34 @@ Scanner.prototype.isEOF = function () { return this.pos >= this.input.length; }; -Scanner.prototype.fatal = function (msg) { - // despite this default, you should always provide a message! - msg = (msg || "Parse error"); +Scanner.prototype.fatal = function (msg = "Parse error") { + const CONTEXT_AMOUNT = 20; + + const input = this.input; + const pos = this.pos; - var CONTEXT_AMOUNT = 20; + let pastInput = input.substring(pos - CONTEXT_AMOUNT - 1, pos); - var input = this.input; - var pos = this.pos; - var pastInput = input.substring(pos - CONTEXT_AMOUNT - 1, pos); if (pastInput.length > CONTEXT_AMOUNT) pastInput = '...' + pastInput.substring(-CONTEXT_AMOUNT); - var upcomingInput = input.substring(pos, pos + CONTEXT_AMOUNT + 1); + let upcomingInput = input.substring(pos, pos + CONTEXT_AMOUNT + 1); + if (upcomingInput.length > CONTEXT_AMOUNT) upcomingInput = upcomingInput.substring(0, CONTEXT_AMOUNT) + '...'; - var positionDisplay = ((pastInput + upcomingInput).replace(/\n/g, ' ') + '\n' + - (new Array(pastInput.length + 1).join(' ')) + "^"); + const positionDisplay = ((pastInput + upcomingInput) + .replace(/\n/g, ' ') + '\n' + (new Array(pastInput.length + 1) + .join(' ')) + "^"); - var e = new Error(msg + "\n" + positionDisplay); + const e = new Error(msg + "\n" + positionDisplay); e.offset = pos; - var allPastInput = input.substring(0, pos); + const allPastInput = input.substring(0, pos); + e.line = (1 + (allPastInput.match(/\n/g) || []).length); e.col = (1 + pos - allPastInput.lastIndexOf('\n')); + e.scanner = this; throw e; @@ -70,8 +72,8 @@ Scanner.prototype.peek = function () { // current position is not advanced and a falsy value (typically null) // is returned. export function makeRegexMatcher(regex) { - return function (scanner) { - var match = regex.exec(scanner.rest()); + return (scanner) => { + const match = regex.exec(scanner.rest()); if (! match) return null; diff --git a/packages/html-tools/templatetag.js b/packages/html-tools/templatetag.js index 3bc952db7..0db3909b4 100644 --- a/packages/html-tools/templatetag.js +++ b/packages/html-tools/templatetag.js @@ -1,16 +1,15 @@ // _assign is like _.extend or the upcoming Object.assign. // Copy src's own, enumerable properties onto tgt and return // tgt. -var _hasOwnProperty = Object.prototype.hasOwnProperty; -var _assign = function (tgt, src) { - for (var k in src) { +const _hasOwnProperty = Object.prototype.hasOwnProperty; +const _assign = function (tgt, src) { + for (let k in src) { if (_hasOwnProperty.call(src, k)) tgt[k] = src[k]; } return tgt; }; - export function TemplateTag (props) { if (! (this instanceof TemplateTag)) // called without `new` @@ -22,8 +21,7 @@ export function TemplateTag (props) { _assign(TemplateTag.prototype, { constructorName: 'TemplateTag', - toJS: function (visitor) { - return visitor.generateCall(this.constructorName, - _assign({}, this)); + toJS (visitor) { + return visitor.generateCall(this.constructorName, _assign({}, this)); } }); diff --git a/packages/html-tools/tokenize.js b/packages/html-tools/tokenize.js index 55cbd3ecf..ddb7b6cb6 100644 --- a/packages/html-tools/tokenize.js +++ b/packages/html-tools/tokenize.js @@ -1,7 +1,7 @@ -import { asciiLowerCase, properCaseTagName, properCaseAttributeName } from './utils'; -import { TemplateTag } from './templatetag'; -import { getCharacterReference } from './charref'; -import { makeRegexMatcher } from './scanner'; +import {asciiLowerCase, properCaseTagName, properCaseAttributeName} from './utils'; +import {TemplateTag} from './templatetag'; +import {getCharacterReference} from './charref'; +import {makeRegexMatcher} from './scanner'; // Token types: // @@ -53,13 +53,13 @@ import { makeRegexMatcher } from './scanner'; // keep in mind as we go along that an LF might be represented by CRLF or CR. // In most cases, it doesn't actually matter what combination of whitespace // characters are present (e.g. inside tags). -var HTML_SPACE = /^[\f\n\r\t ]/; +const HTML_SPACE = /^[\f\n\r\t ]/; -var convertCRLF = function (str) { +const convertCRLF = function (str) { return str.replace(/\r\n?/g, '\n'); }; -export function getComment (scanner) { +export function getComment(scanner) { if (scanner.rest().slice(0, 4) !== ''); + const closePos = rest.indexOf('-->'); if (closePos < 0) scanner.fatal("Unclosed HTML comment"); - var commentContents = rest.slice(0, closePos); + const commentContents = rest.slice(0, closePos); if (commentContents.slice(-1) === '-') scanner.fatal("HTML comment must end at first `--`"); if (commentContents.indexOf("--") >= 0) @@ -85,24 +85,26 @@ export function getComment (scanner) { scanner.pos += closePos + 3; - return { t: 'Comment', - v: convertCRLF(commentContents) }; + return { + t: 'Comment', + v: convertCRLF(commentContents) + }; } -var skipSpaces = function (scanner) { +const skipSpaces = function (scanner) { while (HTML_SPACE.test(scanner.peek())) scanner.pos++; }; -var requireSpaces = function (scanner) { - if (! HTML_SPACE.test(scanner.peek())) +const requireSpaces = function (scanner) { + if (!HTML_SPACE.test(scanner.peek())) scanner.fatal("Expected space"); skipSpaces(scanner); }; -var getDoctypeQuotedString = function (scanner) { - var quote = scanner.peek(); - if (! (quote === '"' || quote === "'")) +const getDoctypeQuotedString = function (scanner) { + const quote = scanner.peek(); + if (!(quote === '"' || quote === "'")) scanner.fatal("Expected single or double quote in DOCTYPE"); scanner.pos++; @@ -110,10 +112,10 @@ var getDoctypeQuotedString = function (scanner) { // prevent a falsy return value (empty string) scanner.fatal("Malformed DOCTYPE"); - var str = ''; - var ch; + let str = ''; + let ch; while ((ch = scanner.peek()), ch !== quote) { - if ((! ch) || (ch === '\u0000') || (ch === '>')) + if ((!ch) || (ch === '\u0000') || (ch === '>')) scanner.fatal("Malformed DOCTYPE"); str += ch; scanner.pos++; @@ -127,22 +129,22 @@ var getDoctypeQuotedString = function (scanner) { // See http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#the-doctype. // // If `getDocType` sees "') || (ch === '\u0000')) + let ch = scanner.peek(); + if ((!ch) || (ch === '>') || (ch === '\u0000')) scanner.fatal('Malformed DOCTYPE'); - var name = ch; + let name = ch; scanner.pos++; - while ((ch = scanner.peek()), ! (HTML_SPACE.test(ch) || ch === '>')) { - if ((! ch) || (ch === '\u0000')) + while ((ch = scanner.peek()), !(HTML_SPACE.test(ch) || ch === '>')) { + if ((!ch) || (ch === '\u0000')) scanner.fatal('Malformed DOCTYPE'); name += ch; scanner.pos++; @@ -152,15 +154,15 @@ export function getDoctype (scanner) { // Now we're looking at a space or a `>`. skipSpaces(scanner); - var systemId = null; - var publicId = null; + let systemId = null; + let publicId = null; if (scanner.peek() !== '>') { // Now we're essentially in the "After DOCTYPE name state" of the tokenizer, // but we're not looking at space or `>`. // this should be "public" or "system". - var publicOrSystem = asciiLowerCase(scanner.rest().slice(0, 6)); + const publicOrSystem = asciiLowerCase(scanner.rest().slice(0, 6)); if (publicOrSystem === 'system') { scanner.pos += 6; @@ -189,9 +191,11 @@ export function getDoctype (scanner) { // looking at `>` scanner.pos++; - var result = { t: 'Doctype', - v: scanner.input.slice(start, scanner.pos), - name: name }; + const result = { + t: 'Doctype', + v: scanner.input.slice(start, scanner.pos), + name: name + }; if (systemId) result.systemId = systemId; @@ -203,10 +207,10 @@ export function getDoctype (scanner) { // The special character `{` is only allowed as the first character // of a Chars, so that we have a chance to detect template tags. -var getChars = makeRegexMatcher(/^[^&<\u0000][^&<\u0000{]*/); +const getChars = makeRegexMatcher(/^[^&<\u0000][^&<\u0000{]*/); -var assertIsTemplateTag = function (x) { - if (! (x instanceof TemplateTag)) +const assertIsTemplateTag = function (x) { + if (!(x instanceof TemplateTag)) throw new Error("Expected an instance of HTMLTools.TemplateTag"); return x; }; @@ -217,8 +221,8 @@ var assertIsTemplateTag = function (x) { // consumes characters and emits nothing (e.g. in the case of template // comments), we may go from not-at-EOF to at-EOF and return `null`, // while otherwise we always find some token to return. -export function getHTMLToken (scanner, dataMode) { - var result = null; +export function getHTMLToken(scanner, dataMode) { + let result = null; if (scanner.getTemplateTag) { // Try to parse a template tag by calling out to the provided // `getTemplateTag` function. If the function returns `null` but @@ -228,26 +232,28 @@ export function getHTMLToken (scanner, dataMode) { // so we look for a normal token. If it returns a truthy value, // the value must be instanceof HTMLTools.TemplateTag. We wrap it // in a Special token. - var lastPos = scanner.pos; + const lastPos = scanner.pos; result = scanner.getTemplateTag( scanner, (dataMode === 'rcdata' ? TEMPLATE_TAG_POSITION.IN_RCDATA : - (dataMode === 'rawtext' ? TEMPLATE_TAG_POSITION.IN_RAWTEXT : - TEMPLATE_TAG_POSITION.ELEMENT))); + (dataMode === 'rawtext' ? TEMPLATE_TAG_POSITION.IN_RAWTEXT : + TEMPLATE_TAG_POSITION.ELEMENT))); if (result) - return { t: 'TemplateTag', v: assertIsTemplateTag(result) }; + return {t: 'TemplateTag', v: assertIsTemplateTag(result)}; else if (scanner.pos > lastPos) return null; } - var chars = getChars(scanner); + const chars = getChars(scanner); if (chars) - return { t: 'Chars', - v: convertCRLF(chars) }; + return { + t: 'Chars', + v: convertCRLF(chars) + }; - var ch = scanner.peek(); - if (! ch) + const ch = scanner.peek(); + if (!ch) return null; // EOF if (ch === '\u0000') @@ -255,14 +261,16 @@ export function getHTMLToken (scanner, dataMode) { if (ch === '&') { if (dataMode !== 'rawtext') { - var charRef = getCharacterReference(scanner); + const charRef = getCharacterReference(scanner); if (charRef) return charRef; } scanner.pos++; - return { t: 'Chars', - v: '&' }; + return { + t: 'Chars', + v: '&' + }; } // If we're here, we're looking at `<`. @@ -270,8 +278,10 @@ export function getHTMLToken (scanner, dataMode) { if (scanner.peek() === '<' && dataMode) { // don't interpret tags scanner.pos++; - return { t: 'Chars', - v: '<' }; + return { + t: 'Chars', + v: '<' + }; } // `getTag` will claim anything starting with `<` not followed by `!`. @@ -284,20 +294,20 @@ export function getHTMLToken (scanner, dataMode) { scanner.fatal("Unexpected `{]*/); -var getClangle = makeRegexMatcher(/^>/); -var getSlash = makeRegexMatcher(/^\//); -var getAttributeName = makeRegexMatcher(/^[^>/\u0000"'<=\f\n\r\t ][^\f\n\r\t /=>"'<\u0000]*/); +const getTagName = makeRegexMatcher(/^[a-zA-Z][^\f\n\r\t />{]*/); +const getClangle = makeRegexMatcher(/^>/); +const getSlash = makeRegexMatcher(/^\//); +const getAttributeName = makeRegexMatcher(/^[^>/\u0000"'<=\f\n\r\t ][^\f\n\r\t /=>"'<\u0000]*/); // Try to parse `>` or `/>`, mutating `tag` to be self-closing in the latter // case (and failing fatally if `/` isn't followed by `>`). // Return tag if successful. -var handleEndOfTag = function (scanner, tag) { +const handleEndOfTag = function (scanner, tag) { if (getClangle(scanner)) return tag; if (getSlash(scanner)) { - if (! getClangle(scanner)) + if (!getClangle(scanner)) scanner.fatal("Expected `>` after `/`"); tag.isSelfClosing = true; return tag; @@ -307,47 +317,49 @@ var handleEndOfTag = function (scanner, tag) { }; // Scan a quoted or unquoted attribute value (omit `quote` for unquoted). -var getAttributeValue = function (scanner, quote) { +const getAttributeValue = function (scanner, quote) { if (quote) { if (scanner.peek() !== quote) return null; scanner.pos++; } - var tokens = []; - var charsTokenToExtend = null; + const tokens = []; + let charsTokenToExtend = null; - var charRef; + let charRef; while (true) { - var ch = scanner.peek(); - var templateTag; - var curPos = scanner.pos; + const ch = scanner.peek(); + let templateTag; + const curPos = scanner.pos; if (quote && ch === quote) { scanner.pos++; return tokens; - } else if ((! quote) && (HTML_SPACE.test(ch) || ch === '>')) { + } else if ((!quote) && (HTML_SPACE.test(ch) || ch === '>')) { return tokens; - } else if (! ch) { + } else if (!ch) { scanner.fatal("Unclosed attribute in tag"); } else if (quote ? ch === '\u0000' : ('\u0000"\'<=`'.indexOf(ch) >= 0)) { scanner.fatal("Unexpected character in attribute value"); } else if (ch === '&' && - (charRef = getCharacterReference(scanner, true, - quote || '>'))) { + (charRef = getCharacterReference(scanner, true, + quote || '>'))) { tokens.push(charRef); charsTokenToExtend = null; } else if (scanner.getTemplateTag && - ((templateTag = scanner.getTemplateTag( - scanner, TEMPLATE_TAG_POSITION.IN_ATTRIBUTE)) || - scanner.pos > curPos /* `{{! comment}}` */)) { + ((templateTag = scanner.getTemplateTag( + scanner, TEMPLATE_TAG_POSITION.IN_ATTRIBUTE)) || + scanner.pos > curPos /* `{{! comment}}` */)) { if (templateTag) { - tokens.push({t: 'TemplateTag', - v: assertIsTemplateTag(templateTag)}); + tokens.push({ + t: 'TemplateTag', + v: assertIsTemplateTag(templateTag) + }); charsTokenToExtend = null; } } else { - if (! charsTokenToExtend) { - charsTokenToExtend = { t: 'Chars', v: '' }; + if (!charsTokenToExtend) { + charsTokenToExtend = {t: 'Chars', v: ''}; tokens.push(charsTokenToExtend); } charsTokenToExtend.v += (ch === '\r' ? '\n' : ch); @@ -358,14 +370,14 @@ var getAttributeValue = function (scanner, quote) { } }; -var hasOwnProperty = Object.prototype.hasOwnProperty; +const hasOwnProperty = Object.prototype.hasOwnProperty; export function getTagToken(scanner) { - if (! (scanner.peek() === '<' && scanner.rest().charAt(1) !== '!')) + if (!(scanner.peek() === '<' && scanner.rest().charAt(1) !== '!')) return null; scanner.pos++; - var tag = { t: 'Tag' }; + const tag = {t: 'Tag'}; // now looking at the character after `<`, which is not a `!` if (scanner.peek() === '/') { @@ -373,8 +385,8 @@ export function getTagToken(scanner) { scanner.pos++; } - var tagName = getTagName(scanner); - if (! tagName) + const tagName = getTagName(scanner); + if (!tagName) scanner.fatal("Expected tag name after `<`"); tag.n = properCaseTagName(tagName); @@ -386,7 +398,7 @@ export function getTagToken(scanner) { if (scanner.isEOF()) scanner.fatal("Unclosed `<`"); - if (! HTML_SPACE.test(scanner.peek())) + if (!HTML_SPACE.test(scanner.peek())) // e.g. `` scanner.fatal("Expected space after tag name"); @@ -402,33 +414,35 @@ export function getTagToken(scanner) { scanner.fatal("End tag can't have attributes"); tag.attrs = {}; - var nondynamicAttrs = tag.attrs; + const nondynamicAttrs = tag.attrs; while (true) { // Note: at the top of this loop, we've already skipped any spaces. // This will be set to true if after parsing the attribute, we should // require spaces (or else an end of tag, i.e. `>` or `/>`). - var spacesRequiredAfter = false; + let spacesRequiredAfter = false; // first, try for a template tag. - var curPos = scanner.pos; - var templateTag = (scanner.getTemplateTag && - scanner.getTemplateTag( - scanner, TEMPLATE_TAG_POSITION.IN_START_TAG)); + const curPos = scanner.pos; + const templateTag = (scanner.getTemplateTag && + scanner.getTemplateTag( + scanner, TEMPLATE_TAG_POSITION.IN_START_TAG)); if (templateTag || (scanner.pos > curPos)) { if (templateTag) { if (tag.attrs === nondynamicAttrs) tag.attrs = [nondynamicAttrs]; - tag.attrs.push({ t: 'TemplateTag', - v: assertIsTemplateTag(templateTag) }); + tag.attrs.push({ + t: 'TemplateTag', + v: assertIsTemplateTag(templateTag) + }); } // else, must have scanned a `{{! comment}}` spacesRequiredAfter = true; } else { - var attributeName = getAttributeName(scanner); - if (! attributeName) + let attributeName = getAttributeName(scanner); + if (!attributeName) scanner.fatal("Expected attribute name in tag"); // Throw error on `{` in attribute name. This provides *some* error message // if someone writes `` or ``. The HTML tokenization @@ -448,8 +462,8 @@ export function getTagToken(scanner) { if (handleEndOfTag(scanner, tag)) return tag; - var ch = scanner.peek(); - if (! ch) + let ch = scanner.peek(); + if (!ch) scanner.fatal("Unclosed <"); if ('\u0000"\'<'.indexOf(ch) >= 0) scanner.fatal("Unexpected character after attribute name in tag"); @@ -460,7 +474,7 @@ export function getTagToken(scanner) { skipSpaces(scanner); ch = scanner.peek(); - if (! ch) + if (!ch) scanner.fatal("Unclosed <"); if ('\u0000><=`'.indexOf(ch) >= 0) scanner.fatal("Unexpected character after = in tag"); @@ -501,12 +515,12 @@ export const TEMPLATE_TAG_POSITION = { }; // tagName must be proper case -export function isLookingAtEndTag (scanner, tagName) { - var rest = scanner.rest(); - var pos = 0; // into rest - var firstPart = /^<\/([a-zA-Z]+)/.exec(rest); +export function isLookingAtEndTag(scanner, tagName) { + const rest = scanner.rest(); + let pos = 0; // into rest + const firstPart = /^<\/([a-zA-Z]+)/.exec(rest); if (firstPart && - properCaseTagName(firstPart[1]) === tagName) { + properCaseTagName(firstPart[1]) === tagName) { // we've seen ` { map[asciiLowerCase(a)] = a; - } + }); return map; })({}); -var properTagCaseMap = (function (map) { - var knownElements = HTML.knownElementNames; - for (var i = 0; i < knownElements.length; i++) { - var a = knownElements[i]; +const properTagCaseMap = (function (map) { + const knownElements = HTML.knownElementNames; + knownElements.forEach(a => { map[asciiLowerCase(a)] = a; - } + }); return map; })({}); @@ -30,19 +28,19 @@ var properTagCaseMap = (function (map) { // Modern browsers let you embed SVG in HTML, but SVG elements are special // in that they have a case-sensitive DOM API (nodeName, getAttribute, // setAttribute). For example, it has to be `setAttribute("viewBox")`, -// not `"viewbox"`. However, the browser's HTML parser is NOT case sensitive +// not `"viewbox"`. However, the browser's HTML parser is NOT case-sensitive // and will fix the case for you, so if you write `` // you actually get a `"viewBox"` attribute. Any HTML-parsing toolchain // must do the same. export function properCaseTagName (name) { - var lowered = asciiLowerCase(name); + const lowered = asciiLowerCase(name); return properTagCaseMap.hasOwnProperty(lowered) ? properTagCaseMap[lowered] : lowered; } // See docs for properCaseTagName. export function properCaseAttributeName(name) { - var lowered = asciiLowerCase(name); + const lowered = asciiLowerCase(name); return properAttributeCaseMap.hasOwnProperty(lowered) ? properAttributeCaseMap[lowered] : lowered; } From 24ed8050f725b165bd6a35afc04c8575196fd2f1 Mon Sep 17 00:00:00 2001 From: guncebektas Date: Tue, 26 Jul 2022 00:07:33 +0300 Subject: [PATCH 04/13] automatic eslint fixes --- packages/html-tools/charref.js | 4543 ++++++++++++------------- packages/html-tools/charref_tests.js | 27 +- packages/html-tools/main.js | 6 +- packages/html-tools/package.js | 6 +- packages/html-tools/parse.js | 114 +- packages/html-tools/parse_tests.js | 318 +- packages/html-tools/scanner.js | 23 +- packages/html-tools/templatetag.js | 19 +- packages/html-tools/tokenize.js | 222 +- packages/html-tools/tokenize_tests.js | 192 +- packages/html-tools/utils.js | 4 +- packages/htmljs/html.js | 19 +- packages/htmljs/htmljs_test.js | 60 +- packages/htmljs/package.js | 6 +- packages/htmljs/preamble.js | 2 +- packages/htmljs/visitors.js | 307 +- 16 files changed, 2880 insertions(+), 2988 deletions(-) diff --git a/packages/html-tools/charref.js b/packages/html-tools/charref.js index d7b67363c..81732602b 100644 --- a/packages/html-tools/charref.js +++ b/packages/html-tools/charref.js @@ -1,2241 +1,2241 @@ -import {makeRegexMatcher} from './scanner'; +import { makeRegexMatcher } from './scanner'; // http://www.whatwg.org/specs/web-apps/current-work/multipage/entities.json // Note that some entities don't have a final semicolon! These are used to // make `<` (for example) with no semicolon a parse error but `&abcde` not. const ENTITIES = { - "Á": {"codepoints": [193], "characters": "\u00C1"}, - "Á": {"codepoints": [193], "characters": "\u00C1"}, - "á": {"codepoints": [225], "characters": "\u00E1"}, - "á": {"codepoints": [225], "characters": "\u00E1"}, - "Ă": {"codepoints": [258], "characters": "\u0102"}, - "ă": {"codepoints": [259], "characters": "\u0103"}, - "∾": {"codepoints": [8766], "characters": "\u223E"}, - "∿": {"codepoints": [8767], "characters": "\u223F"}, - "∾̳": {"codepoints": [8766, 819], "characters": "\u223E\u0333"}, - "Â": {"codepoints": [194], "characters": "\u00C2"}, - "Â": {"codepoints": [194], "characters": "\u00C2"}, - "â": {"codepoints": [226], "characters": "\u00E2"}, - "â": {"codepoints": [226], "characters": "\u00E2"}, - "´": {"codepoints": [180], "characters": "\u00B4"}, - "´": {"codepoints": [180], "characters": "\u00B4"}, - "А": {"codepoints": [1040], "characters": "\u0410"}, - "а": {"codepoints": [1072], "characters": "\u0430"}, - "Æ": {"codepoints": [198], "characters": "\u00C6"}, - "Æ": {"codepoints": [198], "characters": "\u00C6"}, - "æ": {"codepoints": [230], "characters": "\u00E6"}, - "æ": {"codepoints": [230], "characters": "\u00E6"}, - "⁡": {"codepoints": [8289], "characters": "\u2061"}, - "𝔄": {"codepoints": [120068], "characters": "\uD835\uDD04"}, - "𝔞": {"codepoints": [120094], "characters": "\uD835\uDD1E"}, - "À": {"codepoints": [192], "characters": "\u00C0"}, - "À": {"codepoints": [192], "characters": "\u00C0"}, - "à": {"codepoints": [224], "characters": "\u00E0"}, - "à": {"codepoints": [224], "characters": "\u00E0"}, - "ℵ": {"codepoints": [8501], "characters": "\u2135"}, - "ℵ": {"codepoints": [8501], "characters": "\u2135"}, - "Α": {"codepoints": [913], "characters": "\u0391"}, - "α": {"codepoints": [945], "characters": "\u03B1"}, - "Ā": {"codepoints": [256], "characters": "\u0100"}, - "ā": {"codepoints": [257], "characters": "\u0101"}, - "⨿": {"codepoints": [10815], "characters": "\u2A3F"}, - "&": {"codepoints": [38], "characters": "\u0026"}, - "&": {"codepoints": [38], "characters": "\u0026"}, - "&": {"codepoints": [38], "characters": "\u0026"}, - "&": {"codepoints": [38], "characters": "\u0026"}, - "⩕": {"codepoints": [10837], "characters": "\u2A55"}, - "⩓": {"codepoints": [10835], "characters": "\u2A53"}, - "∧": {"codepoints": [8743], "characters": "\u2227"}, - "⩜": {"codepoints": [10844], "characters": "\u2A5C"}, - "⩘": {"codepoints": [10840], "characters": "\u2A58"}, - "⩚": {"codepoints": [10842], "characters": "\u2A5A"}, - "∠": {"codepoints": [8736], "characters": "\u2220"}, - "⦤": {"codepoints": [10660], "characters": "\u29A4"}, - "∠": {"codepoints": [8736], "characters": "\u2220"}, - "⦨": {"codepoints": [10664], "characters": "\u29A8"}, - "⦩": {"codepoints": [10665], "characters": "\u29A9"}, - "⦪": {"codepoints": [10666], "characters": "\u29AA"}, - "⦫": {"codepoints": [10667], "characters": "\u29AB"}, - "⦬": {"codepoints": [10668], "characters": "\u29AC"}, - "⦭": {"codepoints": [10669], "characters": "\u29AD"}, - "⦮": {"codepoints": [10670], "characters": "\u29AE"}, - "⦯": {"codepoints": [10671], "characters": "\u29AF"}, - "∡": {"codepoints": [8737], "characters": "\u2221"}, - "∟": {"codepoints": [8735], "characters": "\u221F"}, - "⊾": {"codepoints": [8894], "characters": "\u22BE"}, - "⦝": {"codepoints": [10653], "characters": "\u299D"}, - "∢": {"codepoints": [8738], "characters": "\u2222"}, - "Å": {"codepoints": [197], "characters": "\u00C5"}, - "⍼": {"codepoints": [9084], "characters": "\u237C"}, - "Ą": {"codepoints": [260], "characters": "\u0104"}, - "ą": {"codepoints": [261], "characters": "\u0105"}, - "𝔸": {"codepoints": [120120], "characters": "\uD835\uDD38"}, - "𝕒": {"codepoints": [120146], "characters": "\uD835\uDD52"}, - "⩯": {"codepoints": [10863], "characters": "\u2A6F"}, - "≈": {"codepoints": [8776], "characters": "\u2248"}, - "⩰": {"codepoints": [10864], "characters": "\u2A70"}, - "≊": {"codepoints": [8778], "characters": "\u224A"}, - "≋": {"codepoints": [8779], "characters": "\u224B"}, - "'": {"codepoints": [39], "characters": "\u0027"}, - "⁡": {"codepoints": [8289], "characters": "\u2061"}, - "≈": {"codepoints": [8776], "characters": "\u2248"}, - "≊": {"codepoints": [8778], "characters": "\u224A"}, - "Å": {"codepoints": [197], "characters": "\u00C5"}, - "Å": {"codepoints": [197], "characters": "\u00C5"}, - "å": {"codepoints": [229], "characters": "\u00E5"}, - "å": {"codepoints": [229], "characters": "\u00E5"}, - "𝒜": {"codepoints": [119964], "characters": "\uD835\uDC9C"}, - "𝒶": {"codepoints": [119990], "characters": "\uD835\uDCB6"}, - "≔": {"codepoints": [8788], "characters": "\u2254"}, - "*": {"codepoints": [42], "characters": "\u002A"}, - "≈": {"codepoints": [8776], "characters": "\u2248"}, - "≍": {"codepoints": [8781], "characters": "\u224D"}, - "Ã": {"codepoints": [195], "characters": "\u00C3"}, - "Ã": {"codepoints": [195], "characters": "\u00C3"}, - "ã": {"codepoints": [227], "characters": "\u00E3"}, - "ã": {"codepoints": [227], "characters": "\u00E3"}, - "Ä": {"codepoints": [196], "characters": "\u00C4"}, - "Ä": {"codepoints": [196], "characters": "\u00C4"}, - "ä": {"codepoints": [228], "characters": "\u00E4"}, - "ä": {"codepoints": [228], "characters": "\u00E4"}, - "∳": {"codepoints": [8755], "characters": "\u2233"}, - "⨑": {"codepoints": [10769], "characters": "\u2A11"}, - "≌": {"codepoints": [8780], "characters": "\u224C"}, - "϶": {"codepoints": [1014], "characters": "\u03F6"}, - "‵": {"codepoints": [8245], "characters": "\u2035"}, - "∽": {"codepoints": [8765], "characters": "\u223D"}, - "⋍": {"codepoints": [8909], "characters": "\u22CD"}, - "∖": {"codepoints": [8726], "characters": "\u2216"}, - "⫧": {"codepoints": [10983], "characters": "\u2AE7"}, - "⊽": {"codepoints": [8893], "characters": "\u22BD"}, - "⌅": {"codepoints": [8965], "characters": "\u2305"}, - "⌆": {"codepoints": [8966], "characters": "\u2306"}, - "⌅": {"codepoints": [8965], "characters": "\u2305"}, - "⎵": {"codepoints": [9141], "characters": "\u23B5"}, - "⎶": {"codepoints": [9142], "characters": "\u23B6"}, - "≌": {"codepoints": [8780], "characters": "\u224C"}, - "Б": {"codepoints": [1041], "characters": "\u0411"}, - "б": {"codepoints": [1073], "characters": "\u0431"}, - "„": {"codepoints": [8222], "characters": "\u201E"}, - "∵": {"codepoints": [8757], "characters": "\u2235"}, - "∵": {"codepoints": [8757], "characters": "\u2235"}, - "∵": {"codepoints": [8757], "characters": "\u2235"}, - "⦰": {"codepoints": [10672], "characters": "\u29B0"}, - "϶": {"codepoints": [1014], "characters": "\u03F6"}, - "ℬ": {"codepoints": [8492], "characters": "\u212C"}, - "ℬ": {"codepoints": [8492], "characters": "\u212C"}, - "Β": {"codepoints": [914], "characters": "\u0392"}, - "β": {"codepoints": [946], "characters": "\u03B2"}, - "ℶ": {"codepoints": [8502], "characters": "\u2136"}, - "≬": {"codepoints": [8812], "characters": "\u226C"}, - "𝔅": {"codepoints": [120069], "characters": "\uD835\uDD05"}, - "𝔟": {"codepoints": [120095], "characters": "\uD835\uDD1F"}, - "⋂": {"codepoints": [8898], "characters": "\u22C2"}, - "◯": {"codepoints": [9711], "characters": "\u25EF"}, - "⋃": {"codepoints": [8899], "characters": "\u22C3"}, - "⨀": {"codepoints": [10752], "characters": "\u2A00"}, - "⨁": {"codepoints": [10753], "characters": "\u2A01"}, - "⨂": {"codepoints": [10754], "characters": "\u2A02"}, - "⨆": {"codepoints": [10758], "characters": "\u2A06"}, - "★": {"codepoints": [9733], "characters": "\u2605"}, - "▽": {"codepoints": [9661], "characters": "\u25BD"}, - "△": {"codepoints": [9651], "characters": "\u25B3"}, - "⨄": {"codepoints": [10756], "characters": "\u2A04"}, - "⋁": {"codepoints": [8897], "characters": "\u22C1"}, - "⋀": {"codepoints": [8896], "characters": "\u22C0"}, - "⤍": {"codepoints": [10509], "characters": "\u290D"}, - "⧫": {"codepoints": [10731], "characters": "\u29EB"}, - "▪": {"codepoints": [9642], "characters": "\u25AA"}, - "▴": {"codepoints": [9652], "characters": "\u25B4"}, - "▾": {"codepoints": [9662], "characters": "\u25BE"}, - "◂": {"codepoints": [9666], "characters": "\u25C2"}, - "▸": {"codepoints": [9656], "characters": "\u25B8"}, - "␣": {"codepoints": [9251], "characters": "\u2423"}, - "▒": {"codepoints": [9618], "characters": "\u2592"}, - "░": {"codepoints": [9617], "characters": "\u2591"}, - "▓": {"codepoints": [9619], "characters": "\u2593"}, - "█": {"codepoints": [9608], "characters": "\u2588"}, - "=⃥": {"codepoints": [61, 8421], "characters": "\u003D\u20E5"}, - "≡⃥": {"codepoints": [8801, 8421], "characters": "\u2261\u20E5"}, - "⫭": {"codepoints": [10989], "characters": "\u2AED"}, - "⌐": {"codepoints": [8976], "characters": "\u2310"}, - "𝔹": {"codepoints": [120121], "characters": "\uD835\uDD39"}, - "𝕓": {"codepoints": [120147], "characters": "\uD835\uDD53"}, - "⊥": {"codepoints": [8869], "characters": "\u22A5"}, - "⊥": {"codepoints": [8869], "characters": "\u22A5"}, - "⋈": {"codepoints": [8904], "characters": "\u22C8"}, - "⧉": {"codepoints": [10697], "characters": "\u29C9"}, - "┐": {"codepoints": [9488], "characters": "\u2510"}, - "╕": {"codepoints": [9557], "characters": "\u2555"}, - "╖": {"codepoints": [9558], "characters": "\u2556"}, - "╗": {"codepoints": [9559], "characters": "\u2557"}, - "┌": {"codepoints": [9484], "characters": "\u250C"}, - "╒": {"codepoints": [9554], "characters": "\u2552"}, - "╓": {"codepoints": [9555], "characters": "\u2553"}, - "╔": {"codepoints": [9556], "characters": "\u2554"}, - "─": {"codepoints": [9472], "characters": "\u2500"}, - "═": {"codepoints": [9552], "characters": "\u2550"}, - "┬": {"codepoints": [9516], "characters": "\u252C"}, - "╤": {"codepoints": [9572], "characters": "\u2564"}, - "╥": {"codepoints": [9573], "characters": "\u2565"}, - "╦": {"codepoints": [9574], "characters": "\u2566"}, - "┴": {"codepoints": [9524], "characters": "\u2534"}, - "╧": {"codepoints": [9575], "characters": "\u2567"}, - "╨": {"codepoints": [9576], "characters": "\u2568"}, - "╩": {"codepoints": [9577], "characters": "\u2569"}, - "⊟": {"codepoints": [8863], "characters": "\u229F"}, - "⊞": {"codepoints": [8862], "characters": "\u229E"}, - "⊠": {"codepoints": [8864], "characters": "\u22A0"}, - "┘": {"codepoints": [9496], "characters": "\u2518"}, - "╛": {"codepoints": [9563], "characters": "\u255B"}, - "╜": {"codepoints": [9564], "characters": "\u255C"}, - "╝": {"codepoints": [9565], "characters": "\u255D"}, - "└": {"codepoints": [9492], "characters": "\u2514"}, - "╘": {"codepoints": [9560], "characters": "\u2558"}, - "╙": {"codepoints": [9561], "characters": "\u2559"}, - "╚": {"codepoints": [9562], "characters": "\u255A"}, - "│": {"codepoints": [9474], "characters": "\u2502"}, - "║": {"codepoints": [9553], "characters": "\u2551"}, - "┼": {"codepoints": [9532], "characters": "\u253C"}, - "╪": {"codepoints": [9578], "characters": "\u256A"}, - "╫": {"codepoints": [9579], "characters": "\u256B"}, - "╬": {"codepoints": [9580], "characters": "\u256C"}, - "┤": {"codepoints": [9508], "characters": "\u2524"}, - "╡": {"codepoints": [9569], "characters": "\u2561"}, - "╢": {"codepoints": [9570], "characters": "\u2562"}, - "╣": {"codepoints": [9571], "characters": "\u2563"}, - "├": {"codepoints": [9500], "characters": "\u251C"}, - "╞": {"codepoints": [9566], "characters": "\u255E"}, - "╟": {"codepoints": [9567], "characters": "\u255F"}, - "╠": {"codepoints": [9568], "characters": "\u2560"}, - "‵": {"codepoints": [8245], "characters": "\u2035"}, - "˘": {"codepoints": [728], "characters": "\u02D8"}, - "˘": {"codepoints": [728], "characters": "\u02D8"}, - "¦": {"codepoints": [166], "characters": "\u00A6"}, - "¦": {"codepoints": [166], "characters": "\u00A6"}, - "𝒷": {"codepoints": [119991], "characters": "\uD835\uDCB7"}, - "ℬ": {"codepoints": [8492], "characters": "\u212C"}, - "⁏": {"codepoints": [8271], "characters": "\u204F"}, - "∽": {"codepoints": [8765], "characters": "\u223D"}, - "⋍": {"codepoints": [8909], "characters": "\u22CD"}, - "⧅": {"codepoints": [10693], "characters": "\u29C5"}, - "\": {"codepoints": [92], "characters": "\u005C"}, - "⟈": {"codepoints": [10184], "characters": "\u27C8"}, - "•": {"codepoints": [8226], "characters": "\u2022"}, - "•": {"codepoints": [8226], "characters": "\u2022"}, - "≎": {"codepoints": [8782], "characters": "\u224E"}, - "⪮": {"codepoints": [10926], "characters": "\u2AAE"}, - "≏": {"codepoints": [8783], "characters": "\u224F"}, - "≎": {"codepoints": [8782], "characters": "\u224E"}, - "≏": {"codepoints": [8783], "characters": "\u224F"}, - "Ć": {"codepoints": [262], "characters": "\u0106"}, - "ć": {"codepoints": [263], "characters": "\u0107"}, - "⩄": {"codepoints": [10820], "characters": "\u2A44"}, - "⩉": {"codepoints": [10825], "characters": "\u2A49"}, - "⩋": {"codepoints": [10827], "characters": "\u2A4B"}, - "∩": {"codepoints": [8745], "characters": "\u2229"}, - "⋒": {"codepoints": [8914], "characters": "\u22D2"}, - "⩇": {"codepoints": [10823], "characters": "\u2A47"}, - "⩀": {"codepoints": [10816], "characters": "\u2A40"}, - "ⅅ": {"codepoints": [8517], "characters": "\u2145"}, - "∩︀": {"codepoints": [8745, 65024], "characters": "\u2229\uFE00"}, - "⁁": {"codepoints": [8257], "characters": "\u2041"}, - "ˇ": {"codepoints": [711], "characters": "\u02C7"}, - "ℭ": {"codepoints": [8493], "characters": "\u212D"}, - "⩍": {"codepoints": [10829], "characters": "\u2A4D"}, - "Č": {"codepoints": [268], "characters": "\u010C"}, - "č": {"codepoints": [269], "characters": "\u010D"}, - "Ç": {"codepoints": [199], "characters": "\u00C7"}, - "Ç": {"codepoints": [199], "characters": "\u00C7"}, - "ç": {"codepoints": [231], "characters": "\u00E7"}, - "ç": {"codepoints": [231], "characters": "\u00E7"}, - "Ĉ": {"codepoints": [264], "characters": "\u0108"}, - "ĉ": {"codepoints": [265], "characters": "\u0109"}, - "∰": {"codepoints": [8752], "characters": "\u2230"}, - "⩌": {"codepoints": [10828], "characters": "\u2A4C"}, - "⩐": {"codepoints": [10832], "characters": "\u2A50"}, - "Ċ": {"codepoints": [266], "characters": "\u010A"}, - "ċ": {"codepoints": [267], "characters": "\u010B"}, - "¸": {"codepoints": [184], "characters": "\u00B8"}, - "¸": {"codepoints": [184], "characters": "\u00B8"}, - "¸": {"codepoints": [184], "characters": "\u00B8"}, - "⦲": {"codepoints": [10674], "characters": "\u29B2"}, - "¢": {"codepoints": [162], "characters": "\u00A2"}, - "¢": {"codepoints": [162], "characters": "\u00A2"}, - "·": {"codepoints": [183], "characters": "\u00B7"}, - "·": {"codepoints": [183], "characters": "\u00B7"}, - "𝔠": {"codepoints": [120096], "characters": "\uD835\uDD20"}, - "ℭ": {"codepoints": [8493], "characters": "\u212D"}, - "Ч": {"codepoints": [1063], "characters": "\u0427"}, - "ч": {"codepoints": [1095], "characters": "\u0447"}, - "✓": {"codepoints": [10003], "characters": "\u2713"}, - "✓": {"codepoints": [10003], "characters": "\u2713"}, - "Χ": {"codepoints": [935], "characters": "\u03A7"}, - "χ": {"codepoints": [967], "characters": "\u03C7"}, - "ˆ": {"codepoints": [710], "characters": "\u02C6"}, - "≗": {"codepoints": [8791], "characters": "\u2257"}, - "↺": {"codepoints": [8634], "characters": "\u21BA"}, - "↻": {"codepoints": [8635], "characters": "\u21BB"}, - "⊛": {"codepoints": [8859], "characters": "\u229B"}, - "⊚": {"codepoints": [8858], "characters": "\u229A"}, - "⊝": {"codepoints": [8861], "characters": "\u229D"}, - "⊙": {"codepoints": [8857], "characters": "\u2299"}, - "®": {"codepoints": [174], "characters": "\u00AE"}, - "Ⓢ": {"codepoints": [9416], "characters": "\u24C8"}, - "⊖": {"codepoints": [8854], "characters": "\u2296"}, - "⊕": {"codepoints": [8853], "characters": "\u2295"}, - "⊗": {"codepoints": [8855], "characters": "\u2297"}, - "○": {"codepoints": [9675], "characters": "\u25CB"}, - "⧃": {"codepoints": [10691], "characters": "\u29C3"}, - "≗": {"codepoints": [8791], "characters": "\u2257"}, - "⨐": {"codepoints": [10768], "characters": "\u2A10"}, - "⫯": {"codepoints": [10991], "characters": "\u2AEF"}, - "⧂": {"codepoints": [10690], "characters": "\u29C2"}, - "∲": {"codepoints": [8754], "characters": "\u2232"}, - "”": {"codepoints": [8221], "characters": "\u201D"}, - "’": {"codepoints": [8217], "characters": "\u2019"}, - "♣": {"codepoints": [9827], "characters": "\u2663"}, - "♣": {"codepoints": [9827], "characters": "\u2663"}, - ":": {"codepoints": [58], "characters": "\u003A"}, - "∷": {"codepoints": [8759], "characters": "\u2237"}, - "⩴": {"codepoints": [10868], "characters": "\u2A74"}, - "≔": {"codepoints": [8788], "characters": "\u2254"}, - "≔": {"codepoints": [8788], "characters": "\u2254"}, - ",": {"codepoints": [44], "characters": "\u002C"}, - "@": {"codepoints": [64], "characters": "\u0040"}, - "∁": {"codepoints": [8705], "characters": "\u2201"}, - "∘": {"codepoints": [8728], "characters": "\u2218"}, - "∁": {"codepoints": [8705], "characters": "\u2201"}, - "ℂ": {"codepoints": [8450], "characters": "\u2102"}, - "≅": {"codepoints": [8773], "characters": "\u2245"}, - "⩭": {"codepoints": [10861], "characters": "\u2A6D"}, - "≡": {"codepoints": [8801], "characters": "\u2261"}, - "∮": {"codepoints": [8750], "characters": "\u222E"}, - "∯": {"codepoints": [8751], "characters": "\u222F"}, - "∮": {"codepoints": [8750], "characters": "\u222E"}, - "𝕔": {"codepoints": [120148], "characters": "\uD835\uDD54"}, - "ℂ": {"codepoints": [8450], "characters": "\u2102"}, - "∐": {"codepoints": [8720], "characters": "\u2210"}, - "∐": {"codepoints": [8720], "characters": "\u2210"}, - "©": {"codepoints": [169], "characters": "\u00A9"}, - "©": {"codepoints": [169], "characters": "\u00A9"}, - "©": {"codepoints": [169], "characters": "\u00A9"}, - "©": {"codepoints": [169], "characters": "\u00A9"}, - "℗": {"codepoints": [8471], "characters": "\u2117"}, - "∳": {"codepoints": [8755], "characters": "\u2233"}, - "↵": {"codepoints": [8629], "characters": "\u21B5"}, - "✗": {"codepoints": [10007], "characters": "\u2717"}, - "⨯": {"codepoints": [10799], "characters": "\u2A2F"}, - "𝒞": {"codepoints": [119966], "characters": "\uD835\uDC9E"}, - "𝒸": {"codepoints": [119992], "characters": "\uD835\uDCB8"}, - "⫏": {"codepoints": [10959], "characters": "\u2ACF"}, - "⫑": {"codepoints": [10961], "characters": "\u2AD1"}, - "⫐": {"codepoints": [10960], "characters": "\u2AD0"}, - "⫒": {"codepoints": [10962], "characters": "\u2AD2"}, - "⋯": {"codepoints": [8943], "characters": "\u22EF"}, - "⤸": {"codepoints": [10552], "characters": "\u2938"}, - "⤵": {"codepoints": [10549], "characters": "\u2935"}, - "⋞": {"codepoints": [8926], "characters": "\u22DE"}, - "⋟": {"codepoints": [8927], "characters": "\u22DF"}, - "↶": {"codepoints": [8630], "characters": "\u21B6"}, - "⤽": {"codepoints": [10557], "characters": "\u293D"}, - "⩈": {"codepoints": [10824], "characters": "\u2A48"}, - "⩆": {"codepoints": [10822], "characters": "\u2A46"}, - "≍": {"codepoints": [8781], "characters": "\u224D"}, - "∪": {"codepoints": [8746], "characters": "\u222A"}, - "⋓": {"codepoints": [8915], "characters": "\u22D3"}, - "⩊": {"codepoints": [10826], "characters": "\u2A4A"}, - "⊍": {"codepoints": [8845], "characters": "\u228D"}, - "⩅": {"codepoints": [10821], "characters": "\u2A45"}, - "∪︀": {"codepoints": [8746, 65024], "characters": "\u222A\uFE00"}, - "↷": {"codepoints": [8631], "characters": "\u21B7"}, - "⤼": {"codepoints": [10556], "characters": "\u293C"}, - "⋞": {"codepoints": [8926], "characters": "\u22DE"}, - "⋟": {"codepoints": [8927], "characters": "\u22DF"}, - "⋎": {"codepoints": [8910], "characters": "\u22CE"}, - "⋏": {"codepoints": [8911], "characters": "\u22CF"}, - "¤": {"codepoints": [164], "characters": "\u00A4"}, - "¤": {"codepoints": [164], "characters": "\u00A4"}, - "↶": {"codepoints": [8630], "characters": "\u21B6"}, - "↷": {"codepoints": [8631], "characters": "\u21B7"}, - "⋎": {"codepoints": [8910], "characters": "\u22CE"}, - "⋏": {"codepoints": [8911], "characters": "\u22CF"}, - "∲": {"codepoints": [8754], "characters": "\u2232"}, - "∱": {"codepoints": [8753], "characters": "\u2231"}, - "⌭": {"codepoints": [9005], "characters": "\u232D"}, - "†": {"codepoints": [8224], "characters": "\u2020"}, - "‡": {"codepoints": [8225], "characters": "\u2021"}, - "ℸ": {"codepoints": [8504], "characters": "\u2138"}, - "↓": {"codepoints": [8595], "characters": "\u2193"}, - "↡": {"codepoints": [8609], "characters": "\u21A1"}, - "⇓": {"codepoints": [8659], "characters": "\u21D3"}, - "‐": {"codepoints": [8208], "characters": "\u2010"}, - "⫤": {"codepoints": [10980], "characters": "\u2AE4"}, - "⊣": {"codepoints": [8867], "characters": "\u22A3"}, - "⤏": {"codepoints": [10511], "characters": "\u290F"}, - "˝": {"codepoints": [733], "characters": "\u02DD"}, - "Ď": {"codepoints": [270], "characters": "\u010E"}, - "ď": {"codepoints": [271], "characters": "\u010F"}, - "Д": {"codepoints": [1044], "characters": "\u0414"}, - "д": {"codepoints": [1076], "characters": "\u0434"}, - "‡": {"codepoints": [8225], "characters": "\u2021"}, - "⇊": {"codepoints": [8650], "characters": "\u21CA"}, - "ⅅ": {"codepoints": [8517], "characters": "\u2145"}, - "ⅆ": {"codepoints": [8518], "characters": "\u2146"}, - "⤑": {"codepoints": [10513], "characters": "\u2911"}, - "⩷": {"codepoints": [10871], "characters": "\u2A77"}, - "°": {"codepoints": [176], "characters": "\u00B0"}, - "°": {"codepoints": [176], "characters": "\u00B0"}, - "∇": {"codepoints": [8711], "characters": "\u2207"}, - "Δ": {"codepoints": [916], "characters": "\u0394"}, - "δ": {"codepoints": [948], "characters": "\u03B4"}, - "⦱": {"codepoints": [10673], "characters": "\u29B1"}, - "⥿": {"codepoints": [10623], "characters": "\u297F"}, - "𝔇": {"codepoints": [120071], "characters": "\uD835\uDD07"}, - "𝔡": {"codepoints": [120097], "characters": "\uD835\uDD21"}, - "⥥": {"codepoints": [10597], "characters": "\u2965"}, - "⇃": {"codepoints": [8643], "characters": "\u21C3"}, - "⇂": {"codepoints": [8642], "characters": "\u21C2"}, - "´": {"codepoints": [180], "characters": "\u00B4"}, - "˙": {"codepoints": [729], "characters": "\u02D9"}, - "˝": {"codepoints": [733], "characters": "\u02DD"}, - "`": {"codepoints": [96], "characters": "\u0060"}, - "˜": {"codepoints": [732], "characters": "\u02DC"}, - "⋄": {"codepoints": [8900], "characters": "\u22C4"}, - "⋄": {"codepoints": [8900], "characters": "\u22C4"}, - "⋄": {"codepoints": [8900], "characters": "\u22C4"}, - "♦": {"codepoints": [9830], "characters": "\u2666"}, - "♦": {"codepoints": [9830], "characters": "\u2666"}, - "¨": {"codepoints": [168], "characters": "\u00A8"}, - "ⅆ": {"codepoints": [8518], "characters": "\u2146"}, - "ϝ": {"codepoints": [989], "characters": "\u03DD"}, - "⋲": {"codepoints": [8946], "characters": "\u22F2"}, - "÷": {"codepoints": [247], "characters": "\u00F7"}, - "÷": {"codepoints": [247], "characters": "\u00F7"}, - "÷": {"codepoints": [247], "characters": "\u00F7"}, - "⋇": {"codepoints": [8903], "characters": "\u22C7"}, - "⋇": {"codepoints": [8903], "characters": "\u22C7"}, - "Ђ": {"codepoints": [1026], "characters": "\u0402"}, - "ђ": {"codepoints": [1106], "characters": "\u0452"}, - "⌞": {"codepoints": [8990], "characters": "\u231E"}, - "⌍": {"codepoints": [8973], "characters": "\u230D"}, - "$": {"codepoints": [36], "characters": "\u0024"}, - "𝔻": {"codepoints": [120123], "characters": "\uD835\uDD3B"}, - "𝕕": {"codepoints": [120149], "characters": "\uD835\uDD55"}, - "¨": {"codepoints": [168], "characters": "\u00A8"}, - "˙": {"codepoints": [729], "characters": "\u02D9"}, - "⃜": {"codepoints": [8412], "characters": "\u20DC"}, - "≐": {"codepoints": [8784], "characters": "\u2250"}, - "≑": {"codepoints": [8785], "characters": "\u2251"}, - "≐": {"codepoints": [8784], "characters": "\u2250"}, - "∸": {"codepoints": [8760], "characters": "\u2238"}, - "∔": {"codepoints": [8724], "characters": "\u2214"}, - "⊡": {"codepoints": [8865], "characters": "\u22A1"}, - "⌆": {"codepoints": [8966], "characters": "\u2306"}, - "∯": {"codepoints": [8751], "characters": "\u222F"}, - "¨": {"codepoints": [168], "characters": "\u00A8"}, - "⇓": {"codepoints": [8659], "characters": "\u21D3"}, - "⇐": {"codepoints": [8656], "characters": "\u21D0"}, - "⇔": {"codepoints": [8660], "characters": "\u21D4"}, - "⫤": {"codepoints": [10980], "characters": "\u2AE4"}, - "⟸": {"codepoints": [10232], "characters": "\u27F8"}, - "⟺": {"codepoints": [10234], "characters": "\u27FA"}, - "⟹": {"codepoints": [10233], "characters": "\u27F9"}, - "⇒": {"codepoints": [8658], "characters": "\u21D2"}, - "⊨": {"codepoints": [8872], "characters": "\u22A8"}, - "⇑": {"codepoints": [8657], "characters": "\u21D1"}, - "⇕": {"codepoints": [8661], "characters": "\u21D5"}, - "∥": {"codepoints": [8741], "characters": "\u2225"}, - "⤓": {"codepoints": [10515], "characters": "\u2913"}, - "↓": {"codepoints": [8595], "characters": "\u2193"}, - "↓": {"codepoints": [8595], "characters": "\u2193"}, - "⇓": {"codepoints": [8659], "characters": "\u21D3"}, - "⇵": {"codepoints": [8693], "characters": "\u21F5"}, - "̑": {"codepoints": [785], "characters": "\u0311"}, - "⇊": {"codepoints": [8650], "characters": "\u21CA"}, - "⇃": {"codepoints": [8643], "characters": "\u21C3"}, - "⇂": {"codepoints": [8642], "characters": "\u21C2"}, - "⥐": {"codepoints": [10576], "characters": "\u2950"}, - "⥞": {"codepoints": [10590], "characters": "\u295E"}, - "⥖": {"codepoints": [10582], "characters": "\u2956"}, - "↽": {"codepoints": [8637], "characters": "\u21BD"}, - "⥟": {"codepoints": [10591], "characters": "\u295F"}, - "⥗": {"codepoints": [10583], "characters": "\u2957"}, - "⇁": {"codepoints": [8641], "characters": "\u21C1"}, - "↧": {"codepoints": [8615], "characters": "\u21A7"}, - "⊤": {"codepoints": [8868], "characters": "\u22A4"}, - "⤐": {"codepoints": [10512], "characters": "\u2910"}, - "⌟": {"codepoints": [8991], "characters": "\u231F"}, - "⌌": {"codepoints": [8972], "characters": "\u230C"}, - "𝒟": {"codepoints": [119967], "characters": "\uD835\uDC9F"}, - "𝒹": {"codepoints": [119993], "characters": "\uD835\uDCB9"}, - "Ѕ": {"codepoints": [1029], "characters": "\u0405"}, - "ѕ": {"codepoints": [1109], "characters": "\u0455"}, - "⧶": {"codepoints": [10742], "characters": "\u29F6"}, - "Đ": {"codepoints": [272], "characters": "\u0110"}, - "đ": {"codepoints": [273], "characters": "\u0111"}, - "⋱": {"codepoints": [8945], "characters": "\u22F1"}, - "▿": {"codepoints": [9663], "characters": "\u25BF"}, - "▾": {"codepoints": [9662], "characters": "\u25BE"}, - "⇵": {"codepoints": [8693], "characters": "\u21F5"}, - "⥯": {"codepoints": [10607], "characters": "\u296F"}, - "⦦": {"codepoints": [10662], "characters": "\u29A6"}, - "Џ": {"codepoints": [1039], "characters": "\u040F"}, - "џ": {"codepoints": [1119], "characters": "\u045F"}, - "⟿": {"codepoints": [10239], "characters": "\u27FF"}, - "É": {"codepoints": [201], "characters": "\u00C9"}, - "É": {"codepoints": [201], "characters": "\u00C9"}, - "é": {"codepoints": [233], "characters": "\u00E9"}, - "é": {"codepoints": [233], "characters": "\u00E9"}, - "⩮": {"codepoints": [10862], "characters": "\u2A6E"}, - "Ě": {"codepoints": [282], "characters": "\u011A"}, - "ě": {"codepoints": [283], "characters": "\u011B"}, - "Ê": {"codepoints": [202], "characters": "\u00CA"}, - "Ê": {"codepoints": [202], "characters": "\u00CA"}, - "ê": {"codepoints": [234], "characters": "\u00EA"}, - "ê": {"codepoints": [234], "characters": "\u00EA"}, - "≖": {"codepoints": [8790], "characters": "\u2256"}, - "≕": {"codepoints": [8789], "characters": "\u2255"}, - "Э": {"codepoints": [1069], "characters": "\u042D"}, - "э": {"codepoints": [1101], "characters": "\u044D"}, - "⩷": {"codepoints": [10871], "characters": "\u2A77"}, - "Ė": {"codepoints": [278], "characters": "\u0116"}, - "ė": {"codepoints": [279], "characters": "\u0117"}, - "≑": {"codepoints": [8785], "characters": "\u2251"}, - "ⅇ": {"codepoints": [8519], "characters": "\u2147"}, - "≒": {"codepoints": [8786], "characters": "\u2252"}, - "𝔈": {"codepoints": [120072], "characters": "\uD835\uDD08"}, - "𝔢": {"codepoints": [120098], "characters": "\uD835\uDD22"}, - "⪚": {"codepoints": [10906], "characters": "\u2A9A"}, - "È": {"codepoints": [200], "characters": "\u00C8"}, - "È": {"codepoints": [200], "characters": "\u00C8"}, - "è": {"codepoints": [232], "characters": "\u00E8"}, - "è": {"codepoints": [232], "characters": "\u00E8"}, - "⪖": {"codepoints": [10902], "characters": "\u2A96"}, - "⪘": {"codepoints": [10904], "characters": "\u2A98"}, - "⪙": {"codepoints": [10905], "characters": "\u2A99"}, - "∈": {"codepoints": [8712], "characters": "\u2208"}, - "⏧": {"codepoints": [9191], "characters": "\u23E7"}, - "ℓ": {"codepoints": [8467], "characters": "\u2113"}, - "⪕": {"codepoints": [10901], "characters": "\u2A95"}, - "⪗": {"codepoints": [10903], "characters": "\u2A97"}, - "Ē": {"codepoints": [274], "characters": "\u0112"}, - "ē": {"codepoints": [275], "characters": "\u0113"}, - "∅": {"codepoints": [8709], "characters": "\u2205"}, - "∅": {"codepoints": [8709], "characters": "\u2205"}, - "◻": {"codepoints": [9723], "characters": "\u25FB"}, - "∅": {"codepoints": [8709], "characters": "\u2205"}, - "▫": {"codepoints": [9643], "characters": "\u25AB"}, - " ": {"codepoints": [8196], "characters": "\u2004"}, - " ": {"codepoints": [8197], "characters": "\u2005"}, - " ": {"codepoints": [8195], "characters": "\u2003"}, - "Ŋ": {"codepoints": [330], "characters": "\u014A"}, - "ŋ": {"codepoints": [331], "characters": "\u014B"}, - " ": {"codepoints": [8194], "characters": "\u2002"}, - "Ę": {"codepoints": [280], "characters": "\u0118"}, - "ę": {"codepoints": [281], "characters": "\u0119"}, - "𝔼": {"codepoints": [120124], "characters": "\uD835\uDD3C"}, - "𝕖": {"codepoints": [120150], "characters": "\uD835\uDD56"}, - "⋕": {"codepoints": [8917], "characters": "\u22D5"}, - "⧣": {"codepoints": [10723], "characters": "\u29E3"}, - "⩱": {"codepoints": [10865], "characters": "\u2A71"}, - "ε": {"codepoints": [949], "characters": "\u03B5"}, - "Ε": {"codepoints": [917], "characters": "\u0395"}, - "ε": {"codepoints": [949], "characters": "\u03B5"}, - "ϵ": {"codepoints": [1013], "characters": "\u03F5"}, - "≖": {"codepoints": [8790], "characters": "\u2256"}, - "≕": {"codepoints": [8789], "characters": "\u2255"}, - "≂": {"codepoints": [8770], "characters": "\u2242"}, - "⪖": {"codepoints": [10902], "characters": "\u2A96"}, - "⪕": {"codepoints": [10901], "characters": "\u2A95"}, - "⩵": {"codepoints": [10869], "characters": "\u2A75"}, - "=": {"codepoints": [61], "characters": "\u003D"}, - "≂": {"codepoints": [8770], "characters": "\u2242"}, - "≟": {"codepoints": [8799], "characters": "\u225F"}, - "⇌": {"codepoints": [8652], "characters": "\u21CC"}, - "≡": {"codepoints": [8801], "characters": "\u2261"}, - "⩸": {"codepoints": [10872], "characters": "\u2A78"}, - "⧥": {"codepoints": [10725], "characters": "\u29E5"}, - "⥱": {"codepoints": [10609], "characters": "\u2971"}, - "≓": {"codepoints": [8787], "characters": "\u2253"}, - "ℯ": {"codepoints": [8495], "characters": "\u212F"}, - "ℰ": {"codepoints": [8496], "characters": "\u2130"}, - "≐": {"codepoints": [8784], "characters": "\u2250"}, - "⩳": {"codepoints": [10867], "characters": "\u2A73"}, - "≂": {"codepoints": [8770], "characters": "\u2242"}, - "Η": {"codepoints": [919], "characters": "\u0397"}, - "η": {"codepoints": [951], "characters": "\u03B7"}, - "Ð": {"codepoints": [208], "characters": "\u00D0"}, - "Ð": {"codepoints": [208], "characters": "\u00D0"}, - "ð": {"codepoints": [240], "characters": "\u00F0"}, - "ð": {"codepoints": [240], "characters": "\u00F0"}, - "Ë": {"codepoints": [203], "characters": "\u00CB"}, - "Ë": {"codepoints": [203], "characters": "\u00CB"}, - "ë": {"codepoints": [235], "characters": "\u00EB"}, - "ë": {"codepoints": [235], "characters": "\u00EB"}, - "€": {"codepoints": [8364], "characters": "\u20AC"}, - "!": {"codepoints": [33], "characters": "\u0021"}, - "∃": {"codepoints": [8707], "characters": "\u2203"}, - "∃": {"codepoints": [8707], "characters": "\u2203"}, - "ℰ": {"codepoints": [8496], "characters": "\u2130"}, - "ⅇ": {"codepoints": [8519], "characters": "\u2147"}, - "ⅇ": {"codepoints": [8519], "characters": "\u2147"}, - "≒": {"codepoints": [8786], "characters": "\u2252"}, - "Ф": {"codepoints": [1060], "characters": "\u0424"}, - "ф": {"codepoints": [1092], "characters": "\u0444"}, - "♀": {"codepoints": [9792], "characters": "\u2640"}, - "ffi": {"codepoints": [64259], "characters": "\uFB03"}, - "ff": {"codepoints": [64256], "characters": "\uFB00"}, - "ffl": {"codepoints": [64260], "characters": "\uFB04"}, - "𝔉": {"codepoints": [120073], "characters": "\uD835\uDD09"}, - "𝔣": {"codepoints": [120099], "characters": "\uD835\uDD23"}, - "fi": {"codepoints": [64257], "characters": "\uFB01"}, - "◼": {"codepoints": [9724], "characters": "\u25FC"}, - "▪": {"codepoints": [9642], "characters": "\u25AA"}, - "fj": {"codepoints": [102, 106], "characters": "\u0066\u006A"}, - "♭": {"codepoints": [9837], "characters": "\u266D"}, - "fl": {"codepoints": [64258], "characters": "\uFB02"}, - "▱": {"codepoints": [9649], "characters": "\u25B1"}, - "ƒ": {"codepoints": [402], "characters": "\u0192"}, - "𝔽": {"codepoints": [120125], "characters": "\uD835\uDD3D"}, - "𝕗": {"codepoints": [120151], "characters": "\uD835\uDD57"}, - "∀": {"codepoints": [8704], "characters": "\u2200"}, - "∀": {"codepoints": [8704], "characters": "\u2200"}, - "⋔": {"codepoints": [8916], "characters": "\u22D4"}, - "⫙": {"codepoints": [10969], "characters": "\u2AD9"}, - "ℱ": {"codepoints": [8497], "characters": "\u2131"}, - "⨍": {"codepoints": [10765], "characters": "\u2A0D"}, - "½": {"codepoints": [189], "characters": "\u00BD"}, - "½": {"codepoints": [189], "characters": "\u00BD"}, - "⅓": {"codepoints": [8531], "characters": "\u2153"}, - "¼": {"codepoints": [188], "characters": "\u00BC"}, - "¼": {"codepoints": [188], "characters": "\u00BC"}, - "⅕": {"codepoints": [8533], "characters": "\u2155"}, - "⅙": {"codepoints": [8537], "characters": "\u2159"}, - "⅛": {"codepoints": [8539], "characters": "\u215B"}, - "⅔": {"codepoints": [8532], "characters": "\u2154"}, - "⅖": {"codepoints": [8534], "characters": "\u2156"}, - "¾": {"codepoints": [190], "characters": "\u00BE"}, - "¾": {"codepoints": [190], "characters": "\u00BE"}, - "⅗": {"codepoints": [8535], "characters": "\u2157"}, - "⅜": {"codepoints": [8540], "characters": "\u215C"}, - "⅘": {"codepoints": [8536], "characters": "\u2158"}, - "⅚": {"codepoints": [8538], "characters": "\u215A"}, - "⅝": {"codepoints": [8541], "characters": "\u215D"}, - "⅞": {"codepoints": [8542], "characters": "\u215E"}, - "⁄": {"codepoints": [8260], "characters": "\u2044"}, - "⌢": {"codepoints": [8994], "characters": "\u2322"}, - "𝒻": {"codepoints": [119995], "characters": "\uD835\uDCBB"}, - "ℱ": {"codepoints": [8497], "characters": "\u2131"}, - "ǵ": {"codepoints": [501], "characters": "\u01F5"}, - "Γ": {"codepoints": [915], "characters": "\u0393"}, - "γ": {"codepoints": [947], "characters": "\u03B3"}, - "Ϝ": {"codepoints": [988], "characters": "\u03DC"}, - "ϝ": {"codepoints": [989], "characters": "\u03DD"}, - "⪆": {"codepoints": [10886], "characters": "\u2A86"}, - "Ğ": {"codepoints": [286], "characters": "\u011E"}, - "ğ": {"codepoints": [287], "characters": "\u011F"}, - "Ģ": {"codepoints": [290], "characters": "\u0122"}, - "Ĝ": {"codepoints": [284], "characters": "\u011C"}, - "ĝ": {"codepoints": [285], "characters": "\u011D"}, - "Г": {"codepoints": [1043], "characters": "\u0413"}, - "г": {"codepoints": [1075], "characters": "\u0433"}, - "Ġ": {"codepoints": [288], "characters": "\u0120"}, - "ġ": {"codepoints": [289], "characters": "\u0121"}, - "≥": {"codepoints": [8805], "characters": "\u2265"}, - "≧": {"codepoints": [8807], "characters": "\u2267"}, - "⪌": {"codepoints": [10892], "characters": "\u2A8C"}, - "⋛": {"codepoints": [8923], "characters": "\u22DB"}, - "≥": {"codepoints": [8805], "characters": "\u2265"}, - "≧": {"codepoints": [8807], "characters": "\u2267"}, - "⩾": {"codepoints": [10878], "characters": "\u2A7E"}, - "⪩": {"codepoints": [10921], "characters": "\u2AA9"}, - "⩾": {"codepoints": [10878], "characters": "\u2A7E"}, - "⪀": {"codepoints": [10880], "characters": "\u2A80"}, - "⪂": {"codepoints": [10882], "characters": "\u2A82"}, - "⪄": {"codepoints": [10884], "characters": "\u2A84"}, - "⋛︀": {"codepoints": [8923, 65024], "characters": "\u22DB\uFE00"}, - "⪔": {"codepoints": [10900], "characters": "\u2A94"}, - "𝔊": {"codepoints": [120074], "characters": "\uD835\uDD0A"}, - "𝔤": {"codepoints": [120100], "characters": "\uD835\uDD24"}, - "≫": {"codepoints": [8811], "characters": "\u226B"}, - "⋙": {"codepoints": [8921], "characters": "\u22D9"}, - "⋙": {"codepoints": [8921], "characters": "\u22D9"}, - "ℷ": {"codepoints": [8503], "characters": "\u2137"}, - "Ѓ": {"codepoints": [1027], "characters": "\u0403"}, - "ѓ": {"codepoints": [1107], "characters": "\u0453"}, - "⪥": {"codepoints": [10917], "characters": "\u2AA5"}, - "≷": {"codepoints": [8823], "characters": "\u2277"}, - "⪒": {"codepoints": [10898], "characters": "\u2A92"}, - "⪤": {"codepoints": [10916], "characters": "\u2AA4"}, - "⪊": {"codepoints": [10890], "characters": "\u2A8A"}, - "⪊": {"codepoints": [10890], "characters": "\u2A8A"}, - "⪈": {"codepoints": [10888], "characters": "\u2A88"}, - "≩": {"codepoints": [8809], "characters": "\u2269"}, - "⪈": {"codepoints": [10888], "characters": "\u2A88"}, - "≩": {"codepoints": [8809], "characters": "\u2269"}, - "⋧": {"codepoints": [8935], "characters": "\u22E7"}, - "𝔾": {"codepoints": [120126], "characters": "\uD835\uDD3E"}, - "𝕘": {"codepoints": [120152], "characters": "\uD835\uDD58"}, - "`": {"codepoints": [96], "characters": "\u0060"}, - "≥": {"codepoints": [8805], "characters": "\u2265"}, - "⋛": {"codepoints": [8923], "characters": "\u22DB"}, - "≧": {"codepoints": [8807], "characters": "\u2267"}, - "⪢": {"codepoints": [10914], "characters": "\u2AA2"}, - "≷": {"codepoints": [8823], "characters": "\u2277"}, - "⩾": {"codepoints": [10878], "characters": "\u2A7E"}, - "≳": {"codepoints": [8819], "characters": "\u2273"}, - "𝒢": {"codepoints": [119970], "characters": "\uD835\uDCA2"}, - "ℊ": {"codepoints": [8458], "characters": "\u210A"}, - "≳": {"codepoints": [8819], "characters": "\u2273"}, - "⪎": {"codepoints": [10894], "characters": "\u2A8E"}, - "⪐": {"codepoints": [10896], "characters": "\u2A90"}, - "⪧": {"codepoints": [10919], "characters": "\u2AA7"}, - "⩺": {"codepoints": [10874], "characters": "\u2A7A"}, - ">": {"codepoints": [62], "characters": "\u003E"}, - ">": {"codepoints": [62], "characters": "\u003E"}, - ">": {"codepoints": [62], "characters": "\u003E"}, - ">": {"codepoints": [62], "characters": "\u003E"}, - "≫": {"codepoints": [8811], "characters": "\u226B"}, - "⋗": {"codepoints": [8919], "characters": "\u22D7"}, - "⦕": {"codepoints": [10645], "characters": "\u2995"}, - "⩼": {"codepoints": [10876], "characters": "\u2A7C"}, - "⪆": {"codepoints": [10886], "characters": "\u2A86"}, - "⥸": {"codepoints": [10616], "characters": "\u2978"}, - "⋗": {"codepoints": [8919], "characters": "\u22D7"}, - "⋛": {"codepoints": [8923], "characters": "\u22DB"}, - "⪌": {"codepoints": [10892], "characters": "\u2A8C"}, - "≷": {"codepoints": [8823], "characters": "\u2277"}, - "≳": {"codepoints": [8819], "characters": "\u2273"}, - "≩︀": {"codepoints": [8809, 65024], "characters": "\u2269\uFE00"}, - "≩︀": {"codepoints": [8809, 65024], "characters": "\u2269\uFE00"}, - "ˇ": {"codepoints": [711], "characters": "\u02C7"}, - " ": {"codepoints": [8202], "characters": "\u200A"}, - "½": {"codepoints": [189], "characters": "\u00BD"}, - "ℋ": {"codepoints": [8459], "characters": "\u210B"}, - "Ъ": {"codepoints": [1066], "characters": "\u042A"}, - "ъ": {"codepoints": [1098], "characters": "\u044A"}, - "⥈": {"codepoints": [10568], "characters": "\u2948"}, - "↔": {"codepoints": [8596], "characters": "\u2194"}, - "⇔": {"codepoints": [8660], "characters": "\u21D4"}, - "↭": {"codepoints": [8621], "characters": "\u21AD"}, - "^": {"codepoints": [94], "characters": "\u005E"}, - "ℏ": {"codepoints": [8463], "characters": "\u210F"}, - "Ĥ": {"codepoints": [292], "characters": "\u0124"}, - "ĥ": {"codepoints": [293], "characters": "\u0125"}, - "♥": {"codepoints": [9829], "characters": "\u2665"}, - "♥": {"codepoints": [9829], "characters": "\u2665"}, - "…": {"codepoints": [8230], "characters": "\u2026"}, - "⊹": {"codepoints": [8889], "characters": "\u22B9"}, - "𝔥": {"codepoints": [120101], "characters": "\uD835\uDD25"}, - "ℌ": {"codepoints": [8460], "characters": "\u210C"}, - "ℋ": {"codepoints": [8459], "characters": "\u210B"}, - "⤥": {"codepoints": [10533], "characters": "\u2925"}, - "⤦": {"codepoints": [10534], "characters": "\u2926"}, - "⇿": {"codepoints": [8703], "characters": "\u21FF"}, - "∻": {"codepoints": [8763], "characters": "\u223B"}, - "↩": {"codepoints": [8617], "characters": "\u21A9"}, - "↪": {"codepoints": [8618], "characters": "\u21AA"}, - "𝕙": {"codepoints": [120153], "characters": "\uD835\uDD59"}, - "ℍ": {"codepoints": [8461], "characters": "\u210D"}, - "―": {"codepoints": [8213], "characters": "\u2015"}, - "─": {"codepoints": [9472], "characters": "\u2500"}, - "𝒽": {"codepoints": [119997], "characters": "\uD835\uDCBD"}, - "ℋ": {"codepoints": [8459], "characters": "\u210B"}, - "ℏ": {"codepoints": [8463], "characters": "\u210F"}, - "Ħ": {"codepoints": [294], "characters": "\u0126"}, - "ħ": {"codepoints": [295], "characters": "\u0127"}, - "≎": {"codepoints": [8782], "characters": "\u224E"}, - "≏": {"codepoints": [8783], "characters": "\u224F"}, - "⁃": {"codepoints": [8259], "characters": "\u2043"}, - "‐": {"codepoints": [8208], "characters": "\u2010"}, - "Í": {"codepoints": [205], "characters": "\u00CD"}, - "Í": {"codepoints": [205], "characters": "\u00CD"}, - "í": {"codepoints": [237], "characters": "\u00ED"}, - "í": {"codepoints": [237], "characters": "\u00ED"}, - "⁣": {"codepoints": [8291], "characters": "\u2063"}, - "Î": {"codepoints": [206], "characters": "\u00CE"}, - "Î": {"codepoints": [206], "characters": "\u00CE"}, - "î": {"codepoints": [238], "characters": "\u00EE"}, - "î": {"codepoints": [238], "characters": "\u00EE"}, - "И": {"codepoints": [1048], "characters": "\u0418"}, - "и": {"codepoints": [1080], "characters": "\u0438"}, - "İ": {"codepoints": [304], "characters": "\u0130"}, - "Е": {"codepoints": [1045], "characters": "\u0415"}, - "е": {"codepoints": [1077], "characters": "\u0435"}, - "¡": {"codepoints": [161], "characters": "\u00A1"}, - "¡": {"codepoints": [161], "characters": "\u00A1"}, - "⇔": {"codepoints": [8660], "characters": "\u21D4"}, - "𝔦": {"codepoints": [120102], "characters": "\uD835\uDD26"}, - "ℑ": {"codepoints": [8465], "characters": "\u2111"}, - "Ì": {"codepoints": [204], "characters": "\u00CC"}, - "Ì": {"codepoints": [204], "characters": "\u00CC"}, - "ì": {"codepoints": [236], "characters": "\u00EC"}, - "ì": {"codepoints": [236], "characters": "\u00EC"}, - "ⅈ": {"codepoints": [8520], "characters": "\u2148"}, - "⨌": {"codepoints": [10764], "characters": "\u2A0C"}, - "∭": {"codepoints": [8749], "characters": "\u222D"}, - "⧜": {"codepoints": [10716], "characters": "\u29DC"}, - "℩": {"codepoints": [8489], "characters": "\u2129"}, - "IJ": {"codepoints": [306], "characters": "\u0132"}, - "ij": {"codepoints": [307], "characters": "\u0133"}, - "Ī": {"codepoints": [298], "characters": "\u012A"}, - "ī": {"codepoints": [299], "characters": "\u012B"}, - "ℑ": {"codepoints": [8465], "characters": "\u2111"}, - "ⅈ": {"codepoints": [8520], "characters": "\u2148"}, - "ℐ": {"codepoints": [8464], "characters": "\u2110"}, - "ℑ": {"codepoints": [8465], "characters": "\u2111"}, - "ı": {"codepoints": [305], "characters": "\u0131"}, - "ℑ": {"codepoints": [8465], "characters": "\u2111"}, - "⊷": {"codepoints": [8887], "characters": "\u22B7"}, - "Ƶ": {"codepoints": [437], "characters": "\u01B5"}, - "⇒": {"codepoints": [8658], "characters": "\u21D2"}, - "℅": {"codepoints": [8453], "characters": "\u2105"}, - "∈": {"codepoints": [8712], "characters": "\u2208"}, - "∞": {"codepoints": [8734], "characters": "\u221E"}, - "⧝": {"codepoints": [10717], "characters": "\u29DD"}, - "ı": {"codepoints": [305], "characters": "\u0131"}, - "⊺": {"codepoints": [8890], "characters": "\u22BA"}, - "∫": {"codepoints": [8747], "characters": "\u222B"}, - "∬": {"codepoints": [8748], "characters": "\u222C"}, - "ℤ": {"codepoints": [8484], "characters": "\u2124"}, - "∫": {"codepoints": [8747], "characters": "\u222B"}, - "⊺": {"codepoints": [8890], "characters": "\u22BA"}, - "⋂": {"codepoints": [8898], "characters": "\u22C2"}, - "⨗": {"codepoints": [10775], "characters": "\u2A17"}, - "⨼": {"codepoints": [10812], "characters": "\u2A3C"}, - "⁣": {"codepoints": [8291], "characters": "\u2063"}, - "⁢": {"codepoints": [8290], "characters": "\u2062"}, - "Ё": {"codepoints": [1025], "characters": "\u0401"}, - "ё": {"codepoints": [1105], "characters": "\u0451"}, - "Į": {"codepoints": [302], "characters": "\u012E"}, - "į": {"codepoints": [303], "characters": "\u012F"}, - "𝕀": {"codepoints": [120128], "characters": "\uD835\uDD40"}, - "𝕚": {"codepoints": [120154], "characters": "\uD835\uDD5A"}, - "Ι": {"codepoints": [921], "characters": "\u0399"}, - "ι": {"codepoints": [953], "characters": "\u03B9"}, - "⨼": {"codepoints": [10812], "characters": "\u2A3C"}, - "¿": {"codepoints": [191], "characters": "\u00BF"}, - "¿": {"codepoints": [191], "characters": "\u00BF"}, - "𝒾": {"codepoints": [119998], "characters": "\uD835\uDCBE"}, - "ℐ": {"codepoints": [8464], "characters": "\u2110"}, - "∈": {"codepoints": [8712], "characters": "\u2208"}, - "⋵": {"codepoints": [8949], "characters": "\u22F5"}, - "⋹": {"codepoints": [8953], "characters": "\u22F9"}, - "⋴": {"codepoints": [8948], "characters": "\u22F4"}, - "⋳": {"codepoints": [8947], "characters": "\u22F3"}, - "∈": {"codepoints": [8712], "characters": "\u2208"}, - "⁢": {"codepoints": [8290], "characters": "\u2062"}, - "Ĩ": {"codepoints": [296], "characters": "\u0128"}, - "ĩ": {"codepoints": [297], "characters": "\u0129"}, - "І": {"codepoints": [1030], "characters": "\u0406"}, - "і": {"codepoints": [1110], "characters": "\u0456"}, - "Ï": {"codepoints": [207], "characters": "\u00CF"}, - "Ï": {"codepoints": [207], "characters": "\u00CF"}, - "ï": {"codepoints": [239], "characters": "\u00EF"}, - "ï": {"codepoints": [239], "characters": "\u00EF"}, - "Ĵ": {"codepoints": [308], "characters": "\u0134"}, - "ĵ": {"codepoints": [309], "characters": "\u0135"}, - "Й": {"codepoints": [1049], "characters": "\u0419"}, - "й": {"codepoints": [1081], "characters": "\u0439"}, - "𝔍": {"codepoints": [120077], "characters": "\uD835\uDD0D"}, - "𝔧": {"codepoints": [120103], "characters": "\uD835\uDD27"}, - "ȷ": {"codepoints": [567], "characters": "\u0237"}, - "𝕁": {"codepoints": [120129], "characters": "\uD835\uDD41"}, - "𝕛": {"codepoints": [120155], "characters": "\uD835\uDD5B"}, - "𝒥": {"codepoints": [119973], "characters": "\uD835\uDCA5"}, - "𝒿": {"codepoints": [119999], "characters": "\uD835\uDCBF"}, - "Ј": {"codepoints": [1032], "characters": "\u0408"}, - "ј": {"codepoints": [1112], "characters": "\u0458"}, - "Є": {"codepoints": [1028], "characters": "\u0404"}, - "є": {"codepoints": [1108], "characters": "\u0454"}, - "Κ": {"codepoints": [922], "characters": "\u039A"}, - "κ": {"codepoints": [954], "characters": "\u03BA"}, - "ϰ": {"codepoints": [1008], "characters": "\u03F0"}, - "Ķ": {"codepoints": [310], "characters": "\u0136"}, - "ķ": {"codepoints": [311], "characters": "\u0137"}, - "К": {"codepoints": [1050], "characters": "\u041A"}, - "к": {"codepoints": [1082], "characters": "\u043A"}, - "𝔎": {"codepoints": [120078], "characters": "\uD835\uDD0E"}, - "𝔨": {"codepoints": [120104], "characters": "\uD835\uDD28"}, - "ĸ": {"codepoints": [312], "characters": "\u0138"}, - "Х": {"codepoints": [1061], "characters": "\u0425"}, - "х": {"codepoints": [1093], "characters": "\u0445"}, - "Ќ": {"codepoints": [1036], "characters": "\u040C"}, - "ќ": {"codepoints": [1116], "characters": "\u045C"}, - "𝕂": {"codepoints": [120130], "characters": "\uD835\uDD42"}, - "𝕜": {"codepoints": [120156], "characters": "\uD835\uDD5C"}, - "𝒦": {"codepoints": [119974], "characters": "\uD835\uDCA6"}, - "𝓀": {"codepoints": [120000], "characters": "\uD835\uDCC0"}, - "⇚": {"codepoints": [8666], "characters": "\u21DA"}, - "Ĺ": {"codepoints": [313], "characters": "\u0139"}, - "ĺ": {"codepoints": [314], "characters": "\u013A"}, - "⦴": {"codepoints": [10676], "characters": "\u29B4"}, - "ℒ": {"codepoints": [8466], "characters": "\u2112"}, - "Λ": {"codepoints": [923], "characters": "\u039B"}, - "λ": {"codepoints": [955], "characters": "\u03BB"}, - "⟨": {"codepoints": [10216], "characters": "\u27E8"}, - "⟪": {"codepoints": [10218], "characters": "\u27EA"}, - "⦑": {"codepoints": [10641], "characters": "\u2991"}, - "⟨": {"codepoints": [10216], "characters": "\u27E8"}, - "⪅": {"codepoints": [10885], "characters": "\u2A85"}, - "ℒ": {"codepoints": [8466], "characters": "\u2112"}, - "«": {"codepoints": [171], "characters": "\u00AB"}, - "«": {"codepoints": [171], "characters": "\u00AB"}, - "⇤": {"codepoints": [8676], "characters": "\u21E4"}, - "⤟": {"codepoints": [10527], "characters": "\u291F"}, - "←": {"codepoints": [8592], "characters": "\u2190"}, - "↞": {"codepoints": [8606], "characters": "\u219E"}, - "⇐": {"codepoints": [8656], "characters": "\u21D0"}, - "⤝": {"codepoints": [10525], "characters": "\u291D"}, - "↩": {"codepoints": [8617], "characters": "\u21A9"}, - "↫": {"codepoints": [8619], "characters": "\u21AB"}, - "⤹": {"codepoints": [10553], "characters": "\u2939"}, - "⥳": {"codepoints": [10611], "characters": "\u2973"}, - "↢": {"codepoints": [8610], "characters": "\u21A2"}, - "⤙": {"codepoints": [10521], "characters": "\u2919"}, - "⤛": {"codepoints": [10523], "characters": "\u291B"}, - "⪫": {"codepoints": [10923], "characters": "\u2AAB"}, - "⪭": {"codepoints": [10925], "characters": "\u2AAD"}, - "⪭︀": {"codepoints": [10925, 65024], "characters": "\u2AAD\uFE00"}, - "⤌": {"codepoints": [10508], "characters": "\u290C"}, - "⤎": {"codepoints": [10510], "characters": "\u290E"}, - "❲": {"codepoints": [10098], "characters": "\u2772"}, - "{": {"codepoints": [123], "characters": "\u007B"}, - "[": {"codepoints": [91], "characters": "\u005B"}, - "⦋": {"codepoints": [10635], "characters": "\u298B"}, - "⦏": {"codepoints": [10639], "characters": "\u298F"}, - "⦍": {"codepoints": [10637], "characters": "\u298D"}, - "Ľ": {"codepoints": [317], "characters": "\u013D"}, - "ľ": {"codepoints": [318], "characters": "\u013E"}, - "Ļ": {"codepoints": [315], "characters": "\u013B"}, - "ļ": {"codepoints": [316], "characters": "\u013C"}, - "⌈": {"codepoints": [8968], "characters": "\u2308"}, - "{": {"codepoints": [123], "characters": "\u007B"}, - "Л": {"codepoints": [1051], "characters": "\u041B"}, - "л": {"codepoints": [1083], "characters": "\u043B"}, - "⤶": {"codepoints": [10550], "characters": "\u2936"}, - "“": {"codepoints": [8220], "characters": "\u201C"}, - "„": {"codepoints": [8222], "characters": "\u201E"}, - "⥧": {"codepoints": [10599], "characters": "\u2967"}, - "⥋": {"codepoints": [10571], "characters": "\u294B"}, - "↲": {"codepoints": [8626], "characters": "\u21B2"}, - "≤": {"codepoints": [8804], "characters": "\u2264"}, - "≦": {"codepoints": [8806], "characters": "\u2266"}, - "⟨": {"codepoints": [10216], "characters": "\u27E8"}, - "⇤": {"codepoints": [8676], "characters": "\u21E4"}, - "←": {"codepoints": [8592], "characters": "\u2190"}, - "←": {"codepoints": [8592], "characters": "\u2190"}, - "⇐": {"codepoints": [8656], "characters": "\u21D0"}, - "⇆": {"codepoints": [8646], "characters": "\u21C6"}, - "↢": {"codepoints": [8610], "characters": "\u21A2"}, - "⌈": {"codepoints": [8968], "characters": "\u2308"}, - "⟦": {"codepoints": [10214], "characters": "\u27E6"}, - "⥡": {"codepoints": [10593], "characters": "\u2961"}, - "⥙": {"codepoints": [10585], "characters": "\u2959"}, - "⇃": {"codepoints": [8643], "characters": "\u21C3"}, - "⌊": {"codepoints": [8970], "characters": "\u230A"}, - "↽": {"codepoints": [8637], "characters": "\u21BD"}, - "↼": {"codepoints": [8636], "characters": "\u21BC"}, - "⇇": {"codepoints": [8647], "characters": "\u21C7"}, - "↔": {"codepoints": [8596], "characters": "\u2194"}, - "↔": {"codepoints": [8596], "characters": "\u2194"}, - "⇔": {"codepoints": [8660], "characters": "\u21D4"}, - "⇆": {"codepoints": [8646], "characters": "\u21C6"}, - "⇋": {"codepoints": [8651], "characters": "\u21CB"}, - "↭": {"codepoints": [8621], "characters": "\u21AD"}, - "⥎": {"codepoints": [10574], "characters": "\u294E"}, - "↤": {"codepoints": [8612], "characters": "\u21A4"}, - "⊣": {"codepoints": [8867], "characters": "\u22A3"}, - "⥚": {"codepoints": [10586], "characters": "\u295A"}, - "⋋": {"codepoints": [8907], "characters": "\u22CB"}, - "⧏": {"codepoints": [10703], "characters": "\u29CF"}, - "⊲": {"codepoints": [8882], "characters": "\u22B2"}, - "⊴": {"codepoints": [8884], "characters": "\u22B4"}, - "⥑": {"codepoints": [10577], "characters": "\u2951"}, - "⥠": {"codepoints": [10592], "characters": "\u2960"}, - "⥘": {"codepoints": [10584], "characters": "\u2958"}, - "↿": {"codepoints": [8639], "characters": "\u21BF"}, - "⥒": {"codepoints": [10578], "characters": "\u2952"}, - "↼": {"codepoints": [8636], "characters": "\u21BC"}, - "⪋": {"codepoints": [10891], "characters": "\u2A8B"}, - "⋚": {"codepoints": [8922], "characters": "\u22DA"}, - "≤": {"codepoints": [8804], "characters": "\u2264"}, - "≦": {"codepoints": [8806], "characters": "\u2266"}, - "⩽": {"codepoints": [10877], "characters": "\u2A7D"}, - "⪨": {"codepoints": [10920], "characters": "\u2AA8"}, - "⩽": {"codepoints": [10877], "characters": "\u2A7D"}, - "⩿": {"codepoints": [10879], "characters": "\u2A7F"}, - "⪁": {"codepoints": [10881], "characters": "\u2A81"}, - "⪃": {"codepoints": [10883], "characters": "\u2A83"}, - "⋚︀": {"codepoints": [8922, 65024], "characters": "\u22DA\uFE00"}, - "⪓": {"codepoints": [10899], "characters": "\u2A93"}, - "⪅": {"codepoints": [10885], "characters": "\u2A85"}, - "⋖": {"codepoints": [8918], "characters": "\u22D6"}, - "⋚": {"codepoints": [8922], "characters": "\u22DA"}, - "⪋": {"codepoints": [10891], "characters": "\u2A8B"}, - "⋚": {"codepoints": [8922], "characters": "\u22DA"}, - "≦": {"codepoints": [8806], "characters": "\u2266"}, - "≶": {"codepoints": [8822], "characters": "\u2276"}, - "≶": {"codepoints": [8822], "characters": "\u2276"}, - "⪡": {"codepoints": [10913], "characters": "\u2AA1"}, - "≲": {"codepoints": [8818], "characters": "\u2272"}, - "⩽": {"codepoints": [10877], "characters": "\u2A7D"}, - "≲": {"codepoints": [8818], "characters": "\u2272"}, - "⥼": {"codepoints": [10620], "characters": "\u297C"}, - "⌊": {"codepoints": [8970], "characters": "\u230A"}, - "𝔏": {"codepoints": [120079], "characters": "\uD835\uDD0F"}, - "𝔩": {"codepoints": [120105], "characters": "\uD835\uDD29"}, - "≶": {"codepoints": [8822], "characters": "\u2276"}, - "⪑": {"codepoints": [10897], "characters": "\u2A91"}, - "⥢": {"codepoints": [10594], "characters": "\u2962"}, - "↽": {"codepoints": [8637], "characters": "\u21BD"}, - "↼": {"codepoints": [8636], "characters": "\u21BC"}, - "⥪": {"codepoints": [10602], "characters": "\u296A"}, - "▄": {"codepoints": [9604], "characters": "\u2584"}, - "Љ": {"codepoints": [1033], "characters": "\u0409"}, - "љ": {"codepoints": [1113], "characters": "\u0459"}, - "⇇": {"codepoints": [8647], "characters": "\u21C7"}, - "≪": {"codepoints": [8810], "characters": "\u226A"}, - "⋘": {"codepoints": [8920], "characters": "\u22D8"}, - "⌞": {"codepoints": [8990], "characters": "\u231E"}, - "⇚": {"codepoints": [8666], "characters": "\u21DA"}, - "⥫": {"codepoints": [10603], "characters": "\u296B"}, - "◺": {"codepoints": [9722], "characters": "\u25FA"}, - "Ŀ": {"codepoints": [319], "characters": "\u013F"}, - "ŀ": {"codepoints": [320], "characters": "\u0140"}, - "⎰": {"codepoints": [9136], "characters": "\u23B0"}, - "⎰": {"codepoints": [9136], "characters": "\u23B0"}, - "⪉": {"codepoints": [10889], "characters": "\u2A89"}, - "⪉": {"codepoints": [10889], "characters": "\u2A89"}, - "⪇": {"codepoints": [10887], "characters": "\u2A87"}, - "≨": {"codepoints": [8808], "characters": "\u2268"}, - "⪇": {"codepoints": [10887], "characters": "\u2A87"}, - "≨": {"codepoints": [8808], "characters": "\u2268"}, - "⋦": {"codepoints": [8934], "characters": "\u22E6"}, - "⟬": {"codepoints": [10220], "characters": "\u27EC"}, - "⇽": {"codepoints": [8701], "characters": "\u21FD"}, - "⟦": {"codepoints": [10214], "characters": "\u27E6"}, - "⟵": {"codepoints": [10229], "characters": "\u27F5"}, - "⟵": {"codepoints": [10229], "characters": "\u27F5"}, - "⟸": {"codepoints": [10232], "characters": "\u27F8"}, - "⟷": {"codepoints": [10231], "characters": "\u27F7"}, - "⟷": {"codepoints": [10231], "characters": "\u27F7"}, - "⟺": {"codepoints": [10234], "characters": "\u27FA"}, - "⟼": {"codepoints": [10236], "characters": "\u27FC"}, - "⟶": {"codepoints": [10230], "characters": "\u27F6"}, - "⟶": {"codepoints": [10230], "characters": "\u27F6"}, - "⟹": {"codepoints": [10233], "characters": "\u27F9"}, - "↫": {"codepoints": [8619], "characters": "\u21AB"}, - "↬": {"codepoints": [8620], "characters": "\u21AC"}, - "⦅": {"codepoints": [10629], "characters": "\u2985"}, - "𝕃": {"codepoints": [120131], "characters": "\uD835\uDD43"}, - "𝕝": {"codepoints": [120157], "characters": "\uD835\uDD5D"}, - "⨭": {"codepoints": [10797], "characters": "\u2A2D"}, - "⨴": {"codepoints": [10804], "characters": "\u2A34"}, - "∗": {"codepoints": [8727], "characters": "\u2217"}, - "_": {"codepoints": [95], "characters": "\u005F"}, - "↙": {"codepoints": [8601], "characters": "\u2199"}, - "↘": {"codepoints": [8600], "characters": "\u2198"}, - "◊": {"codepoints": [9674], "characters": "\u25CA"}, - "◊": {"codepoints": [9674], "characters": "\u25CA"}, - "⧫": {"codepoints": [10731], "characters": "\u29EB"}, - "(": {"codepoints": [40], "characters": "\u0028"}, - "⦓": {"codepoints": [10643], "characters": "\u2993"}, - "⇆": {"codepoints": [8646], "characters": "\u21C6"}, - "⌟": {"codepoints": [8991], "characters": "\u231F"}, - "⇋": {"codepoints": [8651], "characters": "\u21CB"}, - "⥭": {"codepoints": [10605], "characters": "\u296D"}, - "‎": {"codepoints": [8206], "characters": "\u200E"}, - "⊿": {"codepoints": [8895], "characters": "\u22BF"}, - "‹": {"codepoints": [8249], "characters": "\u2039"}, - "𝓁": {"codepoints": [120001], "characters": "\uD835\uDCC1"}, - "ℒ": {"codepoints": [8466], "characters": "\u2112"}, - "↰": {"codepoints": [8624], "characters": "\u21B0"}, - "↰": {"codepoints": [8624], "characters": "\u21B0"}, - "≲": {"codepoints": [8818], "characters": "\u2272"}, - "⪍": {"codepoints": [10893], "characters": "\u2A8D"}, - "⪏": {"codepoints": [10895], "characters": "\u2A8F"}, - "[": {"codepoints": [91], "characters": "\u005B"}, - "‘": {"codepoints": [8216], "characters": "\u2018"}, - "‚": {"codepoints": [8218], "characters": "\u201A"}, - "Ł": {"codepoints": [321], "characters": "\u0141"}, - "ł": {"codepoints": [322], "characters": "\u0142"}, - "⪦": {"codepoints": [10918], "characters": "\u2AA6"}, - "⩹": {"codepoints": [10873], "characters": "\u2A79"}, - "<": {"codepoints": [60], "characters": "\u003C"}, - "<": {"codepoints": [60], "characters": "\u003C"}, - "<": {"codepoints": [60], "characters": "\u003C"}, - "<": {"codepoints": [60], "characters": "\u003C"}, - "≪": {"codepoints": [8810], "characters": "\u226A"}, - "⋖": {"codepoints": [8918], "characters": "\u22D6"}, - "⋋": {"codepoints": [8907], "characters": "\u22CB"}, - "⋉": {"codepoints": [8905], "characters": "\u22C9"}, - "⥶": {"codepoints": [10614], "characters": "\u2976"}, - "⩻": {"codepoints": [10875], "characters": "\u2A7B"}, - "◃": {"codepoints": [9667], "characters": "\u25C3"}, - "⊴": {"codepoints": [8884], "characters": "\u22B4"}, - "◂": {"codepoints": [9666], "characters": "\u25C2"}, - "⦖": {"codepoints": [10646], "characters": "\u2996"}, - "⥊": {"codepoints": [10570], "characters": "\u294A"}, - "⥦": {"codepoints": [10598], "characters": "\u2966"}, - "≨︀": {"codepoints": [8808, 65024], "characters": "\u2268\uFE00"}, - "≨︀": {"codepoints": [8808, 65024], "characters": "\u2268\uFE00"}, - "¯": {"codepoints": [175], "characters": "\u00AF"}, - "¯": {"codepoints": [175], "characters": "\u00AF"}, - "♂": {"codepoints": [9794], "characters": "\u2642"}, - "✠": {"codepoints": [10016], "characters": "\u2720"}, - "✠": {"codepoints": [10016], "characters": "\u2720"}, - "⤅": {"codepoints": [10501], "characters": "\u2905"}, - "↦": {"codepoints": [8614], "characters": "\u21A6"}, - "↦": {"codepoints": [8614], "characters": "\u21A6"}, - "↧": {"codepoints": [8615], "characters": "\u21A7"}, - "↤": {"codepoints": [8612], "characters": "\u21A4"}, - "↥": {"codepoints": [8613], "characters": "\u21A5"}, - "▮": {"codepoints": [9646], "characters": "\u25AE"}, - "⨩": {"codepoints": [10793], "characters": "\u2A29"}, - "М": {"codepoints": [1052], "characters": "\u041C"}, - "м": {"codepoints": [1084], "characters": "\u043C"}, - "—": {"codepoints": [8212], "characters": "\u2014"}, - "∺": {"codepoints": [8762], "characters": "\u223A"}, - "∡": {"codepoints": [8737], "characters": "\u2221"}, - " ": {"codepoints": [8287], "characters": "\u205F"}, - "ℳ": {"codepoints": [8499], "characters": "\u2133"}, - "𝔐": {"codepoints": [120080], "characters": "\uD835\uDD10"}, - "𝔪": {"codepoints": [120106], "characters": "\uD835\uDD2A"}, - "℧": {"codepoints": [8487], "characters": "\u2127"}, - "µ": {"codepoints": [181], "characters": "\u00B5"}, - "µ": {"codepoints": [181], "characters": "\u00B5"}, - "*": {"codepoints": [42], "characters": "\u002A"}, - "⫰": {"codepoints": [10992], "characters": "\u2AF0"}, - "∣": {"codepoints": [8739], "characters": "\u2223"}, - "·": {"codepoints": [183], "characters": "\u00B7"}, - "·": {"codepoints": [183], "characters": "\u00B7"}, - "⊟": {"codepoints": [8863], "characters": "\u229F"}, - "−": {"codepoints": [8722], "characters": "\u2212"}, - "∸": {"codepoints": [8760], "characters": "\u2238"}, - "⨪": {"codepoints": [10794], "characters": "\u2A2A"}, - "∓": {"codepoints": [8723], "characters": "\u2213"}, - "⫛": {"codepoints": [10971], "characters": "\u2ADB"}, - "…": {"codepoints": [8230], "characters": "\u2026"}, - "∓": {"codepoints": [8723], "characters": "\u2213"}, - "⊧": {"codepoints": [8871], "characters": "\u22A7"}, - "𝕄": {"codepoints": [120132], "characters": "\uD835\uDD44"}, - "𝕞": {"codepoints": [120158], "characters": "\uD835\uDD5E"}, - "∓": {"codepoints": [8723], "characters": "\u2213"}, - "𝓂": {"codepoints": [120002], "characters": "\uD835\uDCC2"}, - "ℳ": {"codepoints": [8499], "characters": "\u2133"}, - "∾": {"codepoints": [8766], "characters": "\u223E"}, - "Μ": {"codepoints": [924], "characters": "\u039C"}, - "μ": {"codepoints": [956], "characters": "\u03BC"}, - "⊸": {"codepoints": [8888], "characters": "\u22B8"}, - "⊸": {"codepoints": [8888], "characters": "\u22B8"}, - "∇": {"codepoints": [8711], "characters": "\u2207"}, - "Ń": {"codepoints": [323], "characters": "\u0143"}, - "ń": {"codepoints": [324], "characters": "\u0144"}, - "∠⃒": {"codepoints": [8736, 8402], "characters": "\u2220\u20D2"}, - "≉": {"codepoints": [8777], "characters": "\u2249"}, - "⩰̸": {"codepoints": [10864, 824], "characters": "\u2A70\u0338"}, - "≋̸": {"codepoints": [8779, 824], "characters": "\u224B\u0338"}, - "ʼn": {"codepoints": [329], "characters": "\u0149"}, - "≉": {"codepoints": [8777], "characters": "\u2249"}, - "♮": {"codepoints": [9838], "characters": "\u266E"}, - "ℕ": {"codepoints": [8469], "characters": "\u2115"}, - "♮": {"codepoints": [9838], "characters": "\u266E"}, - " ": {"codepoints": [160], "characters": "\u00A0"}, - " ": {"codepoints": [160], "characters": "\u00A0"}, - "≎̸": {"codepoints": [8782, 824], "characters": "\u224E\u0338"}, - "≏̸": {"codepoints": [8783, 824], "characters": "\u224F\u0338"}, - "⩃": {"codepoints": [10819], "characters": "\u2A43"}, - "Ň": {"codepoints": [327], "characters": "\u0147"}, - "ň": {"codepoints": [328], "characters": "\u0148"}, - "Ņ": {"codepoints": [325], "characters": "\u0145"}, - "ņ": {"codepoints": [326], "characters": "\u0146"}, - "≇": {"codepoints": [8775], "characters": "\u2247"}, - "⩭̸": {"codepoints": [10861, 824], "characters": "\u2A6D\u0338"}, - "⩂": {"codepoints": [10818], "characters": "\u2A42"}, - "Н": {"codepoints": [1053], "characters": "\u041D"}, - "н": {"codepoints": [1085], "characters": "\u043D"}, - "–": {"codepoints": [8211], "characters": "\u2013"}, - "⤤": {"codepoints": [10532], "characters": "\u2924"}, - "↗": {"codepoints": [8599], "characters": "\u2197"}, - "⇗": {"codepoints": [8663], "characters": "\u21D7"}, - "↗": {"codepoints": [8599], "characters": "\u2197"}, - "≠": {"codepoints": [8800], "characters": "\u2260"}, - "≐̸": {"codepoints": [8784, 824], "characters": "\u2250\u0338"}, - "​": {"codepoints": [8203], "characters": "\u200B"}, - "​": {"codepoints": [8203], "characters": "\u200B"}, - "​": {"codepoints": [8203], "characters": "\u200B"}, - "​": {"codepoints": [8203], "characters": "\u200B"}, - "≢": {"codepoints": [8802], "characters": "\u2262"}, - "⤨": {"codepoints": [10536], "characters": "\u2928"}, - "≂̸": {"codepoints": [8770, 824], "characters": "\u2242\u0338"}, - "≫": {"codepoints": [8811], "characters": "\u226B"}, - "≪": {"codepoints": [8810], "characters": "\u226A"}, - " ": {"codepoints": [10], "characters": "\u000A"}, - "∄": {"codepoints": [8708], "characters": "\u2204"}, - "∄": {"codepoints": [8708], "characters": "\u2204"}, - "𝔑": {"codepoints": [120081], "characters": "\uD835\uDD11"}, - "𝔫": {"codepoints": [120107], "characters": "\uD835\uDD2B"}, - "≧̸": {"codepoints": [8807, 824], "characters": "\u2267\u0338"}, - "≱": {"codepoints": [8817], "characters": "\u2271"}, - "≱": {"codepoints": [8817], "characters": "\u2271"}, - "≧̸": {"codepoints": [8807, 824], "characters": "\u2267\u0338"}, - "⩾̸": {"codepoints": [10878, 824], "characters": "\u2A7E\u0338"}, - "⩾̸": {"codepoints": [10878, 824], "characters": "\u2A7E\u0338"}, - "⋙̸": {"codepoints": [8921, 824], "characters": "\u22D9\u0338"}, - "≵": {"codepoints": [8821], "characters": "\u2275"}, - "≫⃒": {"codepoints": [8811, 8402], "characters": "\u226B\u20D2"}, - "≯": {"codepoints": [8815], "characters": "\u226F"}, - "≯": {"codepoints": [8815], "characters": "\u226F"}, - "≫̸": {"codepoints": [8811, 824], "characters": "\u226B\u0338"}, - "↮": {"codepoints": [8622], "characters": "\u21AE"}, - "⇎": {"codepoints": [8654], "characters": "\u21CE"}, - "⫲": {"codepoints": [10994], "characters": "\u2AF2"}, - "∋": {"codepoints": [8715], "characters": "\u220B"}, - "⋼": {"codepoints": [8956], "characters": "\u22FC"}, - "⋺": {"codepoints": [8954], "characters": "\u22FA"}, - "∋": {"codepoints": [8715], "characters": "\u220B"}, - "Њ": {"codepoints": [1034], "characters": "\u040A"}, - "њ": {"codepoints": [1114], "characters": "\u045A"}, - "↚": {"codepoints": [8602], "characters": "\u219A"}, - "⇍": {"codepoints": [8653], "characters": "\u21CD"}, - "‥": {"codepoints": [8229], "characters": "\u2025"}, - "≦̸": {"codepoints": [8806, 824], "characters": "\u2266\u0338"}, - "≰": {"codepoints": [8816], "characters": "\u2270"}, - "↚": {"codepoints": [8602], "characters": "\u219A"}, - "⇍": {"codepoints": [8653], "characters": "\u21CD"}, - "↮": {"codepoints": [8622], "characters": "\u21AE"}, - "⇎": {"codepoints": [8654], "characters": "\u21CE"}, - "≰": {"codepoints": [8816], "characters": "\u2270"}, - "≦̸": {"codepoints": [8806, 824], "characters": "\u2266\u0338"}, - "⩽̸": {"codepoints": [10877, 824], "characters": "\u2A7D\u0338"}, - "⩽̸": {"codepoints": [10877, 824], "characters": "\u2A7D\u0338"}, - "≮": {"codepoints": [8814], "characters": "\u226E"}, - "⋘̸": {"codepoints": [8920, 824], "characters": "\u22D8\u0338"}, - "≴": {"codepoints": [8820], "characters": "\u2274"}, - "≪⃒": {"codepoints": [8810, 8402], "characters": "\u226A\u20D2"}, - "≮": {"codepoints": [8814], "characters": "\u226E"}, - "⋪": {"codepoints": [8938], "characters": "\u22EA"}, - "⋬": {"codepoints": [8940], "characters": "\u22EC"}, - "≪̸": {"codepoints": [8810, 824], "characters": "\u226A\u0338"}, - "∤": {"codepoints": [8740], "characters": "\u2224"}, - "⁠": {"codepoints": [8288], "characters": "\u2060"}, - " ": {"codepoints": [160], "characters": "\u00A0"}, - "𝕟": {"codepoints": [120159], "characters": "\uD835\uDD5F"}, - "ℕ": {"codepoints": [8469], "characters": "\u2115"}, - "⫬": {"codepoints": [10988], "characters": "\u2AEC"}, - "¬": {"codepoints": [172], "characters": "\u00AC"}, - "¬": {"codepoints": [172], "characters": "\u00AC"}, - "≢": {"codepoints": [8802], "characters": "\u2262"}, - "≭": {"codepoints": [8813], "characters": "\u226D"}, - "∦": {"codepoints": [8742], "characters": "\u2226"}, - "∉": {"codepoints": [8713], "characters": "\u2209"}, - "≠": {"codepoints": [8800], "characters": "\u2260"}, - "≂̸": {"codepoints": [8770, 824], "characters": "\u2242\u0338"}, - "∄": {"codepoints": [8708], "characters": "\u2204"}, - "≯": {"codepoints": [8815], "characters": "\u226F"}, - "≱": {"codepoints": [8817], "characters": "\u2271"}, - "≧̸": {"codepoints": [8807, 824], "characters": "\u2267\u0338"}, - "≫̸": {"codepoints": [8811, 824], "characters": "\u226B\u0338"}, - "≹": {"codepoints": [8825], "characters": "\u2279"}, - "⩾̸": {"codepoints": [10878, 824], "characters": "\u2A7E\u0338"}, - "≵": {"codepoints": [8821], "characters": "\u2275"}, - "≎̸": {"codepoints": [8782, 824], "characters": "\u224E\u0338"}, - "≏̸": {"codepoints": [8783, 824], "characters": "\u224F\u0338"}, - "∉": {"codepoints": [8713], "characters": "\u2209"}, - "⋵̸": {"codepoints": [8949, 824], "characters": "\u22F5\u0338"}, - "⋹̸": {"codepoints": [8953, 824], "characters": "\u22F9\u0338"}, - "∉": {"codepoints": [8713], "characters": "\u2209"}, - "⋷": {"codepoints": [8951], "characters": "\u22F7"}, - "⋶": {"codepoints": [8950], "characters": "\u22F6"}, - "⧏̸": {"codepoints": [10703, 824], "characters": "\u29CF\u0338"}, - "⋪": {"codepoints": [8938], "characters": "\u22EA"}, - "⋬": {"codepoints": [8940], "characters": "\u22EC"}, - "≮": {"codepoints": [8814], "characters": "\u226E"}, - "≰": {"codepoints": [8816], "characters": "\u2270"}, - "≸": {"codepoints": [8824], "characters": "\u2278"}, - "≪̸": {"codepoints": [8810, 824], "characters": "\u226A\u0338"}, - "⩽̸": {"codepoints": [10877, 824], "characters": "\u2A7D\u0338"}, - "≴": {"codepoints": [8820], "characters": "\u2274"}, - "⪢̸": {"codepoints": [10914, 824], "characters": "\u2AA2\u0338"}, - "⪡̸": {"codepoints": [10913, 824], "characters": "\u2AA1\u0338"}, - "∌": {"codepoints": [8716], "characters": "\u220C"}, - "∌": {"codepoints": [8716], "characters": "\u220C"}, - "⋾": {"codepoints": [8958], "characters": "\u22FE"}, - "⋽": {"codepoints": [8957], "characters": "\u22FD"}, - "⊀": {"codepoints": [8832], "characters": "\u2280"}, - "⪯̸": {"codepoints": [10927, 824], "characters": "\u2AAF\u0338"}, - "⋠": {"codepoints": [8928], "characters": "\u22E0"}, - "∌": {"codepoints": [8716], "characters": "\u220C"}, - "⧐̸": {"codepoints": [10704, 824], "characters": "\u29D0\u0338"}, - "⋫": {"codepoints": [8939], "characters": "\u22EB"}, - "⋭": {"codepoints": [8941], "characters": "\u22ED"}, - "⊏̸": {"codepoints": [8847, 824], "characters": "\u228F\u0338"}, - "⋢": {"codepoints": [8930], "characters": "\u22E2"}, - "⊐̸": {"codepoints": [8848, 824], "characters": "\u2290\u0338"}, - "⋣": {"codepoints": [8931], "characters": "\u22E3"}, - "⊂⃒": {"codepoints": [8834, 8402], "characters": "\u2282\u20D2"}, - "⊈": {"codepoints": [8840], "characters": "\u2288"}, - "⊁": {"codepoints": [8833], "characters": "\u2281"}, - "⪰̸": {"codepoints": [10928, 824], "characters": "\u2AB0\u0338"}, - "⋡": {"codepoints": [8929], "characters": "\u22E1"}, - "≿̸": {"codepoints": [8831, 824], "characters": "\u227F\u0338"}, - "⊃⃒": {"codepoints": [8835, 8402], "characters": "\u2283\u20D2"}, - "⊉": {"codepoints": [8841], "characters": "\u2289"}, - "≁": {"codepoints": [8769], "characters": "\u2241"}, - "≄": {"codepoints": [8772], "characters": "\u2244"}, - "≇": {"codepoints": [8775], "characters": "\u2247"}, - "≉": {"codepoints": [8777], "characters": "\u2249"}, - "∤": {"codepoints": [8740], "characters": "\u2224"}, - "∦": {"codepoints": [8742], "characters": "\u2226"}, - "∦": {"codepoints": [8742], "characters": "\u2226"}, - "⫽⃥": {"codepoints": [11005, 8421], "characters": "\u2AFD\u20E5"}, - "∂̸": {"codepoints": [8706, 824], "characters": "\u2202\u0338"}, - "⨔": {"codepoints": [10772], "characters": "\u2A14"}, - "⊀": {"codepoints": [8832], "characters": "\u2280"}, - "⋠": {"codepoints": [8928], "characters": "\u22E0"}, - "⊀": {"codepoints": [8832], "characters": "\u2280"}, - "⪯̸": {"codepoints": [10927, 824], "characters": "\u2AAF\u0338"}, - "⪯̸": {"codepoints": [10927, 824], "characters": "\u2AAF\u0338"}, - "⤳̸": {"codepoints": [10547, 824], "characters": "\u2933\u0338"}, - "↛": {"codepoints": [8603], "characters": "\u219B"}, - "⇏": {"codepoints": [8655], "characters": "\u21CF"}, - "↝̸": {"codepoints": [8605, 824], "characters": "\u219D\u0338"}, - "↛": {"codepoints": [8603], "characters": "\u219B"}, - "⇏": {"codepoints": [8655], "characters": "\u21CF"}, - "⋫": {"codepoints": [8939], "characters": "\u22EB"}, - "⋭": {"codepoints": [8941], "characters": "\u22ED"}, - "⊁": {"codepoints": [8833], "characters": "\u2281"}, - "⋡": {"codepoints": [8929], "characters": "\u22E1"}, - "⪰̸": {"codepoints": [10928, 824], "characters": "\u2AB0\u0338"}, - "𝒩": {"codepoints": [119977], "characters": "\uD835\uDCA9"}, - "𝓃": {"codepoints": [120003], "characters": "\uD835\uDCC3"}, - "∤": {"codepoints": [8740], "characters": "\u2224"}, - "∦": {"codepoints": [8742], "characters": "\u2226"}, - "≁": {"codepoints": [8769], "characters": "\u2241"}, - "≄": {"codepoints": [8772], "characters": "\u2244"}, - "≄": {"codepoints": [8772], "characters": "\u2244"}, - "∤": {"codepoints": [8740], "characters": "\u2224"}, - "∦": {"codepoints": [8742], "characters": "\u2226"}, - "⋢": {"codepoints": [8930], "characters": "\u22E2"}, - "⋣": {"codepoints": [8931], "characters": "\u22E3"}, - "⊄": {"codepoints": [8836], "characters": "\u2284"}, - "⫅̸": {"codepoints": [10949, 824], "characters": "\u2AC5\u0338"}, - "⊈": {"codepoints": [8840], "characters": "\u2288"}, - "⊂⃒": {"codepoints": [8834, 8402], "characters": "\u2282\u20D2"}, - "⊈": {"codepoints": [8840], "characters": "\u2288"}, - "⫅̸": {"codepoints": [10949, 824], "characters": "\u2AC5\u0338"}, - "⊁": {"codepoints": [8833], "characters": "\u2281"}, - "⪰̸": {"codepoints": [10928, 824], "characters": "\u2AB0\u0338"}, - "⊅": {"codepoints": [8837], "characters": "\u2285"}, - "⫆̸": {"codepoints": [10950, 824], "characters": "\u2AC6\u0338"}, - "⊉": {"codepoints": [8841], "characters": "\u2289"}, - "⊃⃒": {"codepoints": [8835, 8402], "characters": "\u2283\u20D2"}, - "⊉": {"codepoints": [8841], "characters": "\u2289"}, - "⫆̸": {"codepoints": [10950, 824], "characters": "\u2AC6\u0338"}, - "≹": {"codepoints": [8825], "characters": "\u2279"}, - "Ñ": {"codepoints": [209], "characters": "\u00D1"}, - "Ñ": {"codepoints": [209], "characters": "\u00D1"}, - "ñ": {"codepoints": [241], "characters": "\u00F1"}, - "ñ": {"codepoints": [241], "characters": "\u00F1"}, - "≸": {"codepoints": [8824], "characters": "\u2278"}, - "⋪": {"codepoints": [8938], "characters": "\u22EA"}, - "⋬": {"codepoints": [8940], "characters": "\u22EC"}, - "⋫": {"codepoints": [8939], "characters": "\u22EB"}, - "⋭": {"codepoints": [8941], "characters": "\u22ED"}, - "Ν": {"codepoints": [925], "characters": "\u039D"}, - "ν": {"codepoints": [957], "characters": "\u03BD"}, - "#": {"codepoints": [35], "characters": "\u0023"}, - "№": {"codepoints": [8470], "characters": "\u2116"}, - " ": {"codepoints": [8199], "characters": "\u2007"}, - "≍⃒": {"codepoints": [8781, 8402], "characters": "\u224D\u20D2"}, - "⊬": {"codepoints": [8876], "characters": "\u22AC"}, - "⊭": {"codepoints": [8877], "characters": "\u22AD"}, - "⊮": {"codepoints": [8878], "characters": "\u22AE"}, - "⊯": {"codepoints": [8879], "characters": "\u22AF"}, - "≥⃒": {"codepoints": [8805, 8402], "characters": "\u2265\u20D2"}, - ">⃒": {"codepoints": [62, 8402], "characters": "\u003E\u20D2"}, - "⤄": {"codepoints": [10500], "characters": "\u2904"}, - "⧞": {"codepoints": [10718], "characters": "\u29DE"}, - "⤂": {"codepoints": [10498], "characters": "\u2902"}, - "≤⃒": {"codepoints": [8804, 8402], "characters": "\u2264\u20D2"}, - "<⃒": {"codepoints": [60, 8402], "characters": "\u003C\u20D2"}, - "⊴⃒": {"codepoints": [8884, 8402], "characters": "\u22B4\u20D2"}, - "⤃": {"codepoints": [10499], "characters": "\u2903"}, - "⊵⃒": {"codepoints": [8885, 8402], "characters": "\u22B5\u20D2"}, - "∼⃒": {"codepoints": [8764, 8402], "characters": "\u223C\u20D2"}, - "⤣": {"codepoints": [10531], "characters": "\u2923"}, - "↖": {"codepoints": [8598], "characters": "\u2196"}, - "⇖": {"codepoints": [8662], "characters": "\u21D6"}, - "↖": {"codepoints": [8598], "characters": "\u2196"}, - "⤧": {"codepoints": [10535], "characters": "\u2927"}, - "Ó": {"codepoints": [211], "characters": "\u00D3"}, - "Ó": {"codepoints": [211], "characters": "\u00D3"}, - "ó": {"codepoints": [243], "characters": "\u00F3"}, - "ó": {"codepoints": [243], "characters": "\u00F3"}, - "⊛": {"codepoints": [8859], "characters": "\u229B"}, - "Ô": {"codepoints": [212], "characters": "\u00D4"}, - "Ô": {"codepoints": [212], "characters": "\u00D4"}, - "ô": {"codepoints": [244], "characters": "\u00F4"}, - "ô": {"codepoints": [244], "characters": "\u00F4"}, - "⊚": {"codepoints": [8858], "characters": "\u229A"}, - "О": {"codepoints": [1054], "characters": "\u041E"}, - "о": {"codepoints": [1086], "characters": "\u043E"}, - "⊝": {"codepoints": [8861], "characters": "\u229D"}, - "Ő": {"codepoints": [336], "characters": "\u0150"}, - "ő": {"codepoints": [337], "characters": "\u0151"}, - "⨸": {"codepoints": [10808], "characters": "\u2A38"}, - "⊙": {"codepoints": [8857], "characters": "\u2299"}, - "⦼": {"codepoints": [10684], "characters": "\u29BC"}, - "Œ": {"codepoints": [338], "characters": "\u0152"}, - "œ": {"codepoints": [339], "characters": "\u0153"}, - "⦿": {"codepoints": [10687], "characters": "\u29BF"}, - "𝔒": {"codepoints": [120082], "characters": "\uD835\uDD12"}, - "𝔬": {"codepoints": [120108], "characters": "\uD835\uDD2C"}, - "˛": {"codepoints": [731], "characters": "\u02DB"}, - "Ò": {"codepoints": [210], "characters": "\u00D2"}, - "Ò": {"codepoints": [210], "characters": "\u00D2"}, - "ò": {"codepoints": [242], "characters": "\u00F2"}, - "ò": {"codepoints": [242], "characters": "\u00F2"}, - "⧁": {"codepoints": [10689], "characters": "\u29C1"}, - "⦵": {"codepoints": [10677], "characters": "\u29B5"}, - "Ω": {"codepoints": [937], "characters": "\u03A9"}, - "∮": {"codepoints": [8750], "characters": "\u222E"}, - "↺": {"codepoints": [8634], "characters": "\u21BA"}, - "⦾": {"codepoints": [10686], "characters": "\u29BE"}, - "⦻": {"codepoints": [10683], "characters": "\u29BB"}, - "‾": {"codepoints": [8254], "characters": "\u203E"}, - "⧀": {"codepoints": [10688], "characters": "\u29C0"}, - "Ō": {"codepoints": [332], "characters": "\u014C"}, - "ō": {"codepoints": [333], "characters": "\u014D"}, - "Ω": {"codepoints": [937], "characters": "\u03A9"}, - "ω": {"codepoints": [969], "characters": "\u03C9"}, - "Ο": {"codepoints": [927], "characters": "\u039F"}, - "ο": {"codepoints": [959], "characters": "\u03BF"}, - "⦶": {"codepoints": [10678], "characters": "\u29B6"}, - "⊖": {"codepoints": [8854], "characters": "\u2296"}, - "𝕆": {"codepoints": [120134], "characters": "\uD835\uDD46"}, - "𝕠": {"codepoints": [120160], "characters": "\uD835\uDD60"}, - "⦷": {"codepoints": [10679], "characters": "\u29B7"}, - "“": {"codepoints": [8220], "characters": "\u201C"}, - "‘": {"codepoints": [8216], "characters": "\u2018"}, - "⦹": {"codepoints": [10681], "characters": "\u29B9"}, - "⊕": {"codepoints": [8853], "characters": "\u2295"}, - "↻": {"codepoints": [8635], "characters": "\u21BB"}, - "⩔": {"codepoints": [10836], "characters": "\u2A54"}, - "∨": {"codepoints": [8744], "characters": "\u2228"}, - "⩝": {"codepoints": [10845], "characters": "\u2A5D"}, - "ℴ": {"codepoints": [8500], "characters": "\u2134"}, - "ℴ": {"codepoints": [8500], "characters": "\u2134"}, - "ª": {"codepoints": [170], "characters": "\u00AA"}, - "ª": {"codepoints": [170], "characters": "\u00AA"}, - "º": {"codepoints": [186], "characters": "\u00BA"}, - "º": {"codepoints": [186], "characters": "\u00BA"}, - "⊶": {"codepoints": [8886], "characters": "\u22B6"}, - "⩖": {"codepoints": [10838], "characters": "\u2A56"}, - "⩗": {"codepoints": [10839], "characters": "\u2A57"}, - "⩛": {"codepoints": [10843], "characters": "\u2A5B"}, - "Ⓢ": {"codepoints": [9416], "characters": "\u24C8"}, - "𝒪": {"codepoints": [119978], "characters": "\uD835\uDCAA"}, - "ℴ": {"codepoints": [8500], "characters": "\u2134"}, - "Ø": {"codepoints": [216], "characters": "\u00D8"}, - "Ø": {"codepoints": [216], "characters": "\u00D8"}, - "ø": {"codepoints": [248], "characters": "\u00F8"}, - "ø": {"codepoints": [248], "characters": "\u00F8"}, - "⊘": {"codepoints": [8856], "characters": "\u2298"}, - "Õ": {"codepoints": [213], "characters": "\u00D5"}, - "Õ": {"codepoints": [213], "characters": "\u00D5"}, - "õ": {"codepoints": [245], "characters": "\u00F5"}, - "õ": {"codepoints": [245], "characters": "\u00F5"}, - "⨶": {"codepoints": [10806], "characters": "\u2A36"}, - "⨷": {"codepoints": [10807], "characters": "\u2A37"}, - "⊗": {"codepoints": [8855], "characters": "\u2297"}, - "Ö": {"codepoints": [214], "characters": "\u00D6"}, - "Ö": {"codepoints": [214], "characters": "\u00D6"}, - "ö": {"codepoints": [246], "characters": "\u00F6"}, - "ö": {"codepoints": [246], "characters": "\u00F6"}, - "⌽": {"codepoints": [9021], "characters": "\u233D"}, - "‾": {"codepoints": [8254], "characters": "\u203E"}, - "⏞": {"codepoints": [9182], "characters": "\u23DE"}, - "⎴": {"codepoints": [9140], "characters": "\u23B4"}, - "⏜": {"codepoints": [9180], "characters": "\u23DC"}, - "¶": {"codepoints": [182], "characters": "\u00B6"}, - "¶": {"codepoints": [182], "characters": "\u00B6"}, - "∥": {"codepoints": [8741], "characters": "\u2225"}, - "∥": {"codepoints": [8741], "characters": "\u2225"}, - "⫳": {"codepoints": [10995], "characters": "\u2AF3"}, - "⫽": {"codepoints": [11005], "characters": "\u2AFD"}, - "∂": {"codepoints": [8706], "characters": "\u2202"}, - "∂": {"codepoints": [8706], "characters": "\u2202"}, - "П": {"codepoints": [1055], "characters": "\u041F"}, - "п": {"codepoints": [1087], "characters": "\u043F"}, - "%": {"codepoints": [37], "characters": "\u0025"}, - ".": {"codepoints": [46], "characters": "\u002E"}, - "‰": {"codepoints": [8240], "characters": "\u2030"}, - "⊥": {"codepoints": [8869], "characters": "\u22A5"}, - "‱": {"codepoints": [8241], "characters": "\u2031"}, - "𝔓": {"codepoints": [120083], "characters": "\uD835\uDD13"}, - "𝔭": {"codepoints": [120109], "characters": "\uD835\uDD2D"}, - "Φ": {"codepoints": [934], "characters": "\u03A6"}, - "φ": {"codepoints": [966], "characters": "\u03C6"}, - "ϕ": {"codepoints": [981], "characters": "\u03D5"}, - "ℳ": {"codepoints": [8499], "characters": "\u2133"}, - "☎": {"codepoints": [9742], "characters": "\u260E"}, - "Π": {"codepoints": [928], "characters": "\u03A0"}, - "π": {"codepoints": [960], "characters": "\u03C0"}, - "⋔": {"codepoints": [8916], "characters": "\u22D4"}, - "ϖ": {"codepoints": [982], "characters": "\u03D6"}, - "ℏ": {"codepoints": [8463], "characters": "\u210F"}, - "ℎ": {"codepoints": [8462], "characters": "\u210E"}, - "ℏ": {"codepoints": [8463], "characters": "\u210F"}, - "⨣": {"codepoints": [10787], "characters": "\u2A23"}, - "⊞": {"codepoints": [8862], "characters": "\u229E"}, - "⨢": {"codepoints": [10786], "characters": "\u2A22"}, - "+": {"codepoints": [43], "characters": "\u002B"}, - "∔": {"codepoints": [8724], "characters": "\u2214"}, - "⨥": {"codepoints": [10789], "characters": "\u2A25"}, - "⩲": {"codepoints": [10866], "characters": "\u2A72"}, - "±": {"codepoints": [177], "characters": "\u00B1"}, - "±": {"codepoints": [177], "characters": "\u00B1"}, - "±": {"codepoints": [177], "characters": "\u00B1"}, - "⨦": {"codepoints": [10790], "characters": "\u2A26"}, - "⨧": {"codepoints": [10791], "characters": "\u2A27"}, - "±": {"codepoints": [177], "characters": "\u00B1"}, - "ℌ": {"codepoints": [8460], "characters": "\u210C"}, - "⨕": {"codepoints": [10773], "characters": "\u2A15"}, - "𝕡": {"codepoints": [120161], "characters": "\uD835\uDD61"}, - "ℙ": {"codepoints": [8473], "characters": "\u2119"}, - "£": {"codepoints": [163], "characters": "\u00A3"}, - "£": {"codepoints": [163], "characters": "\u00A3"}, - "⪷": {"codepoints": [10935], "characters": "\u2AB7"}, - "⪻": {"codepoints": [10939], "characters": "\u2ABB"}, - "≺": {"codepoints": [8826], "characters": "\u227A"}, - "≼": {"codepoints": [8828], "characters": "\u227C"}, - "⪷": {"codepoints": [10935], "characters": "\u2AB7"}, - "≺": {"codepoints": [8826], "characters": "\u227A"}, - "≼": {"codepoints": [8828], "characters": "\u227C"}, - "≺": {"codepoints": [8826], "characters": "\u227A"}, - "⪯": {"codepoints": [10927], "characters": "\u2AAF"}, - "≼": {"codepoints": [8828], "characters": "\u227C"}, - "≾": {"codepoints": [8830], "characters": "\u227E"}, - "⪯": {"codepoints": [10927], "characters": "\u2AAF"}, - "⪹": {"codepoints": [10937], "characters": "\u2AB9"}, - "⪵": {"codepoints": [10933], "characters": "\u2AB5"}, - "⋨": {"codepoints": [8936], "characters": "\u22E8"}, - "⪯": {"codepoints": [10927], "characters": "\u2AAF"}, - "⪳": {"codepoints": [10931], "characters": "\u2AB3"}, - "≾": {"codepoints": [8830], "characters": "\u227E"}, - "′": {"codepoints": [8242], "characters": "\u2032"}, - "″": {"codepoints": [8243], "characters": "\u2033"}, - "ℙ": {"codepoints": [8473], "characters": "\u2119"}, - "⪹": {"codepoints": [10937], "characters": "\u2AB9"}, - "⪵": {"codepoints": [10933], "characters": "\u2AB5"}, - "⋨": {"codepoints": [8936], "characters": "\u22E8"}, - "∏": {"codepoints": [8719], "characters": "\u220F"}, - "∏": {"codepoints": [8719], "characters": "\u220F"}, - "⌮": {"codepoints": [9006], "characters": "\u232E"}, - "⌒": {"codepoints": [8978], "characters": "\u2312"}, - "⌓": {"codepoints": [8979], "characters": "\u2313"}, - "∝": {"codepoints": [8733], "characters": "\u221D"}, - "∝": {"codepoints": [8733], "characters": "\u221D"}, - "∷": {"codepoints": [8759], "characters": "\u2237"}, - "∝": {"codepoints": [8733], "characters": "\u221D"}, - "≾": {"codepoints": [8830], "characters": "\u227E"}, - "⊰": {"codepoints": [8880], "characters": "\u22B0"}, - "𝒫": {"codepoints": [119979], "characters": "\uD835\uDCAB"}, - "𝓅": {"codepoints": [120005], "characters": "\uD835\uDCC5"}, - "Ψ": {"codepoints": [936], "characters": "\u03A8"}, - "ψ": {"codepoints": [968], "characters": "\u03C8"}, - " ": {"codepoints": [8200], "characters": "\u2008"}, - "𝔔": {"codepoints": [120084], "characters": "\uD835\uDD14"}, - "𝔮": {"codepoints": [120110], "characters": "\uD835\uDD2E"}, - "⨌": {"codepoints": [10764], "characters": "\u2A0C"}, - "𝕢": {"codepoints": [120162], "characters": "\uD835\uDD62"}, - "ℚ": {"codepoints": [8474], "characters": "\u211A"}, - "⁗": {"codepoints": [8279], "characters": "\u2057"}, - "𝒬": {"codepoints": [119980], "characters": "\uD835\uDCAC"}, - "𝓆": {"codepoints": [120006], "characters": "\uD835\uDCC6"}, - "ℍ": {"codepoints": [8461], "characters": "\u210D"}, - "⨖": {"codepoints": [10774], "characters": "\u2A16"}, - "?": {"codepoints": [63], "characters": "\u003F"}, - "≟": {"codepoints": [8799], "characters": "\u225F"}, - """: {"codepoints": [34], "characters": "\u0022"}, - """: {"codepoints": [34], "characters": "\u0022"}, - """: {"codepoints": [34], "characters": "\u0022"}, - """: {"codepoints": [34], "characters": "\u0022"}, - "⇛": {"codepoints": [8667], "characters": "\u21DB"}, - "∽̱": {"codepoints": [8765, 817], "characters": "\u223D\u0331"}, - "Ŕ": {"codepoints": [340], "characters": "\u0154"}, - "ŕ": {"codepoints": [341], "characters": "\u0155"}, - "√": {"codepoints": [8730], "characters": "\u221A"}, - "⦳": {"codepoints": [10675], "characters": "\u29B3"}, - "⟩": {"codepoints": [10217], "characters": "\u27E9"}, - "⟫": {"codepoints": [10219], "characters": "\u27EB"}, - "⦒": {"codepoints": [10642], "characters": "\u2992"}, - "⦥": {"codepoints": [10661], "characters": "\u29A5"}, - "⟩": {"codepoints": [10217], "characters": "\u27E9"}, - "»": {"codepoints": [187], "characters": "\u00BB"}, - "»": {"codepoints": [187], "characters": "\u00BB"}, - "⥵": {"codepoints": [10613], "characters": "\u2975"}, - "⇥": {"codepoints": [8677], "characters": "\u21E5"}, - "⤠": {"codepoints": [10528], "characters": "\u2920"}, - "⤳": {"codepoints": [10547], "characters": "\u2933"}, - "→": {"codepoints": [8594], "characters": "\u2192"}, - "↠": {"codepoints": [8608], "characters": "\u21A0"}, - "⇒": {"codepoints": [8658], "characters": "\u21D2"}, - "⤞": {"codepoints": [10526], "characters": "\u291E"}, - "↪": {"codepoints": [8618], "characters": "\u21AA"}, - "↬": {"codepoints": [8620], "characters": "\u21AC"}, - "⥅": {"codepoints": [10565], "characters": "\u2945"}, - "⥴": {"codepoints": [10612], "characters": "\u2974"}, - "⤖": {"codepoints": [10518], "characters": "\u2916"}, - "↣": {"codepoints": [8611], "characters": "\u21A3"}, - "↝": {"codepoints": [8605], "characters": "\u219D"}, - "⤚": {"codepoints": [10522], "characters": "\u291A"}, - "⤜": {"codepoints": [10524], "characters": "\u291C"}, - "∶": {"codepoints": [8758], "characters": "\u2236"}, - "ℚ": {"codepoints": [8474], "characters": "\u211A"}, - "⤍": {"codepoints": [10509], "characters": "\u290D"}, - "⤏": {"codepoints": [10511], "characters": "\u290F"}, - "⤐": {"codepoints": [10512], "characters": "\u2910"}, - "❳": {"codepoints": [10099], "characters": "\u2773"}, - "}": {"codepoints": [125], "characters": "\u007D"}, - "]": {"codepoints": [93], "characters": "\u005D"}, - "⦌": {"codepoints": [10636], "characters": "\u298C"}, - "⦎": {"codepoints": [10638], "characters": "\u298E"}, - "⦐": {"codepoints": [10640], "characters": "\u2990"}, - "Ř": {"codepoints": [344], "characters": "\u0158"}, - "ř": {"codepoints": [345], "characters": "\u0159"}, - "Ŗ": {"codepoints": [342], "characters": "\u0156"}, - "ŗ": {"codepoints": [343], "characters": "\u0157"}, - "⌉": {"codepoints": [8969], "characters": "\u2309"}, - "}": {"codepoints": [125], "characters": "\u007D"}, - "Р": {"codepoints": [1056], "characters": "\u0420"}, - "р": {"codepoints": [1088], "characters": "\u0440"}, - "⤷": {"codepoints": [10551], "characters": "\u2937"}, - "⥩": {"codepoints": [10601], "characters": "\u2969"}, - "”": {"codepoints": [8221], "characters": "\u201D"}, - "”": {"codepoints": [8221], "characters": "\u201D"}, - "↳": {"codepoints": [8627], "characters": "\u21B3"}, - "ℜ": {"codepoints": [8476], "characters": "\u211C"}, - "ℛ": {"codepoints": [8475], "characters": "\u211B"}, - "ℜ": {"codepoints": [8476], "characters": "\u211C"}, - "ℝ": {"codepoints": [8477], "characters": "\u211D"}, - "ℜ": {"codepoints": [8476], "characters": "\u211C"}, - "▭": {"codepoints": [9645], "characters": "\u25AD"}, - "®": {"codepoints": [174], "characters": "\u00AE"}, - "®": {"codepoints": [174], "characters": "\u00AE"}, - "®": {"codepoints": [174], "characters": "\u00AE"}, - "®": {"codepoints": [174], "characters": "\u00AE"}, - "∋": {"codepoints": [8715], "characters": "\u220B"}, - "⇋": {"codepoints": [8651], "characters": "\u21CB"}, - "⥯": {"codepoints": [10607], "characters": "\u296F"}, - "⥽": {"codepoints": [10621], "characters": "\u297D"}, - "⌋": {"codepoints": [8971], "characters": "\u230B"}, - "𝔯": {"codepoints": [120111], "characters": "\uD835\uDD2F"}, - "ℜ": {"codepoints": [8476], "characters": "\u211C"}, - "⥤": {"codepoints": [10596], "characters": "\u2964"}, - "⇁": {"codepoints": [8641], "characters": "\u21C1"}, - "⇀": {"codepoints": [8640], "characters": "\u21C0"}, - "⥬": {"codepoints": [10604], "characters": "\u296C"}, - "Ρ": {"codepoints": [929], "characters": "\u03A1"}, - "ρ": {"codepoints": [961], "characters": "\u03C1"}, - "ϱ": {"codepoints": [1009], "characters": "\u03F1"}, - "⟩": {"codepoints": [10217], "characters": "\u27E9"}, - "⇥": {"codepoints": [8677], "characters": "\u21E5"}, - "→": {"codepoints": [8594], "characters": "\u2192"}, - "→": {"codepoints": [8594], "characters": "\u2192"}, - "⇒": {"codepoints": [8658], "characters": "\u21D2"}, - "⇄": {"codepoints": [8644], "characters": "\u21C4"}, - "↣": {"codepoints": [8611], "characters": "\u21A3"}, - "⌉": {"codepoints": [8969], "characters": "\u2309"}, - "⟧": {"codepoints": [10215], "characters": "\u27E7"}, - "⥝": {"codepoints": [10589], "characters": "\u295D"}, - "⥕": {"codepoints": [10581], "characters": "\u2955"}, - "⇂": {"codepoints": [8642], "characters": "\u21C2"}, - "⌋": {"codepoints": [8971], "characters": "\u230B"}, - "⇁": {"codepoints": [8641], "characters": "\u21C1"}, - "⇀": {"codepoints": [8640], "characters": "\u21C0"}, - "⇄": {"codepoints": [8644], "characters": "\u21C4"}, - "⇌": {"codepoints": [8652], "characters": "\u21CC"}, - "⇉": {"codepoints": [8649], "characters": "\u21C9"}, - "↝": {"codepoints": [8605], "characters": "\u219D"}, - "↦": {"codepoints": [8614], "characters": "\u21A6"}, - "⊢": {"codepoints": [8866], "characters": "\u22A2"}, - "⥛": {"codepoints": [10587], "characters": "\u295B"}, - "⋌": {"codepoints": [8908], "characters": "\u22CC"}, - "⧐": {"codepoints": [10704], "characters": "\u29D0"}, - "⊳": {"codepoints": [8883], "characters": "\u22B3"}, - "⊵": {"codepoints": [8885], "characters": "\u22B5"}, - "⥏": {"codepoints": [10575], "characters": "\u294F"}, - "⥜": {"codepoints": [10588], "characters": "\u295C"}, - "⥔": {"codepoints": [10580], "characters": "\u2954"}, - "↾": {"codepoints": [8638], "characters": "\u21BE"}, - "⥓": {"codepoints": [10579], "characters": "\u2953"}, - "⇀": {"codepoints": [8640], "characters": "\u21C0"}, - "˚": {"codepoints": [730], "characters": "\u02DA"}, - "≓": {"codepoints": [8787], "characters": "\u2253"}, - "⇄": {"codepoints": [8644], "characters": "\u21C4"}, - "⇌": {"codepoints": [8652], "characters": "\u21CC"}, - "‏": {"codepoints": [8207], "characters": "\u200F"}, - "⎱": {"codepoints": [9137], "characters": "\u23B1"}, - "⎱": {"codepoints": [9137], "characters": "\u23B1"}, - "⫮": {"codepoints": [10990], "characters": "\u2AEE"}, - "⟭": {"codepoints": [10221], "characters": "\u27ED"}, - "⇾": {"codepoints": [8702], "characters": "\u21FE"}, - "⟧": {"codepoints": [10215], "characters": "\u27E7"}, - "⦆": {"codepoints": [10630], "characters": "\u2986"}, - "𝕣": {"codepoints": [120163], "characters": "\uD835\uDD63"}, - "ℝ": {"codepoints": [8477], "characters": "\u211D"}, - "⨮": {"codepoints": [10798], "characters": "\u2A2E"}, - "⨵": {"codepoints": [10805], "characters": "\u2A35"}, - "⥰": {"codepoints": [10608], "characters": "\u2970"}, - ")": {"codepoints": [41], "characters": "\u0029"}, - "⦔": {"codepoints": [10644], "characters": "\u2994"}, - "⨒": {"codepoints": [10770], "characters": "\u2A12"}, - "⇉": {"codepoints": [8649], "characters": "\u21C9"}, - "⇛": {"codepoints": [8667], "characters": "\u21DB"}, - "›": {"codepoints": [8250], "characters": "\u203A"}, - "𝓇": {"codepoints": [120007], "characters": "\uD835\uDCC7"}, - "ℛ": {"codepoints": [8475], "characters": "\u211B"}, - "↱": {"codepoints": [8625], "characters": "\u21B1"}, - "↱": {"codepoints": [8625], "characters": "\u21B1"}, - "]": {"codepoints": [93], "characters": "\u005D"}, - "’": {"codepoints": [8217], "characters": "\u2019"}, - "’": {"codepoints": [8217], "characters": "\u2019"}, - "⋌": {"codepoints": [8908], "characters": "\u22CC"}, - "⋊": {"codepoints": [8906], "characters": "\u22CA"}, - "▹": {"codepoints": [9657], "characters": "\u25B9"}, - "⊵": {"codepoints": [8885], "characters": "\u22B5"}, - "▸": {"codepoints": [9656], "characters": "\u25B8"}, - "⧎": {"codepoints": [10702], "characters": "\u29CE"}, - "⧴": {"codepoints": [10740], "characters": "\u29F4"}, - "⥨": {"codepoints": [10600], "characters": "\u2968"}, - "℞": {"codepoints": [8478], "characters": "\u211E"}, - "Ś": {"codepoints": [346], "characters": "\u015A"}, - "ś": {"codepoints": [347], "characters": "\u015B"}, - "‚": {"codepoints": [8218], "characters": "\u201A"}, - "⪸": {"codepoints": [10936], "characters": "\u2AB8"}, - "Š": {"codepoints": [352], "characters": "\u0160"}, - "š": {"codepoints": [353], "characters": "\u0161"}, - "⪼": {"codepoints": [10940], "characters": "\u2ABC"}, - "≻": {"codepoints": [8827], "characters": "\u227B"}, - "≽": {"codepoints": [8829], "characters": "\u227D"}, - "⪰": {"codepoints": [10928], "characters": "\u2AB0"}, - "⪴": {"codepoints": [10932], "characters": "\u2AB4"}, - "Ş": {"codepoints": [350], "characters": "\u015E"}, - "ş": {"codepoints": [351], "characters": "\u015F"}, - "Ŝ": {"codepoints": [348], "characters": "\u015C"}, - "ŝ": {"codepoints": [349], "characters": "\u015D"}, - "⪺": {"codepoints": [10938], "characters": "\u2ABA"}, - "⪶": {"codepoints": [10934], "characters": "\u2AB6"}, - "⋩": {"codepoints": [8937], "characters": "\u22E9"}, - "⨓": {"codepoints": [10771], "characters": "\u2A13"}, - "≿": {"codepoints": [8831], "characters": "\u227F"}, - "С": {"codepoints": [1057], "characters": "\u0421"}, - "с": {"codepoints": [1089], "characters": "\u0441"}, - "⊡": {"codepoints": [8865], "characters": "\u22A1"}, - "⋅": {"codepoints": [8901], "characters": "\u22C5"}, - "⩦": {"codepoints": [10854], "characters": "\u2A66"}, - "⤥": {"codepoints": [10533], "characters": "\u2925"}, - "↘": {"codepoints": [8600], "characters": "\u2198"}, - "⇘": {"codepoints": [8664], "characters": "\u21D8"}, - "↘": {"codepoints": [8600], "characters": "\u2198"}, - "§": {"codepoints": [167], "characters": "\u00A7"}, - "§": {"codepoints": [167], "characters": "\u00A7"}, - ";": {"codepoints": [59], "characters": "\u003B"}, - "⤩": {"codepoints": [10537], "characters": "\u2929"}, - "∖": {"codepoints": [8726], "characters": "\u2216"}, - "∖": {"codepoints": [8726], "characters": "\u2216"}, - "✶": {"codepoints": [10038], "characters": "\u2736"}, - "𝔖": {"codepoints": [120086], "characters": "\uD835\uDD16"}, - "𝔰": {"codepoints": [120112], "characters": "\uD835\uDD30"}, - "⌢": {"codepoints": [8994], "characters": "\u2322"}, - "♯": {"codepoints": [9839], "characters": "\u266F"}, - "Щ": {"codepoints": [1065], "characters": "\u0429"}, - "щ": {"codepoints": [1097], "characters": "\u0449"}, - "Ш": {"codepoints": [1064], "characters": "\u0428"}, - "ш": {"codepoints": [1096], "characters": "\u0448"}, - "↓": {"codepoints": [8595], "characters": "\u2193"}, - "←": {"codepoints": [8592], "characters": "\u2190"}, - "∣": {"codepoints": [8739], "characters": "\u2223"}, - "∥": {"codepoints": [8741], "characters": "\u2225"}, - "→": {"codepoints": [8594], "characters": "\u2192"}, - "↑": {"codepoints": [8593], "characters": "\u2191"}, - "­": {"codepoints": [173], "characters": "\u00AD"}, - "­": {"codepoints": [173], "characters": "\u00AD"}, - "Σ": {"codepoints": [931], "characters": "\u03A3"}, - "σ": {"codepoints": [963], "characters": "\u03C3"}, - "ς": {"codepoints": [962], "characters": "\u03C2"}, - "ς": {"codepoints": [962], "characters": "\u03C2"}, - "∼": {"codepoints": [8764], "characters": "\u223C"}, - "⩪": {"codepoints": [10858], "characters": "\u2A6A"}, - "≃": {"codepoints": [8771], "characters": "\u2243"}, - "≃": {"codepoints": [8771], "characters": "\u2243"}, - "⪞": {"codepoints": [10910], "characters": "\u2A9E"}, - "⪠": {"codepoints": [10912], "characters": "\u2AA0"}, - "⪝": {"codepoints": [10909], "characters": "\u2A9D"}, - "⪟": {"codepoints": [10911], "characters": "\u2A9F"}, - "≆": {"codepoints": [8774], "characters": "\u2246"}, - "⨤": {"codepoints": [10788], "characters": "\u2A24"}, - "⥲": {"codepoints": [10610], "characters": "\u2972"}, - "←": {"codepoints": [8592], "characters": "\u2190"}, - "∘": {"codepoints": [8728], "characters": "\u2218"}, - "∖": {"codepoints": [8726], "characters": "\u2216"}, - "⨳": {"codepoints": [10803], "characters": "\u2A33"}, - "⧤": {"codepoints": [10724], "characters": "\u29E4"}, - "∣": {"codepoints": [8739], "characters": "\u2223"}, - "⌣": {"codepoints": [8995], "characters": "\u2323"}, - "⪪": {"codepoints": [10922], "characters": "\u2AAA"}, - "⪬": {"codepoints": [10924], "characters": "\u2AAC"}, - "⪬︀": {"codepoints": [10924, 65024], "characters": "\u2AAC\uFE00"}, - "Ь": {"codepoints": [1068], "characters": "\u042C"}, - "ь": {"codepoints": [1100], "characters": "\u044C"}, - "⌿": {"codepoints": [9023], "characters": "\u233F"}, - "⧄": {"codepoints": [10692], "characters": "\u29C4"}, - "/": {"codepoints": [47], "characters": "\u002F"}, - "𝕊": {"codepoints": [120138], "characters": "\uD835\uDD4A"}, - "𝕤": {"codepoints": [120164], "characters": "\uD835\uDD64"}, - "♠": {"codepoints": [9824], "characters": "\u2660"}, - "♠": {"codepoints": [9824], "characters": "\u2660"}, - "∥": {"codepoints": [8741], "characters": "\u2225"}, - "⊓": {"codepoints": [8851], "characters": "\u2293"}, - "⊓︀": {"codepoints": [8851, 65024], "characters": "\u2293\uFE00"}, - "⊔": {"codepoints": [8852], "characters": "\u2294"}, - "⊔︀": {"codepoints": [8852, 65024], "characters": "\u2294\uFE00"}, - "√": {"codepoints": [8730], "characters": "\u221A"}, - "⊏": {"codepoints": [8847], "characters": "\u228F"}, - "⊑": {"codepoints": [8849], "characters": "\u2291"}, - "⊏": {"codepoints": [8847], "characters": "\u228F"}, - "⊑": {"codepoints": [8849], "characters": "\u2291"}, - "⊐": {"codepoints": [8848], "characters": "\u2290"}, - "⊒": {"codepoints": [8850], "characters": "\u2292"}, - "⊐": {"codepoints": [8848], "characters": "\u2290"}, - "⊒": {"codepoints": [8850], "characters": "\u2292"}, - "□": {"codepoints": [9633], "characters": "\u25A1"}, - "□": {"codepoints": [9633], "characters": "\u25A1"}, - "⊓": {"codepoints": [8851], "characters": "\u2293"}, - "⊏": {"codepoints": [8847], "characters": "\u228F"}, - "⊑": {"codepoints": [8849], "characters": "\u2291"}, - "⊐": {"codepoints": [8848], "characters": "\u2290"}, - "⊒": {"codepoints": [8850], "characters": "\u2292"}, - "⊔": {"codepoints": [8852], "characters": "\u2294"}, - "▪": {"codepoints": [9642], "characters": "\u25AA"}, - "□": {"codepoints": [9633], "characters": "\u25A1"}, - "▪": {"codepoints": [9642], "characters": "\u25AA"}, - "→": {"codepoints": [8594], "characters": "\u2192"}, - "𝒮": {"codepoints": [119982], "characters": "\uD835\uDCAE"}, - "𝓈": {"codepoints": [120008], "characters": "\uD835\uDCC8"}, - "∖": {"codepoints": [8726], "characters": "\u2216"}, - "⌣": {"codepoints": [8995], "characters": "\u2323"}, - "⋆": {"codepoints": [8902], "characters": "\u22C6"}, - "⋆": {"codepoints": [8902], "characters": "\u22C6"}, - "☆": {"codepoints": [9734], "characters": "\u2606"}, - "★": {"codepoints": [9733], "characters": "\u2605"}, - "ϵ": {"codepoints": [1013], "characters": "\u03F5"}, - "ϕ": {"codepoints": [981], "characters": "\u03D5"}, - "¯": {"codepoints": [175], "characters": "\u00AF"}, - "⊂": {"codepoints": [8834], "characters": "\u2282"}, - "⋐": {"codepoints": [8912], "characters": "\u22D0"}, - "⪽": {"codepoints": [10941], "characters": "\u2ABD"}, - "⫅": {"codepoints": [10949], "characters": "\u2AC5"}, - "⊆": {"codepoints": [8838], "characters": "\u2286"}, - "⫃": {"codepoints": [10947], "characters": "\u2AC3"}, - "⫁": {"codepoints": [10945], "characters": "\u2AC1"}, - "⫋": {"codepoints": [10955], "characters": "\u2ACB"}, - "⊊": {"codepoints": [8842], "characters": "\u228A"}, - "⪿": {"codepoints": [10943], "characters": "\u2ABF"}, - "⥹": {"codepoints": [10617], "characters": "\u2979"}, - "⊂": {"codepoints": [8834], "characters": "\u2282"}, - "⋐": {"codepoints": [8912], "characters": "\u22D0"}, - "⊆": {"codepoints": [8838], "characters": "\u2286"}, - "⫅": {"codepoints": [10949], "characters": "\u2AC5"}, - "⊆": {"codepoints": [8838], "characters": "\u2286"}, - "⊊": {"codepoints": [8842], "characters": "\u228A"}, - "⫋": {"codepoints": [10955], "characters": "\u2ACB"}, - "⫇": {"codepoints": [10951], "characters": "\u2AC7"}, - "⫕": {"codepoints": [10965], "characters": "\u2AD5"}, - "⫓": {"codepoints": [10963], "characters": "\u2AD3"}, - "⪸": {"codepoints": [10936], "characters": "\u2AB8"}, - "≻": {"codepoints": [8827], "characters": "\u227B"}, - "≽": {"codepoints": [8829], "characters": "\u227D"}, - "≻": {"codepoints": [8827], "characters": "\u227B"}, - "⪰": {"codepoints": [10928], "characters": "\u2AB0"}, - "≽": {"codepoints": [8829], "characters": "\u227D"}, - "≿": {"codepoints": [8831], "characters": "\u227F"}, - "⪰": {"codepoints": [10928], "characters": "\u2AB0"}, - "⪺": {"codepoints": [10938], "characters": "\u2ABA"}, - "⪶": {"codepoints": [10934], "characters": "\u2AB6"}, - "⋩": {"codepoints": [8937], "characters": "\u22E9"}, - "≿": {"codepoints": [8831], "characters": "\u227F"}, - "∋": {"codepoints": [8715], "characters": "\u220B"}, - "∑": {"codepoints": [8721], "characters": "\u2211"}, - "∑": {"codepoints": [8721], "characters": "\u2211"}, - "♪": {"codepoints": [9834], "characters": "\u266A"}, - "¹": {"codepoints": [185], "characters": "\u00B9"}, - "¹": {"codepoints": [185], "characters": "\u00B9"}, - "²": {"codepoints": [178], "characters": "\u00B2"}, - "²": {"codepoints": [178], "characters": "\u00B2"}, - "³": {"codepoints": [179], "characters": "\u00B3"}, - "³": {"codepoints": [179], "characters": "\u00B3"}, - "⊃": {"codepoints": [8835], "characters": "\u2283"}, - "⋑": {"codepoints": [8913], "characters": "\u22D1"}, - "⪾": {"codepoints": [10942], "characters": "\u2ABE"}, - "⫘": {"codepoints": [10968], "characters": "\u2AD8"}, - "⫆": {"codepoints": [10950], "characters": "\u2AC6"}, - "⊇": {"codepoints": [8839], "characters": "\u2287"}, - "⫄": {"codepoints": [10948], "characters": "\u2AC4"}, - "⊃": {"codepoints": [8835], "characters": "\u2283"}, - "⊇": {"codepoints": [8839], "characters": "\u2287"}, - "⟉": {"codepoints": [10185], "characters": "\u27C9"}, - "⫗": {"codepoints": [10967], "characters": "\u2AD7"}, - "⥻": {"codepoints": [10619], "characters": "\u297B"}, - "⫂": {"codepoints": [10946], "characters": "\u2AC2"}, - "⫌": {"codepoints": [10956], "characters": "\u2ACC"}, - "⊋": {"codepoints": [8843], "characters": "\u228B"}, - "⫀": {"codepoints": [10944], "characters": "\u2AC0"}, - "⊃": {"codepoints": [8835], "characters": "\u2283"}, - "⋑": {"codepoints": [8913], "characters": "\u22D1"}, - "⊇": {"codepoints": [8839], "characters": "\u2287"}, - "⫆": {"codepoints": [10950], "characters": "\u2AC6"}, - "⊋": {"codepoints": [8843], "characters": "\u228B"}, - "⫌": {"codepoints": [10956], "characters": "\u2ACC"}, - "⫈": {"codepoints": [10952], "characters": "\u2AC8"}, - "⫔": {"codepoints": [10964], "characters": "\u2AD4"}, - "⫖": {"codepoints": [10966], "characters": "\u2AD6"}, - "⤦": {"codepoints": [10534], "characters": "\u2926"}, - "↙": {"codepoints": [8601], "characters": "\u2199"}, - "⇙": {"codepoints": [8665], "characters": "\u21D9"}, - "↙": {"codepoints": [8601], "characters": "\u2199"}, - "⤪": {"codepoints": [10538], "characters": "\u292A"}, - "ß": {"codepoints": [223], "characters": "\u00DF"}, - "ß": {"codepoints": [223], "characters": "\u00DF"}, - " ": {"codepoints": [9], "characters": "\u0009"}, - "⌖": {"codepoints": [8982], "characters": "\u2316"}, - "Τ": {"codepoints": [932], "characters": "\u03A4"}, - "τ": {"codepoints": [964], "characters": "\u03C4"}, - "⎴": {"codepoints": [9140], "characters": "\u23B4"}, - "Ť": {"codepoints": [356], "characters": "\u0164"}, - "ť": {"codepoints": [357], "characters": "\u0165"}, - "Ţ": {"codepoints": [354], "characters": "\u0162"}, - "ţ": {"codepoints": [355], "characters": "\u0163"}, - "Т": {"codepoints": [1058], "characters": "\u0422"}, - "т": {"codepoints": [1090], "characters": "\u0442"}, - "⃛": {"codepoints": [8411], "characters": "\u20DB"}, - "⌕": {"codepoints": [8981], "characters": "\u2315"}, - "𝔗": {"codepoints": [120087], "characters": "\uD835\uDD17"}, - "𝔱": {"codepoints": [120113], "characters": "\uD835\uDD31"}, - "∴": {"codepoints": [8756], "characters": "\u2234"}, - "∴": {"codepoints": [8756], "characters": "\u2234"}, - "∴": {"codepoints": [8756], "characters": "\u2234"}, - "Θ": {"codepoints": [920], "characters": "\u0398"}, - "θ": {"codepoints": [952], "characters": "\u03B8"}, - "ϑ": {"codepoints": [977], "characters": "\u03D1"}, - "ϑ": {"codepoints": [977], "characters": "\u03D1"}, - "≈": {"codepoints": [8776], "characters": "\u2248"}, - "∼": {"codepoints": [8764], "characters": "\u223C"}, - "  ": {"codepoints": [8287, 8202], "characters": "\u205F\u200A"}, - " ": {"codepoints": [8201], "characters": "\u2009"}, - " ": {"codepoints": [8201], "characters": "\u2009"}, - "≈": {"codepoints": [8776], "characters": "\u2248"}, - "∼": {"codepoints": [8764], "characters": "\u223C"}, - "Þ": {"codepoints": [222], "characters": "\u00DE"}, - "Þ": {"codepoints": [222], "characters": "\u00DE"}, - "þ": {"codepoints": [254], "characters": "\u00FE"}, - "þ": {"codepoints": [254], "characters": "\u00FE"}, - "˜": {"codepoints": [732], "characters": "\u02DC"}, - "∼": {"codepoints": [8764], "characters": "\u223C"}, - "≃": {"codepoints": [8771], "characters": "\u2243"}, - "≅": {"codepoints": [8773], "characters": "\u2245"}, - "≈": {"codepoints": [8776], "characters": "\u2248"}, - "⨱": {"codepoints": [10801], "characters": "\u2A31"}, - "⊠": {"codepoints": [8864], "characters": "\u22A0"}, - "×": {"codepoints": [215], "characters": "\u00D7"}, - "×": {"codepoints": [215], "characters": "\u00D7"}, - "⨰": {"codepoints": [10800], "characters": "\u2A30"}, - "∭": {"codepoints": [8749], "characters": "\u222D"}, - "⤨": {"codepoints": [10536], "characters": "\u2928"}, - "⌶": {"codepoints": [9014], "characters": "\u2336"}, - "⫱": {"codepoints": [10993], "characters": "\u2AF1"}, - "⊤": {"codepoints": [8868], "characters": "\u22A4"}, - "𝕋": {"codepoints": [120139], "characters": "\uD835\uDD4B"}, - "𝕥": {"codepoints": [120165], "characters": "\uD835\uDD65"}, - "⫚": {"codepoints": [10970], "characters": "\u2ADA"}, - "⤩": {"codepoints": [10537], "characters": "\u2929"}, - "‴": {"codepoints": [8244], "characters": "\u2034"}, - "™": {"codepoints": [8482], "characters": "\u2122"}, - "™": {"codepoints": [8482], "characters": "\u2122"}, - "▵": {"codepoints": [9653], "characters": "\u25B5"}, - "▿": {"codepoints": [9663], "characters": "\u25BF"}, - "◃": {"codepoints": [9667], "characters": "\u25C3"}, - "⊴": {"codepoints": [8884], "characters": "\u22B4"}, - "≜": {"codepoints": [8796], "characters": "\u225C"}, - "▹": {"codepoints": [9657], "characters": "\u25B9"}, - "⊵": {"codepoints": [8885], "characters": "\u22B5"}, - "◬": {"codepoints": [9708], "characters": "\u25EC"}, - "≜": {"codepoints": [8796], "characters": "\u225C"}, - "⨺": {"codepoints": [10810], "characters": "\u2A3A"}, - "⃛": {"codepoints": [8411], "characters": "\u20DB"}, - "⨹": {"codepoints": [10809], "characters": "\u2A39"}, - "⧍": {"codepoints": [10701], "characters": "\u29CD"}, - "⨻": {"codepoints": [10811], "characters": "\u2A3B"}, - "⏢": {"codepoints": [9186], "characters": "\u23E2"}, - "𝒯": {"codepoints": [119983], "characters": "\uD835\uDCAF"}, - "𝓉": {"codepoints": [120009], "characters": "\uD835\uDCC9"}, - "Ц": {"codepoints": [1062], "characters": "\u0426"}, - "ц": {"codepoints": [1094], "characters": "\u0446"}, - "Ћ": {"codepoints": [1035], "characters": "\u040B"}, - "ћ": {"codepoints": [1115], "characters": "\u045B"}, - "Ŧ": {"codepoints": [358], "characters": "\u0166"}, - "ŧ": {"codepoints": [359], "characters": "\u0167"}, - "≬": {"codepoints": [8812], "characters": "\u226C"}, - "↞": {"codepoints": [8606], "characters": "\u219E"}, - "↠": {"codepoints": [8608], "characters": "\u21A0"}, - "Ú": {"codepoints": [218], "characters": "\u00DA"}, - "Ú": {"codepoints": [218], "characters": "\u00DA"}, - "ú": {"codepoints": [250], "characters": "\u00FA"}, - "ú": {"codepoints": [250], "characters": "\u00FA"}, - "↑": {"codepoints": [8593], "characters": "\u2191"}, - "↟": {"codepoints": [8607], "characters": "\u219F"}, - "⇑": {"codepoints": [8657], "characters": "\u21D1"}, - "⥉": {"codepoints": [10569], "characters": "\u2949"}, - "Ў": {"codepoints": [1038], "characters": "\u040E"}, - "ў": {"codepoints": [1118], "characters": "\u045E"}, - "Ŭ": {"codepoints": [364], "characters": "\u016C"}, - "ŭ": {"codepoints": [365], "characters": "\u016D"}, - "Û": {"codepoints": [219], "characters": "\u00DB"}, - "Û": {"codepoints": [219], "characters": "\u00DB"}, - "û": {"codepoints": [251], "characters": "\u00FB"}, - "û": {"codepoints": [251], "characters": "\u00FB"}, - "У": {"codepoints": [1059], "characters": "\u0423"}, - "у": {"codepoints": [1091], "characters": "\u0443"}, - "⇅": {"codepoints": [8645], "characters": "\u21C5"}, - "Ű": {"codepoints": [368], "characters": "\u0170"}, - "ű": {"codepoints": [369], "characters": "\u0171"}, - "⥮": {"codepoints": [10606], "characters": "\u296E"}, - "⥾": {"codepoints": [10622], "characters": "\u297E"}, - "𝔘": {"codepoints": [120088], "characters": "\uD835\uDD18"}, - "𝔲": {"codepoints": [120114], "characters": "\uD835\uDD32"}, - "Ù": {"codepoints": [217], "characters": "\u00D9"}, - "Ù": {"codepoints": [217], "characters": "\u00D9"}, - "ù": {"codepoints": [249], "characters": "\u00F9"}, - "ù": {"codepoints": [249], "characters": "\u00F9"}, - "⥣": {"codepoints": [10595], "characters": "\u2963"}, - "↿": {"codepoints": [8639], "characters": "\u21BF"}, - "↾": {"codepoints": [8638], "characters": "\u21BE"}, - "▀": {"codepoints": [9600], "characters": "\u2580"}, - "⌜": {"codepoints": [8988], "characters": "\u231C"}, - "⌜": {"codepoints": [8988], "characters": "\u231C"}, - "⌏": {"codepoints": [8975], "characters": "\u230F"}, - "◸": {"codepoints": [9720], "characters": "\u25F8"}, - "Ū": {"codepoints": [362], "characters": "\u016A"}, - "ū": {"codepoints": [363], "characters": "\u016B"}, - "¨": {"codepoints": [168], "characters": "\u00A8"}, - "¨": {"codepoints": [168], "characters": "\u00A8"}, - "_": {"codepoints": [95], "characters": "\u005F"}, - "⏟": {"codepoints": [9183], "characters": "\u23DF"}, - "⎵": {"codepoints": [9141], "characters": "\u23B5"}, - "⏝": {"codepoints": [9181], "characters": "\u23DD"}, - "⋃": {"codepoints": [8899], "characters": "\u22C3"}, - "⊎": {"codepoints": [8846], "characters": "\u228E"}, - "Ų": {"codepoints": [370], "characters": "\u0172"}, - "ų": {"codepoints": [371], "characters": "\u0173"}, - "𝕌": {"codepoints": [120140], "characters": "\uD835\uDD4C"}, - "𝕦": {"codepoints": [120166], "characters": "\uD835\uDD66"}, - "⤒": {"codepoints": [10514], "characters": "\u2912"}, - "↑": {"codepoints": [8593], "characters": "\u2191"}, - "↑": {"codepoints": [8593], "characters": "\u2191"}, - "⇑": {"codepoints": [8657], "characters": "\u21D1"}, - "⇅": {"codepoints": [8645], "characters": "\u21C5"}, - "↕": {"codepoints": [8597], "characters": "\u2195"}, - "↕": {"codepoints": [8597], "characters": "\u2195"}, - "⇕": {"codepoints": [8661], "characters": "\u21D5"}, - "⥮": {"codepoints": [10606], "characters": "\u296E"}, - "↿": {"codepoints": [8639], "characters": "\u21BF"}, - "↾": {"codepoints": [8638], "characters": "\u21BE"}, - "⊎": {"codepoints": [8846], "characters": "\u228E"}, - "↖": {"codepoints": [8598], "characters": "\u2196"}, - "↗": {"codepoints": [8599], "characters": "\u2197"}, - "υ": {"codepoints": [965], "characters": "\u03C5"}, - "ϒ": {"codepoints": [978], "characters": "\u03D2"}, - "ϒ": {"codepoints": [978], "characters": "\u03D2"}, - "Υ": {"codepoints": [933], "characters": "\u03A5"}, - "υ": {"codepoints": [965], "characters": "\u03C5"}, - "↥": {"codepoints": [8613], "characters": "\u21A5"}, - "⊥": {"codepoints": [8869], "characters": "\u22A5"}, - "⇈": {"codepoints": [8648], "characters": "\u21C8"}, - "⌝": {"codepoints": [8989], "characters": "\u231D"}, - "⌝": {"codepoints": [8989], "characters": "\u231D"}, - "⌎": {"codepoints": [8974], "characters": "\u230E"}, - "Ů": {"codepoints": [366], "characters": "\u016E"}, - "ů": {"codepoints": [367], "characters": "\u016F"}, - "◹": {"codepoints": [9721], "characters": "\u25F9"}, - "𝒰": {"codepoints": [119984], "characters": "\uD835\uDCB0"}, - "𝓊": {"codepoints": [120010], "characters": "\uD835\uDCCA"}, - "⋰": {"codepoints": [8944], "characters": "\u22F0"}, - "Ũ": {"codepoints": [360], "characters": "\u0168"}, - "ũ": {"codepoints": [361], "characters": "\u0169"}, - "▵": {"codepoints": [9653], "characters": "\u25B5"}, - "▴": {"codepoints": [9652], "characters": "\u25B4"}, - "⇈": {"codepoints": [8648], "characters": "\u21C8"}, - "Ü": {"codepoints": [220], "characters": "\u00DC"}, - "Ü": {"codepoints": [220], "characters": "\u00DC"}, - "ü": {"codepoints": [252], "characters": "\u00FC"}, - "ü": {"codepoints": [252], "characters": "\u00FC"}, - "⦧": {"codepoints": [10663], "characters": "\u29A7"}, - "⦜": {"codepoints": [10652], "characters": "\u299C"}, - "ϵ": {"codepoints": [1013], "characters": "\u03F5"}, - "ϰ": {"codepoints": [1008], "characters": "\u03F0"}, - "∅": {"codepoints": [8709], "characters": "\u2205"}, - "ϕ": {"codepoints": [981], "characters": "\u03D5"}, - "ϖ": {"codepoints": [982], "characters": "\u03D6"}, - "∝": {"codepoints": [8733], "characters": "\u221D"}, - "↕": {"codepoints": [8597], "characters": "\u2195"}, - "⇕": {"codepoints": [8661], "characters": "\u21D5"}, - "ϱ": {"codepoints": [1009], "characters": "\u03F1"}, - "ς": {"codepoints": [962], "characters": "\u03C2"}, - "⊊︀": {"codepoints": [8842, 65024], "characters": "\u228A\uFE00"}, - "⫋︀": {"codepoints": [10955, 65024], "characters": "\u2ACB\uFE00"}, - "⊋︀": {"codepoints": [8843, 65024], "characters": "\u228B\uFE00"}, - "⫌︀": {"codepoints": [10956, 65024], "characters": "\u2ACC\uFE00"}, - "ϑ": {"codepoints": [977], "characters": "\u03D1"}, - "⊲": {"codepoints": [8882], "characters": "\u22B2"}, - "⊳": {"codepoints": [8883], "characters": "\u22B3"}, - "⫨": {"codepoints": [10984], "characters": "\u2AE8"}, - "⫫": {"codepoints": [10987], "characters": "\u2AEB"}, - "⫩": {"codepoints": [10985], "characters": "\u2AE9"}, - "В": {"codepoints": [1042], "characters": "\u0412"}, - "в": {"codepoints": [1074], "characters": "\u0432"}, - "⊢": {"codepoints": [8866], "characters": "\u22A2"}, - "⊨": {"codepoints": [8872], "characters": "\u22A8"}, - "⊩": {"codepoints": [8873], "characters": "\u22A9"}, - "⊫": {"codepoints": [8875], "characters": "\u22AB"}, - "⫦": {"codepoints": [10982], "characters": "\u2AE6"}, - "⊻": {"codepoints": [8891], "characters": "\u22BB"}, - "∨": {"codepoints": [8744], "characters": "\u2228"}, - "⋁": {"codepoints": [8897], "characters": "\u22C1"}, - "≚": {"codepoints": [8794], "characters": "\u225A"}, - "⋮": {"codepoints": [8942], "characters": "\u22EE"}, - "|": {"codepoints": [124], "characters": "\u007C"}, - "‖": {"codepoints": [8214], "characters": "\u2016"}, - "|": {"codepoints": [124], "characters": "\u007C"}, - "‖": {"codepoints": [8214], "characters": "\u2016"}, - "∣": {"codepoints": [8739], "characters": "\u2223"}, - "|": {"codepoints": [124], "characters": "\u007C"}, - "❘": {"codepoints": [10072], "characters": "\u2758"}, - "≀": {"codepoints": [8768], "characters": "\u2240"}, - " ": {"codepoints": [8202], "characters": "\u200A"}, - "𝔙": {"codepoints": [120089], "characters": "\uD835\uDD19"}, - "𝔳": {"codepoints": [120115], "characters": "\uD835\uDD33"}, - "⊲": {"codepoints": [8882], "characters": "\u22B2"}, - "⊂⃒": {"codepoints": [8834, 8402], "characters": "\u2282\u20D2"}, - "⊃⃒": {"codepoints": [8835, 8402], "characters": "\u2283\u20D2"}, - "𝕍": {"codepoints": [120141], "characters": "\uD835\uDD4D"}, - "𝕧": {"codepoints": [120167], "characters": "\uD835\uDD67"}, - "∝": {"codepoints": [8733], "characters": "\u221D"}, - "⊳": {"codepoints": [8883], "characters": "\u22B3"}, - "𝒱": {"codepoints": [119985], "characters": "\uD835\uDCB1"}, - "𝓋": {"codepoints": [120011], "characters": "\uD835\uDCCB"}, - "⫋︀": {"codepoints": [10955, 65024], "characters": "\u2ACB\uFE00"}, - "⊊︀": {"codepoints": [8842, 65024], "characters": "\u228A\uFE00"}, - "⫌︀": {"codepoints": [10956, 65024], "characters": "\u2ACC\uFE00"}, - "⊋︀": {"codepoints": [8843, 65024], "characters": "\u228B\uFE00"}, - "⊪": {"codepoints": [8874], "characters": "\u22AA"}, - "⦚": {"codepoints": [10650], "characters": "\u299A"}, - "Ŵ": {"codepoints": [372], "characters": "\u0174"}, - "ŵ": {"codepoints": [373], "characters": "\u0175"}, - "⩟": {"codepoints": [10847], "characters": "\u2A5F"}, - "∧": {"codepoints": [8743], "characters": "\u2227"}, - "⋀": {"codepoints": [8896], "characters": "\u22C0"}, - "≙": {"codepoints": [8793], "characters": "\u2259"}, - "℘": {"codepoints": [8472], "characters": "\u2118"}, - "𝔚": {"codepoints": [120090], "characters": "\uD835\uDD1A"}, - "𝔴": {"codepoints": [120116], "characters": "\uD835\uDD34"}, - "𝕎": {"codepoints": [120142], "characters": "\uD835\uDD4E"}, - "𝕨": {"codepoints": [120168], "characters": "\uD835\uDD68"}, - "℘": {"codepoints": [8472], "characters": "\u2118"}, - "≀": {"codepoints": [8768], "characters": "\u2240"}, - "≀": {"codepoints": [8768], "characters": "\u2240"}, - "𝒲": {"codepoints": [119986], "characters": "\uD835\uDCB2"}, - "𝓌": {"codepoints": [120012], "characters": "\uD835\uDCCC"}, - "⋂": {"codepoints": [8898], "characters": "\u22C2"}, - "◯": {"codepoints": [9711], "characters": "\u25EF"}, - "⋃": {"codepoints": [8899], "characters": "\u22C3"}, - "▽": {"codepoints": [9661], "characters": "\u25BD"}, - "𝔛": {"codepoints": [120091], "characters": "\uD835\uDD1B"}, - "𝔵": {"codepoints": [120117], "characters": "\uD835\uDD35"}, - "⟷": {"codepoints": [10231], "characters": "\u27F7"}, - "⟺": {"codepoints": [10234], "characters": "\u27FA"}, - "Ξ": {"codepoints": [926], "characters": "\u039E"}, - "ξ": {"codepoints": [958], "characters": "\u03BE"}, - "⟵": {"codepoints": [10229], "characters": "\u27F5"}, - "⟸": {"codepoints": [10232], "characters": "\u27F8"}, - "⟼": {"codepoints": [10236], "characters": "\u27FC"}, - "⋻": {"codepoints": [8955], "characters": "\u22FB"}, - "⨀": {"codepoints": [10752], "characters": "\u2A00"}, - "𝕏": {"codepoints": [120143], "characters": "\uD835\uDD4F"}, - "𝕩": {"codepoints": [120169], "characters": "\uD835\uDD69"}, - "⨁": {"codepoints": [10753], "characters": "\u2A01"}, - "⨂": {"codepoints": [10754], "characters": "\u2A02"}, - "⟶": {"codepoints": [10230], "characters": "\u27F6"}, - "⟹": {"codepoints": [10233], "characters": "\u27F9"}, - "𝒳": {"codepoints": [119987], "characters": "\uD835\uDCB3"}, - "𝓍": {"codepoints": [120013], "characters": "\uD835\uDCCD"}, - "⨆": {"codepoints": [10758], "characters": "\u2A06"}, - "⨄": {"codepoints": [10756], "characters": "\u2A04"}, - "△": {"codepoints": [9651], "characters": "\u25B3"}, - "⋁": {"codepoints": [8897], "characters": "\u22C1"}, - "⋀": {"codepoints": [8896], "characters": "\u22C0"}, - "Ý": {"codepoints": [221], "characters": "\u00DD"}, - "Ý": {"codepoints": [221], "characters": "\u00DD"}, - "ý": {"codepoints": [253], "characters": "\u00FD"}, - "ý": {"codepoints": [253], "characters": "\u00FD"}, - "Я": {"codepoints": [1071], "characters": "\u042F"}, - "я": {"codepoints": [1103], "characters": "\u044F"}, - "Ŷ": {"codepoints": [374], "characters": "\u0176"}, - "ŷ": {"codepoints": [375], "characters": "\u0177"}, - "Ы": {"codepoints": [1067], "characters": "\u042B"}, - "ы": {"codepoints": [1099], "characters": "\u044B"}, - "¥": {"codepoints": [165], "characters": "\u00A5"}, - "¥": {"codepoints": [165], "characters": "\u00A5"}, - "𝔜": {"codepoints": [120092], "characters": "\uD835\uDD1C"}, - "𝔶": {"codepoints": [120118], "characters": "\uD835\uDD36"}, - "Ї": {"codepoints": [1031], "characters": "\u0407"}, - "ї": {"codepoints": [1111], "characters": "\u0457"}, - "𝕐": {"codepoints": [120144], "characters": "\uD835\uDD50"}, - "𝕪": {"codepoints": [120170], "characters": "\uD835\uDD6A"}, - "𝒴": {"codepoints": [119988], "characters": "\uD835\uDCB4"}, - "𝓎": {"codepoints": [120014], "characters": "\uD835\uDCCE"}, - "Ю": {"codepoints": [1070], "characters": "\u042E"}, - "ю": {"codepoints": [1102], "characters": "\u044E"}, - "ÿ": {"codepoints": [255], "characters": "\u00FF"}, - "ÿ": {"codepoints": [255], "characters": "\u00FF"}, - "Ÿ": {"codepoints": [376], "characters": "\u0178"}, - "Ź": {"codepoints": [377], "characters": "\u0179"}, - "ź": {"codepoints": [378], "characters": "\u017A"}, - "Ž": {"codepoints": [381], "characters": "\u017D"}, - "ž": {"codepoints": [382], "characters": "\u017E"}, - "З": {"codepoints": [1047], "characters": "\u0417"}, - "з": {"codepoints": [1079], "characters": "\u0437"}, - "Ż": {"codepoints": [379], "characters": "\u017B"}, - "ż": {"codepoints": [380], "characters": "\u017C"}, - "ℨ": {"codepoints": [8488], "characters": "\u2128"}, - "​": {"codepoints": [8203], "characters": "\u200B"}, - "Ζ": {"codepoints": [918], "characters": "\u0396"}, - "ζ": {"codepoints": [950], "characters": "\u03B6"}, - "𝔷": {"codepoints": [120119], "characters": "\uD835\uDD37"}, - "ℨ": {"codepoints": [8488], "characters": "\u2128"}, - "Ж": {"codepoints": [1046], "characters": "\u0416"}, - "ж": {"codepoints": [1078], "characters": "\u0436"}, - "⇝": {"codepoints": [8669], "characters": "\u21DD"}, - "𝕫": {"codepoints": [120171], "characters": "\uD835\uDD6B"}, - "ℤ": {"codepoints": [8484], "characters": "\u2124"}, - "𝒵": {"codepoints": [119989], "characters": "\uD835\uDCB5"}, - "𝓏": {"codepoints": [120015], "characters": "\uD835\uDCCF"}, - "‍": {"codepoints": [8205], "characters": "\u200D"}, - "‌": {"codepoints": [8204], "characters": "\u200C"} + 'Á': { codepoints: [193], characters: '\u00C1' }, + 'Á': { codepoints: [193], characters: '\u00C1' }, + 'á': { codepoints: [225], characters: '\u00E1' }, + 'á': { codepoints: [225], characters: '\u00E1' }, + 'Ă': { codepoints: [258], characters: '\u0102' }, + 'ă': { codepoints: [259], characters: '\u0103' }, + '∾': { codepoints: [8766], characters: '\u223E' }, + '∿': { codepoints: [8767], characters: '\u223F' }, + '∾̳': { codepoints: [8766, 819], characters: '\u223E\u0333' }, + 'Â': { codepoints: [194], characters: '\u00C2' }, + 'Â': { codepoints: [194], characters: '\u00C2' }, + 'â': { codepoints: [226], characters: '\u00E2' }, + 'â': { codepoints: [226], characters: '\u00E2' }, + '´': { codepoints: [180], characters: '\u00B4' }, + '´': { codepoints: [180], characters: '\u00B4' }, + 'А': { codepoints: [1040], characters: '\u0410' }, + 'а': { codepoints: [1072], characters: '\u0430' }, + 'Æ': { codepoints: [198], characters: '\u00C6' }, + 'Æ': { codepoints: [198], characters: '\u00C6' }, + 'æ': { codepoints: [230], characters: '\u00E6' }, + 'æ': { codepoints: [230], characters: '\u00E6' }, + '⁡': { codepoints: [8289], characters: '\u2061' }, + '𝔄': { codepoints: [120068], characters: '\uD835\uDD04' }, + '𝔞': { codepoints: [120094], characters: '\uD835\uDD1E' }, + 'À': { codepoints: [192], characters: '\u00C0' }, + 'À': { codepoints: [192], characters: '\u00C0' }, + 'à': { codepoints: [224], characters: '\u00E0' }, + 'à': { codepoints: [224], characters: '\u00E0' }, + 'ℵ': { codepoints: [8501], characters: '\u2135' }, + 'ℵ': { codepoints: [8501], characters: '\u2135' }, + 'Α': { codepoints: [913], characters: '\u0391' }, + 'α': { codepoints: [945], characters: '\u03B1' }, + 'Ā': { codepoints: [256], characters: '\u0100' }, + 'ā': { codepoints: [257], characters: '\u0101' }, + '⨿': { codepoints: [10815], characters: '\u2A3F' }, + '&': { codepoints: [38], characters: '\u0026' }, + '&': { codepoints: [38], characters: '\u0026' }, + '&': { codepoints: [38], characters: '\u0026' }, + '&': { codepoints: [38], characters: '\u0026' }, + '⩕': { codepoints: [10837], characters: '\u2A55' }, + '⩓': { codepoints: [10835], characters: '\u2A53' }, + '∧': { codepoints: [8743], characters: '\u2227' }, + '⩜': { codepoints: [10844], characters: '\u2A5C' }, + '⩘': { codepoints: [10840], characters: '\u2A58' }, + '⩚': { codepoints: [10842], characters: '\u2A5A' }, + '∠': { codepoints: [8736], characters: '\u2220' }, + '⦤': { codepoints: [10660], characters: '\u29A4' }, + '∠': { codepoints: [8736], characters: '\u2220' }, + '⦨': { codepoints: [10664], characters: '\u29A8' }, + '⦩': { codepoints: [10665], characters: '\u29A9' }, + '⦪': { codepoints: [10666], characters: '\u29AA' }, + '⦫': { codepoints: [10667], characters: '\u29AB' }, + '⦬': { codepoints: [10668], characters: '\u29AC' }, + '⦭': { codepoints: [10669], characters: '\u29AD' }, + '⦮': { codepoints: [10670], characters: '\u29AE' }, + '⦯': { codepoints: [10671], characters: '\u29AF' }, + '∡': { codepoints: [8737], characters: '\u2221' }, + '∟': { codepoints: [8735], characters: '\u221F' }, + '⊾': { codepoints: [8894], characters: '\u22BE' }, + '⦝': { codepoints: [10653], characters: '\u299D' }, + '∢': { codepoints: [8738], characters: '\u2222' }, + 'Å': { codepoints: [197], characters: '\u00C5' }, + '⍼': { codepoints: [9084], characters: '\u237C' }, + 'Ą': { codepoints: [260], characters: '\u0104' }, + 'ą': { codepoints: [261], characters: '\u0105' }, + '𝔸': { codepoints: [120120], characters: '\uD835\uDD38' }, + '𝕒': { codepoints: [120146], characters: '\uD835\uDD52' }, + '⩯': { codepoints: [10863], characters: '\u2A6F' }, + '≈': { codepoints: [8776], characters: '\u2248' }, + '⩰': { codepoints: [10864], characters: '\u2A70' }, + '≊': { codepoints: [8778], characters: '\u224A' }, + '≋': { codepoints: [8779], characters: '\u224B' }, + ''': { codepoints: [39], characters: '\u0027' }, + '⁡': { codepoints: [8289], characters: '\u2061' }, + '≈': { codepoints: [8776], characters: '\u2248' }, + '≊': { codepoints: [8778], characters: '\u224A' }, + 'Å': { codepoints: [197], characters: '\u00C5' }, + 'Å': { codepoints: [197], characters: '\u00C5' }, + 'å': { codepoints: [229], characters: '\u00E5' }, + 'å': { codepoints: [229], characters: '\u00E5' }, + '𝒜': { codepoints: [119964], characters: '\uD835\uDC9C' }, + '𝒶': { codepoints: [119990], characters: '\uD835\uDCB6' }, + '≔': { codepoints: [8788], characters: '\u2254' }, + '*': { codepoints: [42], characters: '\u002A' }, + '≈': { codepoints: [8776], characters: '\u2248' }, + '≍': { codepoints: [8781], characters: '\u224D' }, + 'Ã': { codepoints: [195], characters: '\u00C3' }, + 'Ã': { codepoints: [195], characters: '\u00C3' }, + 'ã': { codepoints: [227], characters: '\u00E3' }, + 'ã': { codepoints: [227], characters: '\u00E3' }, + 'Ä': { codepoints: [196], characters: '\u00C4' }, + 'Ä': { codepoints: [196], characters: '\u00C4' }, + 'ä': { codepoints: [228], characters: '\u00E4' }, + 'ä': { codepoints: [228], characters: '\u00E4' }, + '∳': { codepoints: [8755], characters: '\u2233' }, + '⨑': { codepoints: [10769], characters: '\u2A11' }, + '≌': { codepoints: [8780], characters: '\u224C' }, + '϶': { codepoints: [1014], characters: '\u03F6' }, + '‵': { codepoints: [8245], characters: '\u2035' }, + '∽': { codepoints: [8765], characters: '\u223D' }, + '⋍': { codepoints: [8909], characters: '\u22CD' }, + '∖': { codepoints: [8726], characters: '\u2216' }, + '⫧': { codepoints: [10983], characters: '\u2AE7' }, + '⊽': { codepoints: [8893], characters: '\u22BD' }, + '⌅': { codepoints: [8965], characters: '\u2305' }, + '⌆': { codepoints: [8966], characters: '\u2306' }, + '⌅': { codepoints: [8965], characters: '\u2305' }, + '⎵': { codepoints: [9141], characters: '\u23B5' }, + '⎶': { codepoints: [9142], characters: '\u23B6' }, + '≌': { codepoints: [8780], characters: '\u224C' }, + 'Б': { codepoints: [1041], characters: '\u0411' }, + 'б': { codepoints: [1073], characters: '\u0431' }, + '„': { codepoints: [8222], characters: '\u201E' }, + '∵': { codepoints: [8757], characters: '\u2235' }, + '∵': { codepoints: [8757], characters: '\u2235' }, + '∵': { codepoints: [8757], characters: '\u2235' }, + '⦰': { codepoints: [10672], characters: '\u29B0' }, + '϶': { codepoints: [1014], characters: '\u03F6' }, + 'ℬ': { codepoints: [8492], characters: '\u212C' }, + 'ℬ': { codepoints: [8492], characters: '\u212C' }, + 'Β': { codepoints: [914], characters: '\u0392' }, + 'β': { codepoints: [946], characters: '\u03B2' }, + 'ℶ': { codepoints: [8502], characters: '\u2136' }, + '≬': { codepoints: [8812], characters: '\u226C' }, + '𝔅': { codepoints: [120069], characters: '\uD835\uDD05' }, + '𝔟': { codepoints: [120095], characters: '\uD835\uDD1F' }, + '⋂': { codepoints: [8898], characters: '\u22C2' }, + '◯': { codepoints: [9711], characters: '\u25EF' }, + '⋃': { codepoints: [8899], characters: '\u22C3' }, + '⨀': { codepoints: [10752], characters: '\u2A00' }, + '⨁': { codepoints: [10753], characters: '\u2A01' }, + '⨂': { codepoints: [10754], characters: '\u2A02' }, + '⨆': { codepoints: [10758], characters: '\u2A06' }, + '★': { codepoints: [9733], characters: '\u2605' }, + '▽': { codepoints: [9661], characters: '\u25BD' }, + '△': { codepoints: [9651], characters: '\u25B3' }, + '⨄': { codepoints: [10756], characters: '\u2A04' }, + '⋁': { codepoints: [8897], characters: '\u22C1' }, + '⋀': { codepoints: [8896], characters: '\u22C0' }, + '⤍': { codepoints: [10509], characters: '\u290D' }, + '⧫': { codepoints: [10731], characters: '\u29EB' }, + '▪': { codepoints: [9642], characters: '\u25AA' }, + '▴': { codepoints: [9652], characters: '\u25B4' }, + '▾': { codepoints: [9662], characters: '\u25BE' }, + '◂': { codepoints: [9666], characters: '\u25C2' }, + '▸': { codepoints: [9656], characters: '\u25B8' }, + '␣': { codepoints: [9251], characters: '\u2423' }, + '▒': { codepoints: [9618], characters: '\u2592' }, + '░': { codepoints: [9617], characters: '\u2591' }, + '▓': { codepoints: [9619], characters: '\u2593' }, + '█': { codepoints: [9608], characters: '\u2588' }, + '=⃥': { codepoints: [61, 8421], characters: '\u003D\u20E5' }, + '≡⃥': { codepoints: [8801, 8421], characters: '\u2261\u20E5' }, + '⫭': { codepoints: [10989], characters: '\u2AED' }, + '⌐': { codepoints: [8976], characters: '\u2310' }, + '𝔹': { codepoints: [120121], characters: '\uD835\uDD39' }, + '𝕓': { codepoints: [120147], characters: '\uD835\uDD53' }, + '⊥': { codepoints: [8869], characters: '\u22A5' }, + '⊥': { codepoints: [8869], characters: '\u22A5' }, + '⋈': { codepoints: [8904], characters: '\u22C8' }, + '⧉': { codepoints: [10697], characters: '\u29C9' }, + '┐': { codepoints: [9488], characters: '\u2510' }, + '╕': { codepoints: [9557], characters: '\u2555' }, + '╖': { codepoints: [9558], characters: '\u2556' }, + '╗': { codepoints: [9559], characters: '\u2557' }, + '┌': { codepoints: [9484], characters: '\u250C' }, + '╒': { codepoints: [9554], characters: '\u2552' }, + '╓': { codepoints: [9555], characters: '\u2553' }, + '╔': { codepoints: [9556], characters: '\u2554' }, + '─': { codepoints: [9472], characters: '\u2500' }, + '═': { codepoints: [9552], characters: '\u2550' }, + '┬': { codepoints: [9516], characters: '\u252C' }, + '╤': { codepoints: [9572], characters: '\u2564' }, + '╥': { codepoints: [9573], characters: '\u2565' }, + '╦': { codepoints: [9574], characters: '\u2566' }, + '┴': { codepoints: [9524], characters: '\u2534' }, + '╧': { codepoints: [9575], characters: '\u2567' }, + '╨': { codepoints: [9576], characters: '\u2568' }, + '╩': { codepoints: [9577], characters: '\u2569' }, + '⊟': { codepoints: [8863], characters: '\u229F' }, + '⊞': { codepoints: [8862], characters: '\u229E' }, + '⊠': { codepoints: [8864], characters: '\u22A0' }, + '┘': { codepoints: [9496], characters: '\u2518' }, + '╛': { codepoints: [9563], characters: '\u255B' }, + '╜': { codepoints: [9564], characters: '\u255C' }, + '╝': { codepoints: [9565], characters: '\u255D' }, + '└': { codepoints: [9492], characters: '\u2514' }, + '╘': { codepoints: [9560], characters: '\u2558' }, + '╙': { codepoints: [9561], characters: '\u2559' }, + '╚': { codepoints: [9562], characters: '\u255A' }, + '│': { codepoints: [9474], characters: '\u2502' }, + '║': { codepoints: [9553], characters: '\u2551' }, + '┼': { codepoints: [9532], characters: '\u253C' }, + '╪': { codepoints: [9578], characters: '\u256A' }, + '╫': { codepoints: [9579], characters: '\u256B' }, + '╬': { codepoints: [9580], characters: '\u256C' }, + '┤': { codepoints: [9508], characters: '\u2524' }, + '╡': { codepoints: [9569], characters: '\u2561' }, + '╢': { codepoints: [9570], characters: '\u2562' }, + '╣': { codepoints: [9571], characters: '\u2563' }, + '├': { codepoints: [9500], characters: '\u251C' }, + '╞': { codepoints: [9566], characters: '\u255E' }, + '╟': { codepoints: [9567], characters: '\u255F' }, + '╠': { codepoints: [9568], characters: '\u2560' }, + '‵': { codepoints: [8245], characters: '\u2035' }, + '˘': { codepoints: [728], characters: '\u02D8' }, + '˘': { codepoints: [728], characters: '\u02D8' }, + '¦': { codepoints: [166], characters: '\u00A6' }, + '¦': { codepoints: [166], characters: '\u00A6' }, + '𝒷': { codepoints: [119991], characters: '\uD835\uDCB7' }, + 'ℬ': { codepoints: [8492], characters: '\u212C' }, + '⁏': { codepoints: [8271], characters: '\u204F' }, + '∽': { codepoints: [8765], characters: '\u223D' }, + '⋍': { codepoints: [8909], characters: '\u22CD' }, + '⧅': { codepoints: [10693], characters: '\u29C5' }, + '\': { codepoints: [92], characters: '\u005C' }, + '⟈': { codepoints: [10184], characters: '\u27C8' }, + '•': { codepoints: [8226], characters: '\u2022' }, + '•': { codepoints: [8226], characters: '\u2022' }, + '≎': { codepoints: [8782], characters: '\u224E' }, + '⪮': { codepoints: [10926], characters: '\u2AAE' }, + '≏': { codepoints: [8783], characters: '\u224F' }, + '≎': { codepoints: [8782], characters: '\u224E' }, + '≏': { codepoints: [8783], characters: '\u224F' }, + 'Ć': { codepoints: [262], characters: '\u0106' }, + 'ć': { codepoints: [263], characters: '\u0107' }, + '⩄': { codepoints: [10820], characters: '\u2A44' }, + '⩉': { codepoints: [10825], characters: '\u2A49' }, + '⩋': { codepoints: [10827], characters: '\u2A4B' }, + '∩': { codepoints: [8745], characters: '\u2229' }, + '⋒': { codepoints: [8914], characters: '\u22D2' }, + '⩇': { codepoints: [10823], characters: '\u2A47' }, + '⩀': { codepoints: [10816], characters: '\u2A40' }, + 'ⅅ': { codepoints: [8517], characters: '\u2145' }, + '∩︀': { codepoints: [8745, 65024], characters: '\u2229\uFE00' }, + '⁁': { codepoints: [8257], characters: '\u2041' }, + 'ˇ': { codepoints: [711], characters: '\u02C7' }, + 'ℭ': { codepoints: [8493], characters: '\u212D' }, + '⩍': { codepoints: [10829], characters: '\u2A4D' }, + 'Č': { codepoints: [268], characters: '\u010C' }, + 'č': { codepoints: [269], characters: '\u010D' }, + 'Ç': { codepoints: [199], characters: '\u00C7' }, + 'Ç': { codepoints: [199], characters: '\u00C7' }, + 'ç': { codepoints: [231], characters: '\u00E7' }, + 'ç': { codepoints: [231], characters: '\u00E7' }, + 'Ĉ': { codepoints: [264], characters: '\u0108' }, + 'ĉ': { codepoints: [265], characters: '\u0109' }, + '∰': { codepoints: [8752], characters: '\u2230' }, + '⩌': { codepoints: [10828], characters: '\u2A4C' }, + '⩐': { codepoints: [10832], characters: '\u2A50' }, + 'Ċ': { codepoints: [266], characters: '\u010A' }, + 'ċ': { codepoints: [267], characters: '\u010B' }, + '¸': { codepoints: [184], characters: '\u00B8' }, + '¸': { codepoints: [184], characters: '\u00B8' }, + '¸': { codepoints: [184], characters: '\u00B8' }, + '⦲': { codepoints: [10674], characters: '\u29B2' }, + '¢': { codepoints: [162], characters: '\u00A2' }, + '¢': { codepoints: [162], characters: '\u00A2' }, + '·': { codepoints: [183], characters: '\u00B7' }, + '·': { codepoints: [183], characters: '\u00B7' }, + '𝔠': { codepoints: [120096], characters: '\uD835\uDD20' }, + 'ℭ': { codepoints: [8493], characters: '\u212D' }, + 'Ч': { codepoints: [1063], characters: '\u0427' }, + 'ч': { codepoints: [1095], characters: '\u0447' }, + '✓': { codepoints: [10003], characters: '\u2713' }, + '✓': { codepoints: [10003], characters: '\u2713' }, + 'Χ': { codepoints: [935], characters: '\u03A7' }, + 'χ': { codepoints: [967], characters: '\u03C7' }, + 'ˆ': { codepoints: [710], characters: '\u02C6' }, + '≗': { codepoints: [8791], characters: '\u2257' }, + '↺': { codepoints: [8634], characters: '\u21BA' }, + '↻': { codepoints: [8635], characters: '\u21BB' }, + '⊛': { codepoints: [8859], characters: '\u229B' }, + '⊚': { codepoints: [8858], characters: '\u229A' }, + '⊝': { codepoints: [8861], characters: '\u229D' }, + '⊙': { codepoints: [8857], characters: '\u2299' }, + '®': { codepoints: [174], characters: '\u00AE' }, + 'Ⓢ': { codepoints: [9416], characters: '\u24C8' }, + '⊖': { codepoints: [8854], characters: '\u2296' }, + '⊕': { codepoints: [8853], characters: '\u2295' }, + '⊗': { codepoints: [8855], characters: '\u2297' }, + '○': { codepoints: [9675], characters: '\u25CB' }, + '⧃': { codepoints: [10691], characters: '\u29C3' }, + '≗': { codepoints: [8791], characters: '\u2257' }, + '⨐': { codepoints: [10768], characters: '\u2A10' }, + '⫯': { codepoints: [10991], characters: '\u2AEF' }, + '⧂': { codepoints: [10690], characters: '\u29C2' }, + '∲': { codepoints: [8754], characters: '\u2232' }, + '”': { codepoints: [8221], characters: '\u201D' }, + '’': { codepoints: [8217], characters: '\u2019' }, + '♣': { codepoints: [9827], characters: '\u2663' }, + '♣': { codepoints: [9827], characters: '\u2663' }, + ':': { codepoints: [58], characters: '\u003A' }, + '∷': { codepoints: [8759], characters: '\u2237' }, + '⩴': { codepoints: [10868], characters: '\u2A74' }, + '≔': { codepoints: [8788], characters: '\u2254' }, + '≔': { codepoints: [8788], characters: '\u2254' }, + ',': { codepoints: [44], characters: '\u002C' }, + '@': { codepoints: [64], characters: '\u0040' }, + '∁': { codepoints: [8705], characters: '\u2201' }, + '∘': { codepoints: [8728], characters: '\u2218' }, + '∁': { codepoints: [8705], characters: '\u2201' }, + 'ℂ': { codepoints: [8450], characters: '\u2102' }, + '≅': { codepoints: [8773], characters: '\u2245' }, + '⩭': { codepoints: [10861], characters: '\u2A6D' }, + '≡': { codepoints: [8801], characters: '\u2261' }, + '∮': { codepoints: [8750], characters: '\u222E' }, + '∯': { codepoints: [8751], characters: '\u222F' }, + '∮': { codepoints: [8750], characters: '\u222E' }, + '𝕔': { codepoints: [120148], characters: '\uD835\uDD54' }, + 'ℂ': { codepoints: [8450], characters: '\u2102' }, + '∐': { codepoints: [8720], characters: '\u2210' }, + '∐': { codepoints: [8720], characters: '\u2210' }, + '©': { codepoints: [169], characters: '\u00A9' }, + '©': { codepoints: [169], characters: '\u00A9' }, + '©': { codepoints: [169], characters: '\u00A9' }, + '©': { codepoints: [169], characters: '\u00A9' }, + '℗': { codepoints: [8471], characters: '\u2117' }, + '∳': { codepoints: [8755], characters: '\u2233' }, + '↵': { codepoints: [8629], characters: '\u21B5' }, + '✗': { codepoints: [10007], characters: '\u2717' }, + '⨯': { codepoints: [10799], characters: '\u2A2F' }, + '𝒞': { codepoints: [119966], characters: '\uD835\uDC9E' }, + '𝒸': { codepoints: [119992], characters: '\uD835\uDCB8' }, + '⫏': { codepoints: [10959], characters: '\u2ACF' }, + '⫑': { codepoints: [10961], characters: '\u2AD1' }, + '⫐': { codepoints: [10960], characters: '\u2AD0' }, + '⫒': { codepoints: [10962], characters: '\u2AD2' }, + '⋯': { codepoints: [8943], characters: '\u22EF' }, + '⤸': { codepoints: [10552], characters: '\u2938' }, + '⤵': { codepoints: [10549], characters: '\u2935' }, + '⋞': { codepoints: [8926], characters: '\u22DE' }, + '⋟': { codepoints: [8927], characters: '\u22DF' }, + '↶': { codepoints: [8630], characters: '\u21B6' }, + '⤽': { codepoints: [10557], characters: '\u293D' }, + '⩈': { codepoints: [10824], characters: '\u2A48' }, + '⩆': { codepoints: [10822], characters: '\u2A46' }, + '≍': { codepoints: [8781], characters: '\u224D' }, + '∪': { codepoints: [8746], characters: '\u222A' }, + '⋓': { codepoints: [8915], characters: '\u22D3' }, + '⩊': { codepoints: [10826], characters: '\u2A4A' }, + '⊍': { codepoints: [8845], characters: '\u228D' }, + '⩅': { codepoints: [10821], characters: '\u2A45' }, + '∪︀': { codepoints: [8746, 65024], characters: '\u222A\uFE00' }, + '↷': { codepoints: [8631], characters: '\u21B7' }, + '⤼': { codepoints: [10556], characters: '\u293C' }, + '⋞': { codepoints: [8926], characters: '\u22DE' }, + '⋟': { codepoints: [8927], characters: '\u22DF' }, + '⋎': { codepoints: [8910], characters: '\u22CE' }, + '⋏': { codepoints: [8911], characters: '\u22CF' }, + '¤': { codepoints: [164], characters: '\u00A4' }, + '¤': { codepoints: [164], characters: '\u00A4' }, + '↶': { codepoints: [8630], characters: '\u21B6' }, + '↷': { codepoints: [8631], characters: '\u21B7' }, + '⋎': { codepoints: [8910], characters: '\u22CE' }, + '⋏': { codepoints: [8911], characters: '\u22CF' }, + '∲': { codepoints: [8754], characters: '\u2232' }, + '∱': { codepoints: [8753], characters: '\u2231' }, + '⌭': { codepoints: [9005], characters: '\u232D' }, + '†': { codepoints: [8224], characters: '\u2020' }, + '‡': { codepoints: [8225], characters: '\u2021' }, + 'ℸ': { codepoints: [8504], characters: '\u2138' }, + '↓': { codepoints: [8595], characters: '\u2193' }, + '↡': { codepoints: [8609], characters: '\u21A1' }, + '⇓': { codepoints: [8659], characters: '\u21D3' }, + '‐': { codepoints: [8208], characters: '\u2010' }, + '⫤': { codepoints: [10980], characters: '\u2AE4' }, + '⊣': { codepoints: [8867], characters: '\u22A3' }, + '⤏': { codepoints: [10511], characters: '\u290F' }, + '˝': { codepoints: [733], characters: '\u02DD' }, + 'Ď': { codepoints: [270], characters: '\u010E' }, + 'ď': { codepoints: [271], characters: '\u010F' }, + 'Д': { codepoints: [1044], characters: '\u0414' }, + 'д': { codepoints: [1076], characters: '\u0434' }, + '‡': { codepoints: [8225], characters: '\u2021' }, + '⇊': { codepoints: [8650], characters: '\u21CA' }, + 'ⅅ': { codepoints: [8517], characters: '\u2145' }, + 'ⅆ': { codepoints: [8518], characters: '\u2146' }, + '⤑': { codepoints: [10513], characters: '\u2911' }, + '⩷': { codepoints: [10871], characters: '\u2A77' }, + '°': { codepoints: [176], characters: '\u00B0' }, + '°': { codepoints: [176], characters: '\u00B0' }, + '∇': { codepoints: [8711], characters: '\u2207' }, + 'Δ': { codepoints: [916], characters: '\u0394' }, + 'δ': { codepoints: [948], characters: '\u03B4' }, + '⦱': { codepoints: [10673], characters: '\u29B1' }, + '⥿': { codepoints: [10623], characters: '\u297F' }, + '𝔇': { codepoints: [120071], characters: '\uD835\uDD07' }, + '𝔡': { codepoints: [120097], characters: '\uD835\uDD21' }, + '⥥': { codepoints: [10597], characters: '\u2965' }, + '⇃': { codepoints: [8643], characters: '\u21C3' }, + '⇂': { codepoints: [8642], characters: '\u21C2' }, + '´': { codepoints: [180], characters: '\u00B4' }, + '˙': { codepoints: [729], characters: '\u02D9' }, + '˝': { codepoints: [733], characters: '\u02DD' }, + '`': { codepoints: [96], characters: '\u0060' }, + '˜': { codepoints: [732], characters: '\u02DC' }, + '⋄': { codepoints: [8900], characters: '\u22C4' }, + '⋄': { codepoints: [8900], characters: '\u22C4' }, + '⋄': { codepoints: [8900], characters: '\u22C4' }, + '♦': { codepoints: [9830], characters: '\u2666' }, + '♦': { codepoints: [9830], characters: '\u2666' }, + '¨': { codepoints: [168], characters: '\u00A8' }, + 'ⅆ': { codepoints: [8518], characters: '\u2146' }, + 'ϝ': { codepoints: [989], characters: '\u03DD' }, + '⋲': { codepoints: [8946], characters: '\u22F2' }, + '÷': { codepoints: [247], characters: '\u00F7' }, + '÷': { codepoints: [247], characters: '\u00F7' }, + '÷': { codepoints: [247], characters: '\u00F7' }, + '⋇': { codepoints: [8903], characters: '\u22C7' }, + '⋇': { codepoints: [8903], characters: '\u22C7' }, + 'Ђ': { codepoints: [1026], characters: '\u0402' }, + 'ђ': { codepoints: [1106], characters: '\u0452' }, + '⌞': { codepoints: [8990], characters: '\u231E' }, + '⌍': { codepoints: [8973], characters: '\u230D' }, + '$': { codepoints: [36], characters: '\u0024' }, + '𝔻': { codepoints: [120123], characters: '\uD835\uDD3B' }, + '𝕕': { codepoints: [120149], characters: '\uD835\uDD55' }, + '¨': { codepoints: [168], characters: '\u00A8' }, + '˙': { codepoints: [729], characters: '\u02D9' }, + '⃜': { codepoints: [8412], characters: '\u20DC' }, + '≐': { codepoints: [8784], characters: '\u2250' }, + '≑': { codepoints: [8785], characters: '\u2251' }, + '≐': { codepoints: [8784], characters: '\u2250' }, + '∸': { codepoints: [8760], characters: '\u2238' }, + '∔': { codepoints: [8724], characters: '\u2214' }, + '⊡': { codepoints: [8865], characters: '\u22A1' }, + '⌆': { codepoints: [8966], characters: '\u2306' }, + '∯': { codepoints: [8751], characters: '\u222F' }, + '¨': { codepoints: [168], characters: '\u00A8' }, + '⇓': { codepoints: [8659], characters: '\u21D3' }, + '⇐': { codepoints: [8656], characters: '\u21D0' }, + '⇔': { codepoints: [8660], characters: '\u21D4' }, + '⫤': { codepoints: [10980], characters: '\u2AE4' }, + '⟸': { codepoints: [10232], characters: '\u27F8' }, + '⟺': { codepoints: [10234], characters: '\u27FA' }, + '⟹': { codepoints: [10233], characters: '\u27F9' }, + '⇒': { codepoints: [8658], characters: '\u21D2' }, + '⊨': { codepoints: [8872], characters: '\u22A8' }, + '⇑': { codepoints: [8657], characters: '\u21D1' }, + '⇕': { codepoints: [8661], characters: '\u21D5' }, + '∥': { codepoints: [8741], characters: '\u2225' }, + '⤓': { codepoints: [10515], characters: '\u2913' }, + '↓': { codepoints: [8595], characters: '\u2193' }, + '↓': { codepoints: [8595], characters: '\u2193' }, + '⇓': { codepoints: [8659], characters: '\u21D3' }, + '⇵': { codepoints: [8693], characters: '\u21F5' }, + '̑': { codepoints: [785], characters: '\u0311' }, + '⇊': { codepoints: [8650], characters: '\u21CA' }, + '⇃': { codepoints: [8643], characters: '\u21C3' }, + '⇂': { codepoints: [8642], characters: '\u21C2' }, + '⥐': { codepoints: [10576], characters: '\u2950' }, + '⥞': { codepoints: [10590], characters: '\u295E' }, + '⥖': { codepoints: [10582], characters: '\u2956' }, + '↽': { codepoints: [8637], characters: '\u21BD' }, + '⥟': { codepoints: [10591], characters: '\u295F' }, + '⥗': { codepoints: [10583], characters: '\u2957' }, + '⇁': { codepoints: [8641], characters: '\u21C1' }, + '↧': { codepoints: [8615], characters: '\u21A7' }, + '⊤': { codepoints: [8868], characters: '\u22A4' }, + '⤐': { codepoints: [10512], characters: '\u2910' }, + '⌟': { codepoints: [8991], characters: '\u231F' }, + '⌌': { codepoints: [8972], characters: '\u230C' }, + '𝒟': { codepoints: [119967], characters: '\uD835\uDC9F' }, + '𝒹': { codepoints: [119993], characters: '\uD835\uDCB9' }, + 'Ѕ': { codepoints: [1029], characters: '\u0405' }, + 'ѕ': { codepoints: [1109], characters: '\u0455' }, + '⧶': { codepoints: [10742], characters: '\u29F6' }, + 'Đ': { codepoints: [272], characters: '\u0110' }, + 'đ': { codepoints: [273], characters: '\u0111' }, + '⋱': { codepoints: [8945], characters: '\u22F1' }, + '▿': { codepoints: [9663], characters: '\u25BF' }, + '▾': { codepoints: [9662], characters: '\u25BE' }, + '⇵': { codepoints: [8693], characters: '\u21F5' }, + '⥯': { codepoints: [10607], characters: '\u296F' }, + '⦦': { codepoints: [10662], characters: '\u29A6' }, + 'Џ': { codepoints: [1039], characters: '\u040F' }, + 'џ': { codepoints: [1119], characters: '\u045F' }, + '⟿': { codepoints: [10239], characters: '\u27FF' }, + 'É': { codepoints: [201], characters: '\u00C9' }, + 'É': { codepoints: [201], characters: '\u00C9' }, + 'é': { codepoints: [233], characters: '\u00E9' }, + 'é': { codepoints: [233], characters: '\u00E9' }, + '⩮': { codepoints: [10862], characters: '\u2A6E' }, + 'Ě': { codepoints: [282], characters: '\u011A' }, + 'ě': { codepoints: [283], characters: '\u011B' }, + 'Ê': { codepoints: [202], characters: '\u00CA' }, + 'Ê': { codepoints: [202], characters: '\u00CA' }, + 'ê': { codepoints: [234], characters: '\u00EA' }, + 'ê': { codepoints: [234], characters: '\u00EA' }, + '≖': { codepoints: [8790], characters: '\u2256' }, + '≕': { codepoints: [8789], characters: '\u2255' }, + 'Э': { codepoints: [1069], characters: '\u042D' }, + 'э': { codepoints: [1101], characters: '\u044D' }, + '⩷': { codepoints: [10871], characters: '\u2A77' }, + 'Ė': { codepoints: [278], characters: '\u0116' }, + 'ė': { codepoints: [279], characters: '\u0117' }, + '≑': { codepoints: [8785], characters: '\u2251' }, + 'ⅇ': { codepoints: [8519], characters: '\u2147' }, + '≒': { codepoints: [8786], characters: '\u2252' }, + '𝔈': { codepoints: [120072], characters: '\uD835\uDD08' }, + '𝔢': { codepoints: [120098], characters: '\uD835\uDD22' }, + '⪚': { codepoints: [10906], characters: '\u2A9A' }, + 'È': { codepoints: [200], characters: '\u00C8' }, + 'È': { codepoints: [200], characters: '\u00C8' }, + 'è': { codepoints: [232], characters: '\u00E8' }, + 'è': { codepoints: [232], characters: '\u00E8' }, + '⪖': { codepoints: [10902], characters: '\u2A96' }, + '⪘': { codepoints: [10904], characters: '\u2A98' }, + '⪙': { codepoints: [10905], characters: '\u2A99' }, + '∈': { codepoints: [8712], characters: '\u2208' }, + '⏧': { codepoints: [9191], characters: '\u23E7' }, + 'ℓ': { codepoints: [8467], characters: '\u2113' }, + '⪕': { codepoints: [10901], characters: '\u2A95' }, + '⪗': { codepoints: [10903], characters: '\u2A97' }, + 'Ē': { codepoints: [274], characters: '\u0112' }, + 'ē': { codepoints: [275], characters: '\u0113' }, + '∅': { codepoints: [8709], characters: '\u2205' }, + '∅': { codepoints: [8709], characters: '\u2205' }, + '◻': { codepoints: [9723], characters: '\u25FB' }, + '∅': { codepoints: [8709], characters: '\u2205' }, + '▫': { codepoints: [9643], characters: '\u25AB' }, + ' ': { codepoints: [8196], characters: '\u2004' }, + ' ': { codepoints: [8197], characters: '\u2005' }, + ' ': { codepoints: [8195], characters: '\u2003' }, + 'Ŋ': { codepoints: [330], characters: '\u014A' }, + 'ŋ': { codepoints: [331], characters: '\u014B' }, + ' ': { codepoints: [8194], characters: '\u2002' }, + 'Ę': { codepoints: [280], characters: '\u0118' }, + 'ę': { codepoints: [281], characters: '\u0119' }, + '𝔼': { codepoints: [120124], characters: '\uD835\uDD3C' }, + '𝕖': { codepoints: [120150], characters: '\uD835\uDD56' }, + '⋕': { codepoints: [8917], characters: '\u22D5' }, + '⧣': { codepoints: [10723], characters: '\u29E3' }, + '⩱': { codepoints: [10865], characters: '\u2A71' }, + 'ε': { codepoints: [949], characters: '\u03B5' }, + 'Ε': { codepoints: [917], characters: '\u0395' }, + 'ε': { codepoints: [949], characters: '\u03B5' }, + 'ϵ': { codepoints: [1013], characters: '\u03F5' }, + '≖': { codepoints: [8790], characters: '\u2256' }, + '≕': { codepoints: [8789], characters: '\u2255' }, + '≂': { codepoints: [8770], characters: '\u2242' }, + '⪖': { codepoints: [10902], characters: '\u2A96' }, + '⪕': { codepoints: [10901], characters: '\u2A95' }, + '⩵': { codepoints: [10869], characters: '\u2A75' }, + '=': { codepoints: [61], characters: '\u003D' }, + '≂': { codepoints: [8770], characters: '\u2242' }, + '≟': { codepoints: [8799], characters: '\u225F' }, + '⇌': { codepoints: [8652], characters: '\u21CC' }, + '≡': { codepoints: [8801], characters: '\u2261' }, + '⩸': { codepoints: [10872], characters: '\u2A78' }, + '⧥': { codepoints: [10725], characters: '\u29E5' }, + '⥱': { codepoints: [10609], characters: '\u2971' }, + '≓': { codepoints: [8787], characters: '\u2253' }, + 'ℯ': { codepoints: [8495], characters: '\u212F' }, + 'ℰ': { codepoints: [8496], characters: '\u2130' }, + '≐': { codepoints: [8784], characters: '\u2250' }, + '⩳': { codepoints: [10867], characters: '\u2A73' }, + '≂': { codepoints: [8770], characters: '\u2242' }, + 'Η': { codepoints: [919], characters: '\u0397' }, + 'η': { codepoints: [951], characters: '\u03B7' }, + 'Ð': { codepoints: [208], characters: '\u00D0' }, + 'Ð': { codepoints: [208], characters: '\u00D0' }, + 'ð': { codepoints: [240], characters: '\u00F0' }, + 'ð': { codepoints: [240], characters: '\u00F0' }, + 'Ë': { codepoints: [203], characters: '\u00CB' }, + 'Ë': { codepoints: [203], characters: '\u00CB' }, + 'ë': { codepoints: [235], characters: '\u00EB' }, + 'ë': { codepoints: [235], characters: '\u00EB' }, + '€': { codepoints: [8364], characters: '\u20AC' }, + '!': { codepoints: [33], characters: '\u0021' }, + '∃': { codepoints: [8707], characters: '\u2203' }, + '∃': { codepoints: [8707], characters: '\u2203' }, + 'ℰ': { codepoints: [8496], characters: '\u2130' }, + 'ⅇ': { codepoints: [8519], characters: '\u2147' }, + 'ⅇ': { codepoints: [8519], characters: '\u2147' }, + '≒': { codepoints: [8786], characters: '\u2252' }, + 'Ф': { codepoints: [1060], characters: '\u0424' }, + 'ф': { codepoints: [1092], characters: '\u0444' }, + '♀': { codepoints: [9792], characters: '\u2640' }, + 'ffi': { codepoints: [64259], characters: '\uFB03' }, + 'ff': { codepoints: [64256], characters: '\uFB00' }, + 'ffl': { codepoints: [64260], characters: '\uFB04' }, + '𝔉': { codepoints: [120073], characters: '\uD835\uDD09' }, + '𝔣': { codepoints: [120099], characters: '\uD835\uDD23' }, + 'fi': { codepoints: [64257], characters: '\uFB01' }, + '◼': { codepoints: [9724], characters: '\u25FC' }, + '▪': { codepoints: [9642], characters: '\u25AA' }, + 'fj': { codepoints: [102, 106], characters: '\u0066\u006A' }, + '♭': { codepoints: [9837], characters: '\u266D' }, + 'fl': { codepoints: [64258], characters: '\uFB02' }, + '▱': { codepoints: [9649], characters: '\u25B1' }, + 'ƒ': { codepoints: [402], characters: '\u0192' }, + '𝔽': { codepoints: [120125], characters: '\uD835\uDD3D' }, + '𝕗': { codepoints: [120151], characters: '\uD835\uDD57' }, + '∀': { codepoints: [8704], characters: '\u2200' }, + '∀': { codepoints: [8704], characters: '\u2200' }, + '⋔': { codepoints: [8916], characters: '\u22D4' }, + '⫙': { codepoints: [10969], characters: '\u2AD9' }, + 'ℱ': { codepoints: [8497], characters: '\u2131' }, + '⨍': { codepoints: [10765], characters: '\u2A0D' }, + '½': { codepoints: [189], characters: '\u00BD' }, + '½': { codepoints: [189], characters: '\u00BD' }, + '⅓': { codepoints: [8531], characters: '\u2153' }, + '¼': { codepoints: [188], characters: '\u00BC' }, + '¼': { codepoints: [188], characters: '\u00BC' }, + '⅕': { codepoints: [8533], characters: '\u2155' }, + '⅙': { codepoints: [8537], characters: '\u2159' }, + '⅛': { codepoints: [8539], characters: '\u215B' }, + '⅔': { codepoints: [8532], characters: '\u2154' }, + '⅖': { codepoints: [8534], characters: '\u2156' }, + '¾': { codepoints: [190], characters: '\u00BE' }, + '¾': { codepoints: [190], characters: '\u00BE' }, + '⅗': { codepoints: [8535], characters: '\u2157' }, + '⅜': { codepoints: [8540], characters: '\u215C' }, + '⅘': { codepoints: [8536], characters: '\u2158' }, + '⅚': { codepoints: [8538], characters: '\u215A' }, + '⅝': { codepoints: [8541], characters: '\u215D' }, + '⅞': { codepoints: [8542], characters: '\u215E' }, + '⁄': { codepoints: [8260], characters: '\u2044' }, + '⌢': { codepoints: [8994], characters: '\u2322' }, + '𝒻': { codepoints: [119995], characters: '\uD835\uDCBB' }, + 'ℱ': { codepoints: [8497], characters: '\u2131' }, + 'ǵ': { codepoints: [501], characters: '\u01F5' }, + 'Γ': { codepoints: [915], characters: '\u0393' }, + 'γ': { codepoints: [947], characters: '\u03B3' }, + 'Ϝ': { codepoints: [988], characters: '\u03DC' }, + 'ϝ': { codepoints: [989], characters: '\u03DD' }, + '⪆': { codepoints: [10886], characters: '\u2A86' }, + 'Ğ': { codepoints: [286], characters: '\u011E' }, + 'ğ': { codepoints: [287], characters: '\u011F' }, + 'Ģ': { codepoints: [290], characters: '\u0122' }, + 'Ĝ': { codepoints: [284], characters: '\u011C' }, + 'ĝ': { codepoints: [285], characters: '\u011D' }, + 'Г': { codepoints: [1043], characters: '\u0413' }, + 'г': { codepoints: [1075], characters: '\u0433' }, + 'Ġ': { codepoints: [288], characters: '\u0120' }, + 'ġ': { codepoints: [289], characters: '\u0121' }, + '≥': { codepoints: [8805], characters: '\u2265' }, + '≧': { codepoints: [8807], characters: '\u2267' }, + '⪌': { codepoints: [10892], characters: '\u2A8C' }, + '⋛': { codepoints: [8923], characters: '\u22DB' }, + '≥': { codepoints: [8805], characters: '\u2265' }, + '≧': { codepoints: [8807], characters: '\u2267' }, + '⩾': { codepoints: [10878], characters: '\u2A7E' }, + '⪩': { codepoints: [10921], characters: '\u2AA9' }, + '⩾': { codepoints: [10878], characters: '\u2A7E' }, + '⪀': { codepoints: [10880], characters: '\u2A80' }, + '⪂': { codepoints: [10882], characters: '\u2A82' }, + '⪄': { codepoints: [10884], characters: '\u2A84' }, + '⋛︀': { codepoints: [8923, 65024], characters: '\u22DB\uFE00' }, + '⪔': { codepoints: [10900], characters: '\u2A94' }, + '𝔊': { codepoints: [120074], characters: '\uD835\uDD0A' }, + '𝔤': { codepoints: [120100], characters: '\uD835\uDD24' }, + '≫': { codepoints: [8811], characters: '\u226B' }, + '⋙': { codepoints: [8921], characters: '\u22D9' }, + '⋙': { codepoints: [8921], characters: '\u22D9' }, + 'ℷ': { codepoints: [8503], characters: '\u2137' }, + 'Ѓ': { codepoints: [1027], characters: '\u0403' }, + 'ѓ': { codepoints: [1107], characters: '\u0453' }, + '⪥': { codepoints: [10917], characters: '\u2AA5' }, + '≷': { codepoints: [8823], characters: '\u2277' }, + '⪒': { codepoints: [10898], characters: '\u2A92' }, + '⪤': { codepoints: [10916], characters: '\u2AA4' }, + '⪊': { codepoints: [10890], characters: '\u2A8A' }, + '⪊': { codepoints: [10890], characters: '\u2A8A' }, + '⪈': { codepoints: [10888], characters: '\u2A88' }, + '≩': { codepoints: [8809], characters: '\u2269' }, + '⪈': { codepoints: [10888], characters: '\u2A88' }, + '≩': { codepoints: [8809], characters: '\u2269' }, + '⋧': { codepoints: [8935], characters: '\u22E7' }, + '𝔾': { codepoints: [120126], characters: '\uD835\uDD3E' }, + '𝕘': { codepoints: [120152], characters: '\uD835\uDD58' }, + '`': { codepoints: [96], characters: '\u0060' }, + '≥': { codepoints: [8805], characters: '\u2265' }, + '⋛': { codepoints: [8923], characters: '\u22DB' }, + '≧': { codepoints: [8807], characters: '\u2267' }, + '⪢': { codepoints: [10914], characters: '\u2AA2' }, + '≷': { codepoints: [8823], characters: '\u2277' }, + '⩾': { codepoints: [10878], characters: '\u2A7E' }, + '≳': { codepoints: [8819], characters: '\u2273' }, + '𝒢': { codepoints: [119970], characters: '\uD835\uDCA2' }, + 'ℊ': { codepoints: [8458], characters: '\u210A' }, + '≳': { codepoints: [8819], characters: '\u2273' }, + '⪎': { codepoints: [10894], characters: '\u2A8E' }, + '⪐': { codepoints: [10896], characters: '\u2A90' }, + '⪧': { codepoints: [10919], characters: '\u2AA7' }, + '⩺': { codepoints: [10874], characters: '\u2A7A' }, + '>': { codepoints: [62], characters: '\u003E' }, + '>': { codepoints: [62], characters: '\u003E' }, + '>': { codepoints: [62], characters: '\u003E' }, + '>': { codepoints: [62], characters: '\u003E' }, + '≫': { codepoints: [8811], characters: '\u226B' }, + '⋗': { codepoints: [8919], characters: '\u22D7' }, + '⦕': { codepoints: [10645], characters: '\u2995' }, + '⩼': { codepoints: [10876], characters: '\u2A7C' }, + '⪆': { codepoints: [10886], characters: '\u2A86' }, + '⥸': { codepoints: [10616], characters: '\u2978' }, + '⋗': { codepoints: [8919], characters: '\u22D7' }, + '⋛': { codepoints: [8923], characters: '\u22DB' }, + '⪌': { codepoints: [10892], characters: '\u2A8C' }, + '≷': { codepoints: [8823], characters: '\u2277' }, + '≳': { codepoints: [8819], characters: '\u2273' }, + '≩︀': { codepoints: [8809, 65024], characters: '\u2269\uFE00' }, + '≩︀': { codepoints: [8809, 65024], characters: '\u2269\uFE00' }, + 'ˇ': { codepoints: [711], characters: '\u02C7' }, + ' ': { codepoints: [8202], characters: '\u200A' }, + '½': { codepoints: [189], characters: '\u00BD' }, + 'ℋ': { codepoints: [8459], characters: '\u210B' }, + 'Ъ': { codepoints: [1066], characters: '\u042A' }, + 'ъ': { codepoints: [1098], characters: '\u044A' }, + '⥈': { codepoints: [10568], characters: '\u2948' }, + '↔': { codepoints: [8596], characters: '\u2194' }, + '⇔': { codepoints: [8660], characters: '\u21D4' }, + '↭': { codepoints: [8621], characters: '\u21AD' }, + '^': { codepoints: [94], characters: '\u005E' }, + 'ℏ': { codepoints: [8463], characters: '\u210F' }, + 'Ĥ': { codepoints: [292], characters: '\u0124' }, + 'ĥ': { codepoints: [293], characters: '\u0125' }, + '♥': { codepoints: [9829], characters: '\u2665' }, + '♥': { codepoints: [9829], characters: '\u2665' }, + '…': { codepoints: [8230], characters: '\u2026' }, + '⊹': { codepoints: [8889], characters: '\u22B9' }, + '𝔥': { codepoints: [120101], characters: '\uD835\uDD25' }, + 'ℌ': { codepoints: [8460], characters: '\u210C' }, + 'ℋ': { codepoints: [8459], characters: '\u210B' }, + '⤥': { codepoints: [10533], characters: '\u2925' }, + '⤦': { codepoints: [10534], characters: '\u2926' }, + '⇿': { codepoints: [8703], characters: '\u21FF' }, + '∻': { codepoints: [8763], characters: '\u223B' }, + '↩': { codepoints: [8617], characters: '\u21A9' }, + '↪': { codepoints: [8618], characters: '\u21AA' }, + '𝕙': { codepoints: [120153], characters: '\uD835\uDD59' }, + 'ℍ': { codepoints: [8461], characters: '\u210D' }, + '―': { codepoints: [8213], characters: '\u2015' }, + '─': { codepoints: [9472], characters: '\u2500' }, + '𝒽': { codepoints: [119997], characters: '\uD835\uDCBD' }, + 'ℋ': { codepoints: [8459], characters: '\u210B' }, + 'ℏ': { codepoints: [8463], characters: '\u210F' }, + 'Ħ': { codepoints: [294], characters: '\u0126' }, + 'ħ': { codepoints: [295], characters: '\u0127' }, + '≎': { codepoints: [8782], characters: '\u224E' }, + '≏': { codepoints: [8783], characters: '\u224F' }, + '⁃': { codepoints: [8259], characters: '\u2043' }, + '‐': { codepoints: [8208], characters: '\u2010' }, + 'Í': { codepoints: [205], characters: '\u00CD' }, + 'Í': { codepoints: [205], characters: '\u00CD' }, + 'í': { codepoints: [237], characters: '\u00ED' }, + 'í': { codepoints: [237], characters: '\u00ED' }, + '⁣': { codepoints: [8291], characters: '\u2063' }, + 'Î': { codepoints: [206], characters: '\u00CE' }, + 'Î': { codepoints: [206], characters: '\u00CE' }, + 'î': { codepoints: [238], characters: '\u00EE' }, + 'î': { codepoints: [238], characters: '\u00EE' }, + 'И': { codepoints: [1048], characters: '\u0418' }, + 'и': { codepoints: [1080], characters: '\u0438' }, + 'İ': { codepoints: [304], characters: '\u0130' }, + 'Е': { codepoints: [1045], characters: '\u0415' }, + 'е': { codepoints: [1077], characters: '\u0435' }, + '¡': { codepoints: [161], characters: '\u00A1' }, + '¡': { codepoints: [161], characters: '\u00A1' }, + '⇔': { codepoints: [8660], characters: '\u21D4' }, + '𝔦': { codepoints: [120102], characters: '\uD835\uDD26' }, + 'ℑ': { codepoints: [8465], characters: '\u2111' }, + 'Ì': { codepoints: [204], characters: '\u00CC' }, + 'Ì': { codepoints: [204], characters: '\u00CC' }, + 'ì': { codepoints: [236], characters: '\u00EC' }, + 'ì': { codepoints: [236], characters: '\u00EC' }, + 'ⅈ': { codepoints: [8520], characters: '\u2148' }, + '⨌': { codepoints: [10764], characters: '\u2A0C' }, + '∭': { codepoints: [8749], characters: '\u222D' }, + '⧜': { codepoints: [10716], characters: '\u29DC' }, + '℩': { codepoints: [8489], characters: '\u2129' }, + 'IJ': { codepoints: [306], characters: '\u0132' }, + 'ij': { codepoints: [307], characters: '\u0133' }, + 'Ī': { codepoints: [298], characters: '\u012A' }, + 'ī': { codepoints: [299], characters: '\u012B' }, + 'ℑ': { codepoints: [8465], characters: '\u2111' }, + 'ⅈ': { codepoints: [8520], characters: '\u2148' }, + 'ℐ': { codepoints: [8464], characters: '\u2110' }, + 'ℑ': { codepoints: [8465], characters: '\u2111' }, + 'ı': { codepoints: [305], characters: '\u0131' }, + 'ℑ': { codepoints: [8465], characters: '\u2111' }, + '⊷': { codepoints: [8887], characters: '\u22B7' }, + 'Ƶ': { codepoints: [437], characters: '\u01B5' }, + '⇒': { codepoints: [8658], characters: '\u21D2' }, + '℅': { codepoints: [8453], characters: '\u2105' }, + '∈': { codepoints: [8712], characters: '\u2208' }, + '∞': { codepoints: [8734], characters: '\u221E' }, + '⧝': { codepoints: [10717], characters: '\u29DD' }, + 'ı': { codepoints: [305], characters: '\u0131' }, + '⊺': { codepoints: [8890], characters: '\u22BA' }, + '∫': { codepoints: [8747], characters: '\u222B' }, + '∬': { codepoints: [8748], characters: '\u222C' }, + 'ℤ': { codepoints: [8484], characters: '\u2124' }, + '∫': { codepoints: [8747], characters: '\u222B' }, + '⊺': { codepoints: [8890], characters: '\u22BA' }, + '⋂': { codepoints: [8898], characters: '\u22C2' }, + '⨗': { codepoints: [10775], characters: '\u2A17' }, + '⨼': { codepoints: [10812], characters: '\u2A3C' }, + '⁣': { codepoints: [8291], characters: '\u2063' }, + '⁢': { codepoints: [8290], characters: '\u2062' }, + 'Ё': { codepoints: [1025], characters: '\u0401' }, + 'ё': { codepoints: [1105], characters: '\u0451' }, + 'Į': { codepoints: [302], characters: '\u012E' }, + 'į': { codepoints: [303], characters: '\u012F' }, + '𝕀': { codepoints: [120128], characters: '\uD835\uDD40' }, + '𝕚': { codepoints: [120154], characters: '\uD835\uDD5A' }, + 'Ι': { codepoints: [921], characters: '\u0399' }, + 'ι': { codepoints: [953], characters: '\u03B9' }, + '⨼': { codepoints: [10812], characters: '\u2A3C' }, + '¿': { codepoints: [191], characters: '\u00BF' }, + '¿': { codepoints: [191], characters: '\u00BF' }, + '𝒾': { codepoints: [119998], characters: '\uD835\uDCBE' }, + 'ℐ': { codepoints: [8464], characters: '\u2110' }, + '∈': { codepoints: [8712], characters: '\u2208' }, + '⋵': { codepoints: [8949], characters: '\u22F5' }, + '⋹': { codepoints: [8953], characters: '\u22F9' }, + '⋴': { codepoints: [8948], characters: '\u22F4' }, + '⋳': { codepoints: [8947], characters: '\u22F3' }, + '∈': { codepoints: [8712], characters: '\u2208' }, + '⁢': { codepoints: [8290], characters: '\u2062' }, + 'Ĩ': { codepoints: [296], characters: '\u0128' }, + 'ĩ': { codepoints: [297], characters: '\u0129' }, + 'І': { codepoints: [1030], characters: '\u0406' }, + 'і': { codepoints: [1110], characters: '\u0456' }, + 'Ï': { codepoints: [207], characters: '\u00CF' }, + 'Ï': { codepoints: [207], characters: '\u00CF' }, + 'ï': { codepoints: [239], characters: '\u00EF' }, + 'ï': { codepoints: [239], characters: '\u00EF' }, + 'Ĵ': { codepoints: [308], characters: '\u0134' }, + 'ĵ': { codepoints: [309], characters: '\u0135' }, + 'Й': { codepoints: [1049], characters: '\u0419' }, + 'й': { codepoints: [1081], characters: '\u0439' }, + '𝔍': { codepoints: [120077], characters: '\uD835\uDD0D' }, + '𝔧': { codepoints: [120103], characters: '\uD835\uDD27' }, + 'ȷ': { codepoints: [567], characters: '\u0237' }, + '𝕁': { codepoints: [120129], characters: '\uD835\uDD41' }, + '𝕛': { codepoints: [120155], characters: '\uD835\uDD5B' }, + '𝒥': { codepoints: [119973], characters: '\uD835\uDCA5' }, + '𝒿': { codepoints: [119999], characters: '\uD835\uDCBF' }, + 'Ј': { codepoints: [1032], characters: '\u0408' }, + 'ј': { codepoints: [1112], characters: '\u0458' }, + 'Є': { codepoints: [1028], characters: '\u0404' }, + 'є': { codepoints: [1108], characters: '\u0454' }, + 'Κ': { codepoints: [922], characters: '\u039A' }, + 'κ': { codepoints: [954], characters: '\u03BA' }, + 'ϰ': { codepoints: [1008], characters: '\u03F0' }, + 'Ķ': { codepoints: [310], characters: '\u0136' }, + 'ķ': { codepoints: [311], characters: '\u0137' }, + 'К': { codepoints: [1050], characters: '\u041A' }, + 'к': { codepoints: [1082], characters: '\u043A' }, + '𝔎': { codepoints: [120078], characters: '\uD835\uDD0E' }, + '𝔨': { codepoints: [120104], characters: '\uD835\uDD28' }, + 'ĸ': { codepoints: [312], characters: '\u0138' }, + 'Х': { codepoints: [1061], characters: '\u0425' }, + 'х': { codepoints: [1093], characters: '\u0445' }, + 'Ќ': { codepoints: [1036], characters: '\u040C' }, + 'ќ': { codepoints: [1116], characters: '\u045C' }, + '𝕂': { codepoints: [120130], characters: '\uD835\uDD42' }, + '𝕜': { codepoints: [120156], characters: '\uD835\uDD5C' }, + '𝒦': { codepoints: [119974], characters: '\uD835\uDCA6' }, + '𝓀': { codepoints: [120000], characters: '\uD835\uDCC0' }, + '⇚': { codepoints: [8666], characters: '\u21DA' }, + 'Ĺ': { codepoints: [313], characters: '\u0139' }, + 'ĺ': { codepoints: [314], characters: '\u013A' }, + '⦴': { codepoints: [10676], characters: '\u29B4' }, + 'ℒ': { codepoints: [8466], characters: '\u2112' }, + 'Λ': { codepoints: [923], characters: '\u039B' }, + 'λ': { codepoints: [955], characters: '\u03BB' }, + '⟨': { codepoints: [10216], characters: '\u27E8' }, + '⟪': { codepoints: [10218], characters: '\u27EA' }, + '⦑': { codepoints: [10641], characters: '\u2991' }, + '⟨': { codepoints: [10216], characters: '\u27E8' }, + '⪅': { codepoints: [10885], characters: '\u2A85' }, + 'ℒ': { codepoints: [8466], characters: '\u2112' }, + '«': { codepoints: [171], characters: '\u00AB' }, + '«': { codepoints: [171], characters: '\u00AB' }, + '⇤': { codepoints: [8676], characters: '\u21E4' }, + '⤟': { codepoints: [10527], characters: '\u291F' }, + '←': { codepoints: [8592], characters: '\u2190' }, + '↞': { codepoints: [8606], characters: '\u219E' }, + '⇐': { codepoints: [8656], characters: '\u21D0' }, + '⤝': { codepoints: [10525], characters: '\u291D' }, + '↩': { codepoints: [8617], characters: '\u21A9' }, + '↫': { codepoints: [8619], characters: '\u21AB' }, + '⤹': { codepoints: [10553], characters: '\u2939' }, + '⥳': { codepoints: [10611], characters: '\u2973' }, + '↢': { codepoints: [8610], characters: '\u21A2' }, + '⤙': { codepoints: [10521], characters: '\u2919' }, + '⤛': { codepoints: [10523], characters: '\u291B' }, + '⪫': { codepoints: [10923], characters: '\u2AAB' }, + '⪭': { codepoints: [10925], characters: '\u2AAD' }, + '⪭︀': { codepoints: [10925, 65024], characters: '\u2AAD\uFE00' }, + '⤌': { codepoints: [10508], characters: '\u290C' }, + '⤎': { codepoints: [10510], characters: '\u290E' }, + '❲': { codepoints: [10098], characters: '\u2772' }, + '{': { codepoints: [123], characters: '\u007B' }, + '[': { codepoints: [91], characters: '\u005B' }, + '⦋': { codepoints: [10635], characters: '\u298B' }, + '⦏': { codepoints: [10639], characters: '\u298F' }, + '⦍': { codepoints: [10637], characters: '\u298D' }, + 'Ľ': { codepoints: [317], characters: '\u013D' }, + 'ľ': { codepoints: [318], characters: '\u013E' }, + 'Ļ': { codepoints: [315], characters: '\u013B' }, + 'ļ': { codepoints: [316], characters: '\u013C' }, + '⌈': { codepoints: [8968], characters: '\u2308' }, + '{': { codepoints: [123], characters: '\u007B' }, + 'Л': { codepoints: [1051], characters: '\u041B' }, + 'л': { codepoints: [1083], characters: '\u043B' }, + '⤶': { codepoints: [10550], characters: '\u2936' }, + '“': { codepoints: [8220], characters: '\u201C' }, + '„': { codepoints: [8222], characters: '\u201E' }, + '⥧': { codepoints: [10599], characters: '\u2967' }, + '⥋': { codepoints: [10571], characters: '\u294B' }, + '↲': { codepoints: [8626], characters: '\u21B2' }, + '≤': { codepoints: [8804], characters: '\u2264' }, + '≦': { codepoints: [8806], characters: '\u2266' }, + '⟨': { codepoints: [10216], characters: '\u27E8' }, + '⇤': { codepoints: [8676], characters: '\u21E4' }, + '←': { codepoints: [8592], characters: '\u2190' }, + '←': { codepoints: [8592], characters: '\u2190' }, + '⇐': { codepoints: [8656], characters: '\u21D0' }, + '⇆': { codepoints: [8646], characters: '\u21C6' }, + '↢': { codepoints: [8610], characters: '\u21A2' }, + '⌈': { codepoints: [8968], characters: '\u2308' }, + '⟦': { codepoints: [10214], characters: '\u27E6' }, + '⥡': { codepoints: [10593], characters: '\u2961' }, + '⥙': { codepoints: [10585], characters: '\u2959' }, + '⇃': { codepoints: [8643], characters: '\u21C3' }, + '⌊': { codepoints: [8970], characters: '\u230A' }, + '↽': { codepoints: [8637], characters: '\u21BD' }, + '↼': { codepoints: [8636], characters: '\u21BC' }, + '⇇': { codepoints: [8647], characters: '\u21C7' }, + '↔': { codepoints: [8596], characters: '\u2194' }, + '↔': { codepoints: [8596], characters: '\u2194' }, + '⇔': { codepoints: [8660], characters: '\u21D4' }, + '⇆': { codepoints: [8646], characters: '\u21C6' }, + '⇋': { codepoints: [8651], characters: '\u21CB' }, + '↭': { codepoints: [8621], characters: '\u21AD' }, + '⥎': { codepoints: [10574], characters: '\u294E' }, + '↤': { codepoints: [8612], characters: '\u21A4' }, + '⊣': { codepoints: [8867], characters: '\u22A3' }, + '⥚': { codepoints: [10586], characters: '\u295A' }, + '⋋': { codepoints: [8907], characters: '\u22CB' }, + '⧏': { codepoints: [10703], characters: '\u29CF' }, + '⊲': { codepoints: [8882], characters: '\u22B2' }, + '⊴': { codepoints: [8884], characters: '\u22B4' }, + '⥑': { codepoints: [10577], characters: '\u2951' }, + '⥠': { codepoints: [10592], characters: '\u2960' }, + '⥘': { codepoints: [10584], characters: '\u2958' }, + '↿': { codepoints: [8639], characters: '\u21BF' }, + '⥒': { codepoints: [10578], characters: '\u2952' }, + '↼': { codepoints: [8636], characters: '\u21BC' }, + '⪋': { codepoints: [10891], characters: '\u2A8B' }, + '⋚': { codepoints: [8922], characters: '\u22DA' }, + '≤': { codepoints: [8804], characters: '\u2264' }, + '≦': { codepoints: [8806], characters: '\u2266' }, + '⩽': { codepoints: [10877], characters: '\u2A7D' }, + '⪨': { codepoints: [10920], characters: '\u2AA8' }, + '⩽': { codepoints: [10877], characters: '\u2A7D' }, + '⩿': { codepoints: [10879], characters: '\u2A7F' }, + '⪁': { codepoints: [10881], characters: '\u2A81' }, + '⪃': { codepoints: [10883], characters: '\u2A83' }, + '⋚︀': { codepoints: [8922, 65024], characters: '\u22DA\uFE00' }, + '⪓': { codepoints: [10899], characters: '\u2A93' }, + '⪅': { codepoints: [10885], characters: '\u2A85' }, + '⋖': { codepoints: [8918], characters: '\u22D6' }, + '⋚': { codepoints: [8922], characters: '\u22DA' }, + '⪋': { codepoints: [10891], characters: '\u2A8B' }, + '⋚': { codepoints: [8922], characters: '\u22DA' }, + '≦': { codepoints: [8806], characters: '\u2266' }, + '≶': { codepoints: [8822], characters: '\u2276' }, + '≶': { codepoints: [8822], characters: '\u2276' }, + '⪡': { codepoints: [10913], characters: '\u2AA1' }, + '≲': { codepoints: [8818], characters: '\u2272' }, + '⩽': { codepoints: [10877], characters: '\u2A7D' }, + '≲': { codepoints: [8818], characters: '\u2272' }, + '⥼': { codepoints: [10620], characters: '\u297C' }, + '⌊': { codepoints: [8970], characters: '\u230A' }, + '𝔏': { codepoints: [120079], characters: '\uD835\uDD0F' }, + '𝔩': { codepoints: [120105], characters: '\uD835\uDD29' }, + '≶': { codepoints: [8822], characters: '\u2276' }, + '⪑': { codepoints: [10897], characters: '\u2A91' }, + '⥢': { codepoints: [10594], characters: '\u2962' }, + '↽': { codepoints: [8637], characters: '\u21BD' }, + '↼': { codepoints: [8636], characters: '\u21BC' }, + '⥪': { codepoints: [10602], characters: '\u296A' }, + '▄': { codepoints: [9604], characters: '\u2584' }, + 'Љ': { codepoints: [1033], characters: '\u0409' }, + 'љ': { codepoints: [1113], characters: '\u0459' }, + '⇇': { codepoints: [8647], characters: '\u21C7' }, + '≪': { codepoints: [8810], characters: '\u226A' }, + '⋘': { codepoints: [8920], characters: '\u22D8' }, + '⌞': { codepoints: [8990], characters: '\u231E' }, + '⇚': { codepoints: [8666], characters: '\u21DA' }, + '⥫': { codepoints: [10603], characters: '\u296B' }, + '◺': { codepoints: [9722], characters: '\u25FA' }, + 'Ŀ': { codepoints: [319], characters: '\u013F' }, + 'ŀ': { codepoints: [320], characters: '\u0140' }, + '⎰': { codepoints: [9136], characters: '\u23B0' }, + '⎰': { codepoints: [9136], characters: '\u23B0' }, + '⪉': { codepoints: [10889], characters: '\u2A89' }, + '⪉': { codepoints: [10889], characters: '\u2A89' }, + '⪇': { codepoints: [10887], characters: '\u2A87' }, + '≨': { codepoints: [8808], characters: '\u2268' }, + '⪇': { codepoints: [10887], characters: '\u2A87' }, + '≨': { codepoints: [8808], characters: '\u2268' }, + '⋦': { codepoints: [8934], characters: '\u22E6' }, + '⟬': { codepoints: [10220], characters: '\u27EC' }, + '⇽': { codepoints: [8701], characters: '\u21FD' }, + '⟦': { codepoints: [10214], characters: '\u27E6' }, + '⟵': { codepoints: [10229], characters: '\u27F5' }, + '⟵': { codepoints: [10229], characters: '\u27F5' }, + '⟸': { codepoints: [10232], characters: '\u27F8' }, + '⟷': { codepoints: [10231], characters: '\u27F7' }, + '⟷': { codepoints: [10231], characters: '\u27F7' }, + '⟺': { codepoints: [10234], characters: '\u27FA' }, + '⟼': { codepoints: [10236], characters: '\u27FC' }, + '⟶': { codepoints: [10230], characters: '\u27F6' }, + '⟶': { codepoints: [10230], characters: '\u27F6' }, + '⟹': { codepoints: [10233], characters: '\u27F9' }, + '↫': { codepoints: [8619], characters: '\u21AB' }, + '↬': { codepoints: [8620], characters: '\u21AC' }, + '⦅': { codepoints: [10629], characters: '\u2985' }, + '𝕃': { codepoints: [120131], characters: '\uD835\uDD43' }, + '𝕝': { codepoints: [120157], characters: '\uD835\uDD5D' }, + '⨭': { codepoints: [10797], characters: '\u2A2D' }, + '⨴': { codepoints: [10804], characters: '\u2A34' }, + '∗': { codepoints: [8727], characters: '\u2217' }, + '_': { codepoints: [95], characters: '\u005F' }, + '↙': { codepoints: [8601], characters: '\u2199' }, + '↘': { codepoints: [8600], characters: '\u2198' }, + '◊': { codepoints: [9674], characters: '\u25CA' }, + '◊': { codepoints: [9674], characters: '\u25CA' }, + '⧫': { codepoints: [10731], characters: '\u29EB' }, + '(': { codepoints: [40], characters: '\u0028' }, + '⦓': { codepoints: [10643], characters: '\u2993' }, + '⇆': { codepoints: [8646], characters: '\u21C6' }, + '⌟': { codepoints: [8991], characters: '\u231F' }, + '⇋': { codepoints: [8651], characters: '\u21CB' }, + '⥭': { codepoints: [10605], characters: '\u296D' }, + '‎': { codepoints: [8206], characters: '\u200E' }, + '⊿': { codepoints: [8895], characters: '\u22BF' }, + '‹': { codepoints: [8249], characters: '\u2039' }, + '𝓁': { codepoints: [120001], characters: '\uD835\uDCC1' }, + 'ℒ': { codepoints: [8466], characters: '\u2112' }, + '↰': { codepoints: [8624], characters: '\u21B0' }, + '↰': { codepoints: [8624], characters: '\u21B0' }, + '≲': { codepoints: [8818], characters: '\u2272' }, + '⪍': { codepoints: [10893], characters: '\u2A8D' }, + '⪏': { codepoints: [10895], characters: '\u2A8F' }, + '[': { codepoints: [91], characters: '\u005B' }, + '‘': { codepoints: [8216], characters: '\u2018' }, + '‚': { codepoints: [8218], characters: '\u201A' }, + 'Ł': { codepoints: [321], characters: '\u0141' }, + 'ł': { codepoints: [322], characters: '\u0142' }, + '⪦': { codepoints: [10918], characters: '\u2AA6' }, + '⩹': { codepoints: [10873], characters: '\u2A79' }, + '<': { codepoints: [60], characters: '\u003C' }, + '<': { codepoints: [60], characters: '\u003C' }, + '<': { codepoints: [60], characters: '\u003C' }, + '<': { codepoints: [60], characters: '\u003C' }, + '≪': { codepoints: [8810], characters: '\u226A' }, + '⋖': { codepoints: [8918], characters: '\u22D6' }, + '⋋': { codepoints: [8907], characters: '\u22CB' }, + '⋉': { codepoints: [8905], characters: '\u22C9' }, + '⥶': { codepoints: [10614], characters: '\u2976' }, + '⩻': { codepoints: [10875], characters: '\u2A7B' }, + '◃': { codepoints: [9667], characters: '\u25C3' }, + '⊴': { codepoints: [8884], characters: '\u22B4' }, + '◂': { codepoints: [9666], characters: '\u25C2' }, + '⦖': { codepoints: [10646], characters: '\u2996' }, + '⥊': { codepoints: [10570], characters: '\u294A' }, + '⥦': { codepoints: [10598], characters: '\u2966' }, + '≨︀': { codepoints: [8808, 65024], characters: '\u2268\uFE00' }, + '≨︀': { codepoints: [8808, 65024], characters: '\u2268\uFE00' }, + '¯': { codepoints: [175], characters: '\u00AF' }, + '¯': { codepoints: [175], characters: '\u00AF' }, + '♂': { codepoints: [9794], characters: '\u2642' }, + '✠': { codepoints: [10016], characters: '\u2720' }, + '✠': { codepoints: [10016], characters: '\u2720' }, + '⤅': { codepoints: [10501], characters: '\u2905' }, + '↦': { codepoints: [8614], characters: '\u21A6' }, + '↦': { codepoints: [8614], characters: '\u21A6' }, + '↧': { codepoints: [8615], characters: '\u21A7' }, + '↤': { codepoints: [8612], characters: '\u21A4' }, + '↥': { codepoints: [8613], characters: '\u21A5' }, + '▮': { codepoints: [9646], characters: '\u25AE' }, + '⨩': { codepoints: [10793], characters: '\u2A29' }, + 'М': { codepoints: [1052], characters: '\u041C' }, + 'м': { codepoints: [1084], characters: '\u043C' }, + '—': { codepoints: [8212], characters: '\u2014' }, + '∺': { codepoints: [8762], characters: '\u223A' }, + '∡': { codepoints: [8737], characters: '\u2221' }, + ' ': { codepoints: [8287], characters: '\u205F' }, + 'ℳ': { codepoints: [8499], characters: '\u2133' }, + '𝔐': { codepoints: [120080], characters: '\uD835\uDD10' }, + '𝔪': { codepoints: [120106], characters: '\uD835\uDD2A' }, + '℧': { codepoints: [8487], characters: '\u2127' }, + 'µ': { codepoints: [181], characters: '\u00B5' }, + 'µ': { codepoints: [181], characters: '\u00B5' }, + '*': { codepoints: [42], characters: '\u002A' }, + '⫰': { codepoints: [10992], characters: '\u2AF0' }, + '∣': { codepoints: [8739], characters: '\u2223' }, + '·': { codepoints: [183], characters: '\u00B7' }, + '·': { codepoints: [183], characters: '\u00B7' }, + '⊟': { codepoints: [8863], characters: '\u229F' }, + '−': { codepoints: [8722], characters: '\u2212' }, + '∸': { codepoints: [8760], characters: '\u2238' }, + '⨪': { codepoints: [10794], characters: '\u2A2A' }, + '∓': { codepoints: [8723], characters: '\u2213' }, + '⫛': { codepoints: [10971], characters: '\u2ADB' }, + '…': { codepoints: [8230], characters: '\u2026' }, + '∓': { codepoints: [8723], characters: '\u2213' }, + '⊧': { codepoints: [8871], characters: '\u22A7' }, + '𝕄': { codepoints: [120132], characters: '\uD835\uDD44' }, + '𝕞': { codepoints: [120158], characters: '\uD835\uDD5E' }, + '∓': { codepoints: [8723], characters: '\u2213' }, + '𝓂': { codepoints: [120002], characters: '\uD835\uDCC2' }, + 'ℳ': { codepoints: [8499], characters: '\u2133' }, + '∾': { codepoints: [8766], characters: '\u223E' }, + 'Μ': { codepoints: [924], characters: '\u039C' }, + 'μ': { codepoints: [956], characters: '\u03BC' }, + '⊸': { codepoints: [8888], characters: '\u22B8' }, + '⊸': { codepoints: [8888], characters: '\u22B8' }, + '∇': { codepoints: [8711], characters: '\u2207' }, + 'Ń': { codepoints: [323], characters: '\u0143' }, + 'ń': { codepoints: [324], characters: '\u0144' }, + '∠⃒': { codepoints: [8736, 8402], characters: '\u2220\u20D2' }, + '≉': { codepoints: [8777], characters: '\u2249' }, + '⩰̸': { codepoints: [10864, 824], characters: '\u2A70\u0338' }, + '≋̸': { codepoints: [8779, 824], characters: '\u224B\u0338' }, + 'ʼn': { codepoints: [329], characters: '\u0149' }, + '≉': { codepoints: [8777], characters: '\u2249' }, + '♮': { codepoints: [9838], characters: '\u266E' }, + 'ℕ': { codepoints: [8469], characters: '\u2115' }, + '♮': { codepoints: [9838], characters: '\u266E' }, + ' ': { codepoints: [160], characters: '\u00A0' }, + ' ': { codepoints: [160], characters: '\u00A0' }, + '≎̸': { codepoints: [8782, 824], characters: '\u224E\u0338' }, + '≏̸': { codepoints: [8783, 824], characters: '\u224F\u0338' }, + '⩃': { codepoints: [10819], characters: '\u2A43' }, + 'Ň': { codepoints: [327], characters: '\u0147' }, + 'ň': { codepoints: [328], characters: '\u0148' }, + 'Ņ': { codepoints: [325], characters: '\u0145' }, + 'ņ': { codepoints: [326], characters: '\u0146' }, + '≇': { codepoints: [8775], characters: '\u2247' }, + '⩭̸': { codepoints: [10861, 824], characters: '\u2A6D\u0338' }, + '⩂': { codepoints: [10818], characters: '\u2A42' }, + 'Н': { codepoints: [1053], characters: '\u041D' }, + 'н': { codepoints: [1085], characters: '\u043D' }, + '–': { codepoints: [8211], characters: '\u2013' }, + '⤤': { codepoints: [10532], characters: '\u2924' }, + '↗': { codepoints: [8599], characters: '\u2197' }, + '⇗': { codepoints: [8663], characters: '\u21D7' }, + '↗': { codepoints: [8599], characters: '\u2197' }, + '≠': { codepoints: [8800], characters: '\u2260' }, + '≐̸': { codepoints: [8784, 824], characters: '\u2250\u0338' }, + '​': { codepoints: [8203], characters: '\u200B' }, + '​': { codepoints: [8203], characters: '\u200B' }, + '​': { codepoints: [8203], characters: '\u200B' }, + '​': { codepoints: [8203], characters: '\u200B' }, + '≢': { codepoints: [8802], characters: '\u2262' }, + '⤨': { codepoints: [10536], characters: '\u2928' }, + '≂̸': { codepoints: [8770, 824], characters: '\u2242\u0338' }, + '≫': { codepoints: [8811], characters: '\u226B' }, + '≪': { codepoints: [8810], characters: '\u226A' }, + ' ': { codepoints: [10], characters: '\u000A' }, + '∄': { codepoints: [8708], characters: '\u2204' }, + '∄': { codepoints: [8708], characters: '\u2204' }, + '𝔑': { codepoints: [120081], characters: '\uD835\uDD11' }, + '𝔫': { codepoints: [120107], characters: '\uD835\uDD2B' }, + '≧̸': { codepoints: [8807, 824], characters: '\u2267\u0338' }, + '≱': { codepoints: [8817], characters: '\u2271' }, + '≱': { codepoints: [8817], characters: '\u2271' }, + '≧̸': { codepoints: [8807, 824], characters: '\u2267\u0338' }, + '⩾̸': { codepoints: [10878, 824], characters: '\u2A7E\u0338' }, + '⩾̸': { codepoints: [10878, 824], characters: '\u2A7E\u0338' }, + '⋙̸': { codepoints: [8921, 824], characters: '\u22D9\u0338' }, + '≵': { codepoints: [8821], characters: '\u2275' }, + '≫⃒': { codepoints: [8811, 8402], characters: '\u226B\u20D2' }, + '≯': { codepoints: [8815], characters: '\u226F' }, + '≯': { codepoints: [8815], characters: '\u226F' }, + '≫̸': { codepoints: [8811, 824], characters: '\u226B\u0338' }, + '↮': { codepoints: [8622], characters: '\u21AE' }, + '⇎': { codepoints: [8654], characters: '\u21CE' }, + '⫲': { codepoints: [10994], characters: '\u2AF2' }, + '∋': { codepoints: [8715], characters: '\u220B' }, + '⋼': { codepoints: [8956], characters: '\u22FC' }, + '⋺': { codepoints: [8954], characters: '\u22FA' }, + '∋': { codepoints: [8715], characters: '\u220B' }, + 'Њ': { codepoints: [1034], characters: '\u040A' }, + 'њ': { codepoints: [1114], characters: '\u045A' }, + '↚': { codepoints: [8602], characters: '\u219A' }, + '⇍': { codepoints: [8653], characters: '\u21CD' }, + '‥': { codepoints: [8229], characters: '\u2025' }, + '≦̸': { codepoints: [8806, 824], characters: '\u2266\u0338' }, + '≰': { codepoints: [8816], characters: '\u2270' }, + '↚': { codepoints: [8602], characters: '\u219A' }, + '⇍': { codepoints: [8653], characters: '\u21CD' }, + '↮': { codepoints: [8622], characters: '\u21AE' }, + '⇎': { codepoints: [8654], characters: '\u21CE' }, + '≰': { codepoints: [8816], characters: '\u2270' }, + '≦̸': { codepoints: [8806, 824], characters: '\u2266\u0338' }, + '⩽̸': { codepoints: [10877, 824], characters: '\u2A7D\u0338' }, + '⩽̸': { codepoints: [10877, 824], characters: '\u2A7D\u0338' }, + '≮': { codepoints: [8814], characters: '\u226E' }, + '⋘̸': { codepoints: [8920, 824], characters: '\u22D8\u0338' }, + '≴': { codepoints: [8820], characters: '\u2274' }, + '≪⃒': { codepoints: [8810, 8402], characters: '\u226A\u20D2' }, + '≮': { codepoints: [8814], characters: '\u226E' }, + '⋪': { codepoints: [8938], characters: '\u22EA' }, + '⋬': { codepoints: [8940], characters: '\u22EC' }, + '≪̸': { codepoints: [8810, 824], characters: '\u226A\u0338' }, + '∤': { codepoints: [8740], characters: '\u2224' }, + '⁠': { codepoints: [8288], characters: '\u2060' }, + ' ': { codepoints: [160], characters: '\u00A0' }, + '𝕟': { codepoints: [120159], characters: '\uD835\uDD5F' }, + 'ℕ': { codepoints: [8469], characters: '\u2115' }, + '⫬': { codepoints: [10988], characters: '\u2AEC' }, + '¬': { codepoints: [172], characters: '\u00AC' }, + '¬': { codepoints: [172], characters: '\u00AC' }, + '≢': { codepoints: [8802], characters: '\u2262' }, + '≭': { codepoints: [8813], characters: '\u226D' }, + '∦': { codepoints: [8742], characters: '\u2226' }, + '∉': { codepoints: [8713], characters: '\u2209' }, + '≠': { codepoints: [8800], characters: '\u2260' }, + '≂̸': { codepoints: [8770, 824], characters: '\u2242\u0338' }, + '∄': { codepoints: [8708], characters: '\u2204' }, + '≯': { codepoints: [8815], characters: '\u226F' }, + '≱': { codepoints: [8817], characters: '\u2271' }, + '≧̸': { codepoints: [8807, 824], characters: '\u2267\u0338' }, + '≫̸': { codepoints: [8811, 824], characters: '\u226B\u0338' }, + '≹': { codepoints: [8825], characters: '\u2279' }, + '⩾̸': { codepoints: [10878, 824], characters: '\u2A7E\u0338' }, + '≵': { codepoints: [8821], characters: '\u2275' }, + '≎̸': { codepoints: [8782, 824], characters: '\u224E\u0338' }, + '≏̸': { codepoints: [8783, 824], characters: '\u224F\u0338' }, + '∉': { codepoints: [8713], characters: '\u2209' }, + '⋵̸': { codepoints: [8949, 824], characters: '\u22F5\u0338' }, + '⋹̸': { codepoints: [8953, 824], characters: '\u22F9\u0338' }, + '∉': { codepoints: [8713], characters: '\u2209' }, + '⋷': { codepoints: [8951], characters: '\u22F7' }, + '⋶': { codepoints: [8950], characters: '\u22F6' }, + '⧏̸': { codepoints: [10703, 824], characters: '\u29CF\u0338' }, + '⋪': { codepoints: [8938], characters: '\u22EA' }, + '⋬': { codepoints: [8940], characters: '\u22EC' }, + '≮': { codepoints: [8814], characters: '\u226E' }, + '≰': { codepoints: [8816], characters: '\u2270' }, + '≸': { codepoints: [8824], characters: '\u2278' }, + '≪̸': { codepoints: [8810, 824], characters: '\u226A\u0338' }, + '⩽̸': { codepoints: [10877, 824], characters: '\u2A7D\u0338' }, + '≴': { codepoints: [8820], characters: '\u2274' }, + '⪢̸': { codepoints: [10914, 824], characters: '\u2AA2\u0338' }, + '⪡̸': { codepoints: [10913, 824], characters: '\u2AA1\u0338' }, + '∌': { codepoints: [8716], characters: '\u220C' }, + '∌': { codepoints: [8716], characters: '\u220C' }, + '⋾': { codepoints: [8958], characters: '\u22FE' }, + '⋽': { codepoints: [8957], characters: '\u22FD' }, + '⊀': { codepoints: [8832], characters: '\u2280' }, + '⪯̸': { codepoints: [10927, 824], characters: '\u2AAF\u0338' }, + '⋠': { codepoints: [8928], characters: '\u22E0' }, + '∌': { codepoints: [8716], characters: '\u220C' }, + '⧐̸': { codepoints: [10704, 824], characters: '\u29D0\u0338' }, + '⋫': { codepoints: [8939], characters: '\u22EB' }, + '⋭': { codepoints: [8941], characters: '\u22ED' }, + '⊏̸': { codepoints: [8847, 824], characters: '\u228F\u0338' }, + '⋢': { codepoints: [8930], characters: '\u22E2' }, + '⊐̸': { codepoints: [8848, 824], characters: '\u2290\u0338' }, + '⋣': { codepoints: [8931], characters: '\u22E3' }, + '⊂⃒': { codepoints: [8834, 8402], characters: '\u2282\u20D2' }, + '⊈': { codepoints: [8840], characters: '\u2288' }, + '⊁': { codepoints: [8833], characters: '\u2281' }, + '⪰̸': { codepoints: [10928, 824], characters: '\u2AB0\u0338' }, + '⋡': { codepoints: [8929], characters: '\u22E1' }, + '≿̸': { codepoints: [8831, 824], characters: '\u227F\u0338' }, + '⊃⃒': { codepoints: [8835, 8402], characters: '\u2283\u20D2' }, + '⊉': { codepoints: [8841], characters: '\u2289' }, + '≁': { codepoints: [8769], characters: '\u2241' }, + '≄': { codepoints: [8772], characters: '\u2244' }, + '≇': { codepoints: [8775], characters: '\u2247' }, + '≉': { codepoints: [8777], characters: '\u2249' }, + '∤': { codepoints: [8740], characters: '\u2224' }, + '∦': { codepoints: [8742], characters: '\u2226' }, + '∦': { codepoints: [8742], characters: '\u2226' }, + '⫽⃥': { codepoints: [11005, 8421], characters: '\u2AFD\u20E5' }, + '∂̸': { codepoints: [8706, 824], characters: '\u2202\u0338' }, + '⨔': { codepoints: [10772], characters: '\u2A14' }, + '⊀': { codepoints: [8832], characters: '\u2280' }, + '⋠': { codepoints: [8928], characters: '\u22E0' }, + '⊀': { codepoints: [8832], characters: '\u2280' }, + '⪯̸': { codepoints: [10927, 824], characters: '\u2AAF\u0338' }, + '⪯̸': { codepoints: [10927, 824], characters: '\u2AAF\u0338' }, + '⤳̸': { codepoints: [10547, 824], characters: '\u2933\u0338' }, + '↛': { codepoints: [8603], characters: '\u219B' }, + '⇏': { codepoints: [8655], characters: '\u21CF' }, + '↝̸': { codepoints: [8605, 824], characters: '\u219D\u0338' }, + '↛': { codepoints: [8603], characters: '\u219B' }, + '⇏': { codepoints: [8655], characters: '\u21CF' }, + '⋫': { codepoints: [8939], characters: '\u22EB' }, + '⋭': { codepoints: [8941], characters: '\u22ED' }, + '⊁': { codepoints: [8833], characters: '\u2281' }, + '⋡': { codepoints: [8929], characters: '\u22E1' }, + '⪰̸': { codepoints: [10928, 824], characters: '\u2AB0\u0338' }, + '𝒩': { codepoints: [119977], characters: '\uD835\uDCA9' }, + '𝓃': { codepoints: [120003], characters: '\uD835\uDCC3' }, + '∤': { codepoints: [8740], characters: '\u2224' }, + '∦': { codepoints: [8742], characters: '\u2226' }, + '≁': { codepoints: [8769], characters: '\u2241' }, + '≄': { codepoints: [8772], characters: '\u2244' }, + '≄': { codepoints: [8772], characters: '\u2244' }, + '∤': { codepoints: [8740], characters: '\u2224' }, + '∦': { codepoints: [8742], characters: '\u2226' }, + '⋢': { codepoints: [8930], characters: '\u22E2' }, + '⋣': { codepoints: [8931], characters: '\u22E3' }, + '⊄': { codepoints: [8836], characters: '\u2284' }, + '⫅̸': { codepoints: [10949, 824], characters: '\u2AC5\u0338' }, + '⊈': { codepoints: [8840], characters: '\u2288' }, + '⊂⃒': { codepoints: [8834, 8402], characters: '\u2282\u20D2' }, + '⊈': { codepoints: [8840], characters: '\u2288' }, + '⫅̸': { codepoints: [10949, 824], characters: '\u2AC5\u0338' }, + '⊁': { codepoints: [8833], characters: '\u2281' }, + '⪰̸': { codepoints: [10928, 824], characters: '\u2AB0\u0338' }, + '⊅': { codepoints: [8837], characters: '\u2285' }, + '⫆̸': { codepoints: [10950, 824], characters: '\u2AC6\u0338' }, + '⊉': { codepoints: [8841], characters: '\u2289' }, + '⊃⃒': { codepoints: [8835, 8402], characters: '\u2283\u20D2' }, + '⊉': { codepoints: [8841], characters: '\u2289' }, + '⫆̸': { codepoints: [10950, 824], characters: '\u2AC6\u0338' }, + '≹': { codepoints: [8825], characters: '\u2279' }, + 'Ñ': { codepoints: [209], characters: '\u00D1' }, + 'Ñ': { codepoints: [209], characters: '\u00D1' }, + 'ñ': { codepoints: [241], characters: '\u00F1' }, + 'ñ': { codepoints: [241], characters: '\u00F1' }, + '≸': { codepoints: [8824], characters: '\u2278' }, + '⋪': { codepoints: [8938], characters: '\u22EA' }, + '⋬': { codepoints: [8940], characters: '\u22EC' }, + '⋫': { codepoints: [8939], characters: '\u22EB' }, + '⋭': { codepoints: [8941], characters: '\u22ED' }, + 'Ν': { codepoints: [925], characters: '\u039D' }, + 'ν': { codepoints: [957], characters: '\u03BD' }, + '#': { codepoints: [35], characters: '\u0023' }, + '№': { codepoints: [8470], characters: '\u2116' }, + ' ': { codepoints: [8199], characters: '\u2007' }, + '≍⃒': { codepoints: [8781, 8402], characters: '\u224D\u20D2' }, + '⊬': { codepoints: [8876], characters: '\u22AC' }, + '⊭': { codepoints: [8877], characters: '\u22AD' }, + '⊮': { codepoints: [8878], characters: '\u22AE' }, + '⊯': { codepoints: [8879], characters: '\u22AF' }, + '≥⃒': { codepoints: [8805, 8402], characters: '\u2265\u20D2' }, + '>⃒': { codepoints: [62, 8402], characters: '\u003E\u20D2' }, + '⤄': { codepoints: [10500], characters: '\u2904' }, + '⧞': { codepoints: [10718], characters: '\u29DE' }, + '⤂': { codepoints: [10498], characters: '\u2902' }, + '≤⃒': { codepoints: [8804, 8402], characters: '\u2264\u20D2' }, + '<⃒': { codepoints: [60, 8402], characters: '\u003C\u20D2' }, + '⊴⃒': { codepoints: [8884, 8402], characters: '\u22B4\u20D2' }, + '⤃': { codepoints: [10499], characters: '\u2903' }, + '⊵⃒': { codepoints: [8885, 8402], characters: '\u22B5\u20D2' }, + '∼⃒': { codepoints: [8764, 8402], characters: '\u223C\u20D2' }, + '⤣': { codepoints: [10531], characters: '\u2923' }, + '↖': { codepoints: [8598], characters: '\u2196' }, + '⇖': { codepoints: [8662], characters: '\u21D6' }, + '↖': { codepoints: [8598], characters: '\u2196' }, + '⤧': { codepoints: [10535], characters: '\u2927' }, + 'Ó': { codepoints: [211], characters: '\u00D3' }, + 'Ó': { codepoints: [211], characters: '\u00D3' }, + 'ó': { codepoints: [243], characters: '\u00F3' }, + 'ó': { codepoints: [243], characters: '\u00F3' }, + '⊛': { codepoints: [8859], characters: '\u229B' }, + 'Ô': { codepoints: [212], characters: '\u00D4' }, + 'Ô': { codepoints: [212], characters: '\u00D4' }, + 'ô': { codepoints: [244], characters: '\u00F4' }, + 'ô': { codepoints: [244], characters: '\u00F4' }, + '⊚': { codepoints: [8858], characters: '\u229A' }, + 'О': { codepoints: [1054], characters: '\u041E' }, + 'о': { codepoints: [1086], characters: '\u043E' }, + '⊝': { codepoints: [8861], characters: '\u229D' }, + 'Ő': { codepoints: [336], characters: '\u0150' }, + 'ő': { codepoints: [337], characters: '\u0151' }, + '⨸': { codepoints: [10808], characters: '\u2A38' }, + '⊙': { codepoints: [8857], characters: '\u2299' }, + '⦼': { codepoints: [10684], characters: '\u29BC' }, + 'Œ': { codepoints: [338], characters: '\u0152' }, + 'œ': { codepoints: [339], characters: '\u0153' }, + '⦿': { codepoints: [10687], characters: '\u29BF' }, + '𝔒': { codepoints: [120082], characters: '\uD835\uDD12' }, + '𝔬': { codepoints: [120108], characters: '\uD835\uDD2C' }, + '˛': { codepoints: [731], characters: '\u02DB' }, + 'Ò': { codepoints: [210], characters: '\u00D2' }, + 'Ò': { codepoints: [210], characters: '\u00D2' }, + 'ò': { codepoints: [242], characters: '\u00F2' }, + 'ò': { codepoints: [242], characters: '\u00F2' }, + '⧁': { codepoints: [10689], characters: '\u29C1' }, + '⦵': { codepoints: [10677], characters: '\u29B5' }, + 'Ω': { codepoints: [937], characters: '\u03A9' }, + '∮': { codepoints: [8750], characters: '\u222E' }, + '↺': { codepoints: [8634], characters: '\u21BA' }, + '⦾': { codepoints: [10686], characters: '\u29BE' }, + '⦻': { codepoints: [10683], characters: '\u29BB' }, + '‾': { codepoints: [8254], characters: '\u203E' }, + '⧀': { codepoints: [10688], characters: '\u29C0' }, + 'Ō': { codepoints: [332], characters: '\u014C' }, + 'ō': { codepoints: [333], characters: '\u014D' }, + 'Ω': { codepoints: [937], characters: '\u03A9' }, + 'ω': { codepoints: [969], characters: '\u03C9' }, + 'Ο': { codepoints: [927], characters: '\u039F' }, + 'ο': { codepoints: [959], characters: '\u03BF' }, + '⦶': { codepoints: [10678], characters: '\u29B6' }, + '⊖': { codepoints: [8854], characters: '\u2296' }, + '𝕆': { codepoints: [120134], characters: '\uD835\uDD46' }, + '𝕠': { codepoints: [120160], characters: '\uD835\uDD60' }, + '⦷': { codepoints: [10679], characters: '\u29B7' }, + '“': { codepoints: [8220], characters: '\u201C' }, + '‘': { codepoints: [8216], characters: '\u2018' }, + '⦹': { codepoints: [10681], characters: '\u29B9' }, + '⊕': { codepoints: [8853], characters: '\u2295' }, + '↻': { codepoints: [8635], characters: '\u21BB' }, + '⩔': { codepoints: [10836], characters: '\u2A54' }, + '∨': { codepoints: [8744], characters: '\u2228' }, + '⩝': { codepoints: [10845], characters: '\u2A5D' }, + 'ℴ': { codepoints: [8500], characters: '\u2134' }, + 'ℴ': { codepoints: [8500], characters: '\u2134' }, + 'ª': { codepoints: [170], characters: '\u00AA' }, + 'ª': { codepoints: [170], characters: '\u00AA' }, + 'º': { codepoints: [186], characters: '\u00BA' }, + 'º': { codepoints: [186], characters: '\u00BA' }, + '⊶': { codepoints: [8886], characters: '\u22B6' }, + '⩖': { codepoints: [10838], characters: '\u2A56' }, + '⩗': { codepoints: [10839], characters: '\u2A57' }, + '⩛': { codepoints: [10843], characters: '\u2A5B' }, + 'Ⓢ': { codepoints: [9416], characters: '\u24C8' }, + '𝒪': { codepoints: [119978], characters: '\uD835\uDCAA' }, + 'ℴ': { codepoints: [8500], characters: '\u2134' }, + 'Ø': { codepoints: [216], characters: '\u00D8' }, + 'Ø': { codepoints: [216], characters: '\u00D8' }, + 'ø': { codepoints: [248], characters: '\u00F8' }, + 'ø': { codepoints: [248], characters: '\u00F8' }, + '⊘': { codepoints: [8856], characters: '\u2298' }, + 'Õ': { codepoints: [213], characters: '\u00D5' }, + 'Õ': { codepoints: [213], characters: '\u00D5' }, + 'õ': { codepoints: [245], characters: '\u00F5' }, + 'õ': { codepoints: [245], characters: '\u00F5' }, + '⨶': { codepoints: [10806], characters: '\u2A36' }, + '⨷': { codepoints: [10807], characters: '\u2A37' }, + '⊗': { codepoints: [8855], characters: '\u2297' }, + 'Ö': { codepoints: [214], characters: '\u00D6' }, + 'Ö': { codepoints: [214], characters: '\u00D6' }, + 'ö': { codepoints: [246], characters: '\u00F6' }, + 'ö': { codepoints: [246], characters: '\u00F6' }, + '⌽': { codepoints: [9021], characters: '\u233D' }, + '‾': { codepoints: [8254], characters: '\u203E' }, + '⏞': { codepoints: [9182], characters: '\u23DE' }, + '⎴': { codepoints: [9140], characters: '\u23B4' }, + '⏜': { codepoints: [9180], characters: '\u23DC' }, + '¶': { codepoints: [182], characters: '\u00B6' }, + '¶': { codepoints: [182], characters: '\u00B6' }, + '∥': { codepoints: [8741], characters: '\u2225' }, + '∥': { codepoints: [8741], characters: '\u2225' }, + '⫳': { codepoints: [10995], characters: '\u2AF3' }, + '⫽': { codepoints: [11005], characters: '\u2AFD' }, + '∂': { codepoints: [8706], characters: '\u2202' }, + '∂': { codepoints: [8706], characters: '\u2202' }, + 'П': { codepoints: [1055], characters: '\u041F' }, + 'п': { codepoints: [1087], characters: '\u043F' }, + '%': { codepoints: [37], characters: '\u0025' }, + '.': { codepoints: [46], characters: '\u002E' }, + '‰': { codepoints: [8240], characters: '\u2030' }, + '⊥': { codepoints: [8869], characters: '\u22A5' }, + '‱': { codepoints: [8241], characters: '\u2031' }, + '𝔓': { codepoints: [120083], characters: '\uD835\uDD13' }, + '𝔭': { codepoints: [120109], characters: '\uD835\uDD2D' }, + 'Φ': { codepoints: [934], characters: '\u03A6' }, + 'φ': { codepoints: [966], characters: '\u03C6' }, + 'ϕ': { codepoints: [981], characters: '\u03D5' }, + 'ℳ': { codepoints: [8499], characters: '\u2133' }, + '☎': { codepoints: [9742], characters: '\u260E' }, + 'Π': { codepoints: [928], characters: '\u03A0' }, + 'π': { codepoints: [960], characters: '\u03C0' }, + '⋔': { codepoints: [8916], characters: '\u22D4' }, + 'ϖ': { codepoints: [982], characters: '\u03D6' }, + 'ℏ': { codepoints: [8463], characters: '\u210F' }, + 'ℎ': { codepoints: [8462], characters: '\u210E' }, + 'ℏ': { codepoints: [8463], characters: '\u210F' }, + '⨣': { codepoints: [10787], characters: '\u2A23' }, + '⊞': { codepoints: [8862], characters: '\u229E' }, + '⨢': { codepoints: [10786], characters: '\u2A22' }, + '+': { codepoints: [43], characters: '\u002B' }, + '∔': { codepoints: [8724], characters: '\u2214' }, + '⨥': { codepoints: [10789], characters: '\u2A25' }, + '⩲': { codepoints: [10866], characters: '\u2A72' }, + '±': { codepoints: [177], characters: '\u00B1' }, + '±': { codepoints: [177], characters: '\u00B1' }, + '±': { codepoints: [177], characters: '\u00B1' }, + '⨦': { codepoints: [10790], characters: '\u2A26' }, + '⨧': { codepoints: [10791], characters: '\u2A27' }, + '±': { codepoints: [177], characters: '\u00B1' }, + 'ℌ': { codepoints: [8460], characters: '\u210C' }, + '⨕': { codepoints: [10773], characters: '\u2A15' }, + '𝕡': { codepoints: [120161], characters: '\uD835\uDD61' }, + 'ℙ': { codepoints: [8473], characters: '\u2119' }, + '£': { codepoints: [163], characters: '\u00A3' }, + '£': { codepoints: [163], characters: '\u00A3' }, + '⪷': { codepoints: [10935], characters: '\u2AB7' }, + '⪻': { codepoints: [10939], characters: '\u2ABB' }, + '≺': { codepoints: [8826], characters: '\u227A' }, + '≼': { codepoints: [8828], characters: '\u227C' }, + '⪷': { codepoints: [10935], characters: '\u2AB7' }, + '≺': { codepoints: [8826], characters: '\u227A' }, + '≼': { codepoints: [8828], characters: '\u227C' }, + '≺': { codepoints: [8826], characters: '\u227A' }, + '⪯': { codepoints: [10927], characters: '\u2AAF' }, + '≼': { codepoints: [8828], characters: '\u227C' }, + '≾': { codepoints: [8830], characters: '\u227E' }, + '⪯': { codepoints: [10927], characters: '\u2AAF' }, + '⪹': { codepoints: [10937], characters: '\u2AB9' }, + '⪵': { codepoints: [10933], characters: '\u2AB5' }, + '⋨': { codepoints: [8936], characters: '\u22E8' }, + '⪯': { codepoints: [10927], characters: '\u2AAF' }, + '⪳': { codepoints: [10931], characters: '\u2AB3' }, + '≾': { codepoints: [8830], characters: '\u227E' }, + '′': { codepoints: [8242], characters: '\u2032' }, + '″': { codepoints: [8243], characters: '\u2033' }, + 'ℙ': { codepoints: [8473], characters: '\u2119' }, + '⪹': { codepoints: [10937], characters: '\u2AB9' }, + '⪵': { codepoints: [10933], characters: '\u2AB5' }, + '⋨': { codepoints: [8936], characters: '\u22E8' }, + '∏': { codepoints: [8719], characters: '\u220F' }, + '∏': { codepoints: [8719], characters: '\u220F' }, + '⌮': { codepoints: [9006], characters: '\u232E' }, + '⌒': { codepoints: [8978], characters: '\u2312' }, + '⌓': { codepoints: [8979], characters: '\u2313' }, + '∝': { codepoints: [8733], characters: '\u221D' }, + '∝': { codepoints: [8733], characters: '\u221D' }, + '∷': { codepoints: [8759], characters: '\u2237' }, + '∝': { codepoints: [8733], characters: '\u221D' }, + '≾': { codepoints: [8830], characters: '\u227E' }, + '⊰': { codepoints: [8880], characters: '\u22B0' }, + '𝒫': { codepoints: [119979], characters: '\uD835\uDCAB' }, + '𝓅': { codepoints: [120005], characters: '\uD835\uDCC5' }, + 'Ψ': { codepoints: [936], characters: '\u03A8' }, + 'ψ': { codepoints: [968], characters: '\u03C8' }, + ' ': { codepoints: [8200], characters: '\u2008' }, + '𝔔': { codepoints: [120084], characters: '\uD835\uDD14' }, + '𝔮': { codepoints: [120110], characters: '\uD835\uDD2E' }, + '⨌': { codepoints: [10764], characters: '\u2A0C' }, + '𝕢': { codepoints: [120162], characters: '\uD835\uDD62' }, + 'ℚ': { codepoints: [8474], characters: '\u211A' }, + '⁗': { codepoints: [8279], characters: '\u2057' }, + '𝒬': { codepoints: [119980], characters: '\uD835\uDCAC' }, + '𝓆': { codepoints: [120006], characters: '\uD835\uDCC6' }, + 'ℍ': { codepoints: [8461], characters: '\u210D' }, + '⨖': { codepoints: [10774], characters: '\u2A16' }, + '?': { codepoints: [63], characters: '\u003F' }, + '≟': { codepoints: [8799], characters: '\u225F' }, + '"': { codepoints: [34], characters: '\u0022' }, + '"': { codepoints: [34], characters: '\u0022' }, + '"': { codepoints: [34], characters: '\u0022' }, + '"': { codepoints: [34], characters: '\u0022' }, + '⇛': { codepoints: [8667], characters: '\u21DB' }, + '∽̱': { codepoints: [8765, 817], characters: '\u223D\u0331' }, + 'Ŕ': { codepoints: [340], characters: '\u0154' }, + 'ŕ': { codepoints: [341], characters: '\u0155' }, + '√': { codepoints: [8730], characters: '\u221A' }, + '⦳': { codepoints: [10675], characters: '\u29B3' }, + '⟩': { codepoints: [10217], characters: '\u27E9' }, + '⟫': { codepoints: [10219], characters: '\u27EB' }, + '⦒': { codepoints: [10642], characters: '\u2992' }, + '⦥': { codepoints: [10661], characters: '\u29A5' }, + '⟩': { codepoints: [10217], characters: '\u27E9' }, + '»': { codepoints: [187], characters: '\u00BB' }, + '»': { codepoints: [187], characters: '\u00BB' }, + '⥵': { codepoints: [10613], characters: '\u2975' }, + '⇥': { codepoints: [8677], characters: '\u21E5' }, + '⤠': { codepoints: [10528], characters: '\u2920' }, + '⤳': { codepoints: [10547], characters: '\u2933' }, + '→': { codepoints: [8594], characters: '\u2192' }, + '↠': { codepoints: [8608], characters: '\u21A0' }, + '⇒': { codepoints: [8658], characters: '\u21D2' }, + '⤞': { codepoints: [10526], characters: '\u291E' }, + '↪': { codepoints: [8618], characters: '\u21AA' }, + '↬': { codepoints: [8620], characters: '\u21AC' }, + '⥅': { codepoints: [10565], characters: '\u2945' }, + '⥴': { codepoints: [10612], characters: '\u2974' }, + '⤖': { codepoints: [10518], characters: '\u2916' }, + '↣': { codepoints: [8611], characters: '\u21A3' }, + '↝': { codepoints: [8605], characters: '\u219D' }, + '⤚': { codepoints: [10522], characters: '\u291A' }, + '⤜': { codepoints: [10524], characters: '\u291C' }, + '∶': { codepoints: [8758], characters: '\u2236' }, + 'ℚ': { codepoints: [8474], characters: '\u211A' }, + '⤍': { codepoints: [10509], characters: '\u290D' }, + '⤏': { codepoints: [10511], characters: '\u290F' }, + '⤐': { codepoints: [10512], characters: '\u2910' }, + '❳': { codepoints: [10099], characters: '\u2773' }, + '}': { codepoints: [125], characters: '\u007D' }, + ']': { codepoints: [93], characters: '\u005D' }, + '⦌': { codepoints: [10636], characters: '\u298C' }, + '⦎': { codepoints: [10638], characters: '\u298E' }, + '⦐': { codepoints: [10640], characters: '\u2990' }, + 'Ř': { codepoints: [344], characters: '\u0158' }, + 'ř': { codepoints: [345], characters: '\u0159' }, + 'Ŗ': { codepoints: [342], characters: '\u0156' }, + 'ŗ': { codepoints: [343], characters: '\u0157' }, + '⌉': { codepoints: [8969], characters: '\u2309' }, + '}': { codepoints: [125], characters: '\u007D' }, + 'Р': { codepoints: [1056], characters: '\u0420' }, + 'р': { codepoints: [1088], characters: '\u0440' }, + '⤷': { codepoints: [10551], characters: '\u2937' }, + '⥩': { codepoints: [10601], characters: '\u2969' }, + '”': { codepoints: [8221], characters: '\u201D' }, + '”': { codepoints: [8221], characters: '\u201D' }, + '↳': { codepoints: [8627], characters: '\u21B3' }, + 'ℜ': { codepoints: [8476], characters: '\u211C' }, + 'ℛ': { codepoints: [8475], characters: '\u211B' }, + 'ℜ': { codepoints: [8476], characters: '\u211C' }, + 'ℝ': { codepoints: [8477], characters: '\u211D' }, + 'ℜ': { codepoints: [8476], characters: '\u211C' }, + '▭': { codepoints: [9645], characters: '\u25AD' }, + '®': { codepoints: [174], characters: '\u00AE' }, + '®': { codepoints: [174], characters: '\u00AE' }, + '®': { codepoints: [174], characters: '\u00AE' }, + '®': { codepoints: [174], characters: '\u00AE' }, + '∋': { codepoints: [8715], characters: '\u220B' }, + '⇋': { codepoints: [8651], characters: '\u21CB' }, + '⥯': { codepoints: [10607], characters: '\u296F' }, + '⥽': { codepoints: [10621], characters: '\u297D' }, + '⌋': { codepoints: [8971], characters: '\u230B' }, + '𝔯': { codepoints: [120111], characters: '\uD835\uDD2F' }, + 'ℜ': { codepoints: [8476], characters: '\u211C' }, + '⥤': { codepoints: [10596], characters: '\u2964' }, + '⇁': { codepoints: [8641], characters: '\u21C1' }, + '⇀': { codepoints: [8640], characters: '\u21C0' }, + '⥬': { codepoints: [10604], characters: '\u296C' }, + 'Ρ': { codepoints: [929], characters: '\u03A1' }, + 'ρ': { codepoints: [961], characters: '\u03C1' }, + 'ϱ': { codepoints: [1009], characters: '\u03F1' }, + '⟩': { codepoints: [10217], characters: '\u27E9' }, + '⇥': { codepoints: [8677], characters: '\u21E5' }, + '→': { codepoints: [8594], characters: '\u2192' }, + '→': { codepoints: [8594], characters: '\u2192' }, + '⇒': { codepoints: [8658], characters: '\u21D2' }, + '⇄': { codepoints: [8644], characters: '\u21C4' }, + '↣': { codepoints: [8611], characters: '\u21A3' }, + '⌉': { codepoints: [8969], characters: '\u2309' }, + '⟧': { codepoints: [10215], characters: '\u27E7' }, + '⥝': { codepoints: [10589], characters: '\u295D' }, + '⥕': { codepoints: [10581], characters: '\u2955' }, + '⇂': { codepoints: [8642], characters: '\u21C2' }, + '⌋': { codepoints: [8971], characters: '\u230B' }, + '⇁': { codepoints: [8641], characters: '\u21C1' }, + '⇀': { codepoints: [8640], characters: '\u21C0' }, + '⇄': { codepoints: [8644], characters: '\u21C4' }, + '⇌': { codepoints: [8652], characters: '\u21CC' }, + '⇉': { codepoints: [8649], characters: '\u21C9' }, + '↝': { codepoints: [8605], characters: '\u219D' }, + '↦': { codepoints: [8614], characters: '\u21A6' }, + '⊢': { codepoints: [8866], characters: '\u22A2' }, + '⥛': { codepoints: [10587], characters: '\u295B' }, + '⋌': { codepoints: [8908], characters: '\u22CC' }, + '⧐': { codepoints: [10704], characters: '\u29D0' }, + '⊳': { codepoints: [8883], characters: '\u22B3' }, + '⊵': { codepoints: [8885], characters: '\u22B5' }, + '⥏': { codepoints: [10575], characters: '\u294F' }, + '⥜': { codepoints: [10588], characters: '\u295C' }, + '⥔': { codepoints: [10580], characters: '\u2954' }, + '↾': { codepoints: [8638], characters: '\u21BE' }, + '⥓': { codepoints: [10579], characters: '\u2953' }, + '⇀': { codepoints: [8640], characters: '\u21C0' }, + '˚': { codepoints: [730], characters: '\u02DA' }, + '≓': { codepoints: [8787], characters: '\u2253' }, + '⇄': { codepoints: [8644], characters: '\u21C4' }, + '⇌': { codepoints: [8652], characters: '\u21CC' }, + '‏': { codepoints: [8207], characters: '\u200F' }, + '⎱': { codepoints: [9137], characters: '\u23B1' }, + '⎱': { codepoints: [9137], characters: '\u23B1' }, + '⫮': { codepoints: [10990], characters: '\u2AEE' }, + '⟭': { codepoints: [10221], characters: '\u27ED' }, + '⇾': { codepoints: [8702], characters: '\u21FE' }, + '⟧': { codepoints: [10215], characters: '\u27E7' }, + '⦆': { codepoints: [10630], characters: '\u2986' }, + '𝕣': { codepoints: [120163], characters: '\uD835\uDD63' }, + 'ℝ': { codepoints: [8477], characters: '\u211D' }, + '⨮': { codepoints: [10798], characters: '\u2A2E' }, + '⨵': { codepoints: [10805], characters: '\u2A35' }, + '⥰': { codepoints: [10608], characters: '\u2970' }, + ')': { codepoints: [41], characters: '\u0029' }, + '⦔': { codepoints: [10644], characters: '\u2994' }, + '⨒': { codepoints: [10770], characters: '\u2A12' }, + '⇉': { codepoints: [8649], characters: '\u21C9' }, + '⇛': { codepoints: [8667], characters: '\u21DB' }, + '›': { codepoints: [8250], characters: '\u203A' }, + '𝓇': { codepoints: [120007], characters: '\uD835\uDCC7' }, + 'ℛ': { codepoints: [8475], characters: '\u211B' }, + '↱': { codepoints: [8625], characters: '\u21B1' }, + '↱': { codepoints: [8625], characters: '\u21B1' }, + ']': { codepoints: [93], characters: '\u005D' }, + '’': { codepoints: [8217], characters: '\u2019' }, + '’': { codepoints: [8217], characters: '\u2019' }, + '⋌': { codepoints: [8908], characters: '\u22CC' }, + '⋊': { codepoints: [8906], characters: '\u22CA' }, + '▹': { codepoints: [9657], characters: '\u25B9' }, + '⊵': { codepoints: [8885], characters: '\u22B5' }, + '▸': { codepoints: [9656], characters: '\u25B8' }, + '⧎': { codepoints: [10702], characters: '\u29CE' }, + '⧴': { codepoints: [10740], characters: '\u29F4' }, + '⥨': { codepoints: [10600], characters: '\u2968' }, + '℞': { codepoints: [8478], characters: '\u211E' }, + 'Ś': { codepoints: [346], characters: '\u015A' }, + 'ś': { codepoints: [347], characters: '\u015B' }, + '‚': { codepoints: [8218], characters: '\u201A' }, + '⪸': { codepoints: [10936], characters: '\u2AB8' }, + 'Š': { codepoints: [352], characters: '\u0160' }, + 'š': { codepoints: [353], characters: '\u0161' }, + '⪼': { codepoints: [10940], characters: '\u2ABC' }, + '≻': { codepoints: [8827], characters: '\u227B' }, + '≽': { codepoints: [8829], characters: '\u227D' }, + '⪰': { codepoints: [10928], characters: '\u2AB0' }, + '⪴': { codepoints: [10932], characters: '\u2AB4' }, + 'Ş': { codepoints: [350], characters: '\u015E' }, + 'ş': { codepoints: [351], characters: '\u015F' }, + 'Ŝ': { codepoints: [348], characters: '\u015C' }, + 'ŝ': { codepoints: [349], characters: '\u015D' }, + '⪺': { codepoints: [10938], characters: '\u2ABA' }, + '⪶': { codepoints: [10934], characters: '\u2AB6' }, + '⋩': { codepoints: [8937], characters: '\u22E9' }, + '⨓': { codepoints: [10771], characters: '\u2A13' }, + '≿': { codepoints: [8831], characters: '\u227F' }, + 'С': { codepoints: [1057], characters: '\u0421' }, + 'с': { codepoints: [1089], characters: '\u0441' }, + '⊡': { codepoints: [8865], characters: '\u22A1' }, + '⋅': { codepoints: [8901], characters: '\u22C5' }, + '⩦': { codepoints: [10854], characters: '\u2A66' }, + '⤥': { codepoints: [10533], characters: '\u2925' }, + '↘': { codepoints: [8600], characters: '\u2198' }, + '⇘': { codepoints: [8664], characters: '\u21D8' }, + '↘': { codepoints: [8600], characters: '\u2198' }, + '§': { codepoints: [167], characters: '\u00A7' }, + '§': { codepoints: [167], characters: '\u00A7' }, + ';': { codepoints: [59], characters: '\u003B' }, + '⤩': { codepoints: [10537], characters: '\u2929' }, + '∖': { codepoints: [8726], characters: '\u2216' }, + '∖': { codepoints: [8726], characters: '\u2216' }, + '✶': { codepoints: [10038], characters: '\u2736' }, + '𝔖': { codepoints: [120086], characters: '\uD835\uDD16' }, + '𝔰': { codepoints: [120112], characters: '\uD835\uDD30' }, + '⌢': { codepoints: [8994], characters: '\u2322' }, + '♯': { codepoints: [9839], characters: '\u266F' }, + 'Щ': { codepoints: [1065], characters: '\u0429' }, + 'щ': { codepoints: [1097], characters: '\u0449' }, + 'Ш': { codepoints: [1064], characters: '\u0428' }, + 'ш': { codepoints: [1096], characters: '\u0448' }, + '↓': { codepoints: [8595], characters: '\u2193' }, + '←': { codepoints: [8592], characters: '\u2190' }, + '∣': { codepoints: [8739], characters: '\u2223' }, + '∥': { codepoints: [8741], characters: '\u2225' }, + '→': { codepoints: [8594], characters: '\u2192' }, + '↑': { codepoints: [8593], characters: '\u2191' }, + '­': { codepoints: [173], characters: '\u00AD' }, + '­': { codepoints: [173], characters: '\u00AD' }, + 'Σ': { codepoints: [931], characters: '\u03A3' }, + 'σ': { codepoints: [963], characters: '\u03C3' }, + 'ς': { codepoints: [962], characters: '\u03C2' }, + 'ς': { codepoints: [962], characters: '\u03C2' }, + '∼': { codepoints: [8764], characters: '\u223C' }, + '⩪': { codepoints: [10858], characters: '\u2A6A' }, + '≃': { codepoints: [8771], characters: '\u2243' }, + '≃': { codepoints: [8771], characters: '\u2243' }, + '⪞': { codepoints: [10910], characters: '\u2A9E' }, + '⪠': { codepoints: [10912], characters: '\u2AA0' }, + '⪝': { codepoints: [10909], characters: '\u2A9D' }, + '⪟': { codepoints: [10911], characters: '\u2A9F' }, + '≆': { codepoints: [8774], characters: '\u2246' }, + '⨤': { codepoints: [10788], characters: '\u2A24' }, + '⥲': { codepoints: [10610], characters: '\u2972' }, + '←': { codepoints: [8592], characters: '\u2190' }, + '∘': { codepoints: [8728], characters: '\u2218' }, + '∖': { codepoints: [8726], characters: '\u2216' }, + '⨳': { codepoints: [10803], characters: '\u2A33' }, + '⧤': { codepoints: [10724], characters: '\u29E4' }, + '∣': { codepoints: [8739], characters: '\u2223' }, + '⌣': { codepoints: [8995], characters: '\u2323' }, + '⪪': { codepoints: [10922], characters: '\u2AAA' }, + '⪬': { codepoints: [10924], characters: '\u2AAC' }, + '⪬︀': { codepoints: [10924, 65024], characters: '\u2AAC\uFE00' }, + 'Ь': { codepoints: [1068], characters: '\u042C' }, + 'ь': { codepoints: [1100], characters: '\u044C' }, + '⌿': { codepoints: [9023], characters: '\u233F' }, + '⧄': { codepoints: [10692], characters: '\u29C4' }, + '/': { codepoints: [47], characters: '\u002F' }, + '𝕊': { codepoints: [120138], characters: '\uD835\uDD4A' }, + '𝕤': { codepoints: [120164], characters: '\uD835\uDD64' }, + '♠': { codepoints: [9824], characters: '\u2660' }, + '♠': { codepoints: [9824], characters: '\u2660' }, + '∥': { codepoints: [8741], characters: '\u2225' }, + '⊓': { codepoints: [8851], characters: '\u2293' }, + '⊓︀': { codepoints: [8851, 65024], characters: '\u2293\uFE00' }, + '⊔': { codepoints: [8852], characters: '\u2294' }, + '⊔︀': { codepoints: [8852, 65024], characters: '\u2294\uFE00' }, + '√': { codepoints: [8730], characters: '\u221A' }, + '⊏': { codepoints: [8847], characters: '\u228F' }, + '⊑': { codepoints: [8849], characters: '\u2291' }, + '⊏': { codepoints: [8847], characters: '\u228F' }, + '⊑': { codepoints: [8849], characters: '\u2291' }, + '⊐': { codepoints: [8848], characters: '\u2290' }, + '⊒': { codepoints: [8850], characters: '\u2292' }, + '⊐': { codepoints: [8848], characters: '\u2290' }, + '⊒': { codepoints: [8850], characters: '\u2292' }, + '□': { codepoints: [9633], characters: '\u25A1' }, + '□': { codepoints: [9633], characters: '\u25A1' }, + '⊓': { codepoints: [8851], characters: '\u2293' }, + '⊏': { codepoints: [8847], characters: '\u228F' }, + '⊑': { codepoints: [8849], characters: '\u2291' }, + '⊐': { codepoints: [8848], characters: '\u2290' }, + '⊒': { codepoints: [8850], characters: '\u2292' }, + '⊔': { codepoints: [8852], characters: '\u2294' }, + '▪': { codepoints: [9642], characters: '\u25AA' }, + '□': { codepoints: [9633], characters: '\u25A1' }, + '▪': { codepoints: [9642], characters: '\u25AA' }, + '→': { codepoints: [8594], characters: '\u2192' }, + '𝒮': { codepoints: [119982], characters: '\uD835\uDCAE' }, + '𝓈': { codepoints: [120008], characters: '\uD835\uDCC8' }, + '∖': { codepoints: [8726], characters: '\u2216' }, + '⌣': { codepoints: [8995], characters: '\u2323' }, + '⋆': { codepoints: [8902], characters: '\u22C6' }, + '⋆': { codepoints: [8902], characters: '\u22C6' }, + '☆': { codepoints: [9734], characters: '\u2606' }, + '★': { codepoints: [9733], characters: '\u2605' }, + 'ϵ': { codepoints: [1013], characters: '\u03F5' }, + 'ϕ': { codepoints: [981], characters: '\u03D5' }, + '¯': { codepoints: [175], characters: '\u00AF' }, + '⊂': { codepoints: [8834], characters: '\u2282' }, + '⋐': { codepoints: [8912], characters: '\u22D0' }, + '⪽': { codepoints: [10941], characters: '\u2ABD' }, + '⫅': { codepoints: [10949], characters: '\u2AC5' }, + '⊆': { codepoints: [8838], characters: '\u2286' }, + '⫃': { codepoints: [10947], characters: '\u2AC3' }, + '⫁': { codepoints: [10945], characters: '\u2AC1' }, + '⫋': { codepoints: [10955], characters: '\u2ACB' }, + '⊊': { codepoints: [8842], characters: '\u228A' }, + '⪿': { codepoints: [10943], characters: '\u2ABF' }, + '⥹': { codepoints: [10617], characters: '\u2979' }, + '⊂': { codepoints: [8834], characters: '\u2282' }, + '⋐': { codepoints: [8912], characters: '\u22D0' }, + '⊆': { codepoints: [8838], characters: '\u2286' }, + '⫅': { codepoints: [10949], characters: '\u2AC5' }, + '⊆': { codepoints: [8838], characters: '\u2286' }, + '⊊': { codepoints: [8842], characters: '\u228A' }, + '⫋': { codepoints: [10955], characters: '\u2ACB' }, + '⫇': { codepoints: [10951], characters: '\u2AC7' }, + '⫕': { codepoints: [10965], characters: '\u2AD5' }, + '⫓': { codepoints: [10963], characters: '\u2AD3' }, + '⪸': { codepoints: [10936], characters: '\u2AB8' }, + '≻': { codepoints: [8827], characters: '\u227B' }, + '≽': { codepoints: [8829], characters: '\u227D' }, + '≻': { codepoints: [8827], characters: '\u227B' }, + '⪰': { codepoints: [10928], characters: '\u2AB0' }, + '≽': { codepoints: [8829], characters: '\u227D' }, + '≿': { codepoints: [8831], characters: '\u227F' }, + '⪰': { codepoints: [10928], characters: '\u2AB0' }, + '⪺': { codepoints: [10938], characters: '\u2ABA' }, + '⪶': { codepoints: [10934], characters: '\u2AB6' }, + '⋩': { codepoints: [8937], characters: '\u22E9' }, + '≿': { codepoints: [8831], characters: '\u227F' }, + '∋': { codepoints: [8715], characters: '\u220B' }, + '∑': { codepoints: [8721], characters: '\u2211' }, + '∑': { codepoints: [8721], characters: '\u2211' }, + '♪': { codepoints: [9834], characters: '\u266A' }, + '¹': { codepoints: [185], characters: '\u00B9' }, + '¹': { codepoints: [185], characters: '\u00B9' }, + '²': { codepoints: [178], characters: '\u00B2' }, + '²': { codepoints: [178], characters: '\u00B2' }, + '³': { codepoints: [179], characters: '\u00B3' }, + '³': { codepoints: [179], characters: '\u00B3' }, + '⊃': { codepoints: [8835], characters: '\u2283' }, + '⋑': { codepoints: [8913], characters: '\u22D1' }, + '⪾': { codepoints: [10942], characters: '\u2ABE' }, + '⫘': { codepoints: [10968], characters: '\u2AD8' }, + '⫆': { codepoints: [10950], characters: '\u2AC6' }, + '⊇': { codepoints: [8839], characters: '\u2287' }, + '⫄': { codepoints: [10948], characters: '\u2AC4' }, + '⊃': { codepoints: [8835], characters: '\u2283' }, + '⊇': { codepoints: [8839], characters: '\u2287' }, + '⟉': { codepoints: [10185], characters: '\u27C9' }, + '⫗': { codepoints: [10967], characters: '\u2AD7' }, + '⥻': { codepoints: [10619], characters: '\u297B' }, + '⫂': { codepoints: [10946], characters: '\u2AC2' }, + '⫌': { codepoints: [10956], characters: '\u2ACC' }, + '⊋': { codepoints: [8843], characters: '\u228B' }, + '⫀': { codepoints: [10944], characters: '\u2AC0' }, + '⊃': { codepoints: [8835], characters: '\u2283' }, + '⋑': { codepoints: [8913], characters: '\u22D1' }, + '⊇': { codepoints: [8839], characters: '\u2287' }, + '⫆': { codepoints: [10950], characters: '\u2AC6' }, + '⊋': { codepoints: [8843], characters: '\u228B' }, + '⫌': { codepoints: [10956], characters: '\u2ACC' }, + '⫈': { codepoints: [10952], characters: '\u2AC8' }, + '⫔': { codepoints: [10964], characters: '\u2AD4' }, + '⫖': { codepoints: [10966], characters: '\u2AD6' }, + '⤦': { codepoints: [10534], characters: '\u2926' }, + '↙': { codepoints: [8601], characters: '\u2199' }, + '⇙': { codepoints: [8665], characters: '\u21D9' }, + '↙': { codepoints: [8601], characters: '\u2199' }, + '⤪': { codepoints: [10538], characters: '\u292A' }, + 'ß': { codepoints: [223], characters: '\u00DF' }, + 'ß': { codepoints: [223], characters: '\u00DF' }, + ' ': { codepoints: [9], characters: '\u0009' }, + '⌖': { codepoints: [8982], characters: '\u2316' }, + 'Τ': { codepoints: [932], characters: '\u03A4' }, + 'τ': { codepoints: [964], characters: '\u03C4' }, + '⎴': { codepoints: [9140], characters: '\u23B4' }, + 'Ť': { codepoints: [356], characters: '\u0164' }, + 'ť': { codepoints: [357], characters: '\u0165' }, + 'Ţ': { codepoints: [354], characters: '\u0162' }, + 'ţ': { codepoints: [355], characters: '\u0163' }, + 'Т': { codepoints: [1058], characters: '\u0422' }, + 'т': { codepoints: [1090], characters: '\u0442' }, + '⃛': { codepoints: [8411], characters: '\u20DB' }, + '⌕': { codepoints: [8981], characters: '\u2315' }, + '𝔗': { codepoints: [120087], characters: '\uD835\uDD17' }, + '𝔱': { codepoints: [120113], characters: '\uD835\uDD31' }, + '∴': { codepoints: [8756], characters: '\u2234' }, + '∴': { codepoints: [8756], characters: '\u2234' }, + '∴': { codepoints: [8756], characters: '\u2234' }, + 'Θ': { codepoints: [920], characters: '\u0398' }, + 'θ': { codepoints: [952], characters: '\u03B8' }, + 'ϑ': { codepoints: [977], characters: '\u03D1' }, + 'ϑ': { codepoints: [977], characters: '\u03D1' }, + '≈': { codepoints: [8776], characters: '\u2248' }, + '∼': { codepoints: [8764], characters: '\u223C' }, + '  ': { codepoints: [8287, 8202], characters: '\u205F\u200A' }, + ' ': { codepoints: [8201], characters: '\u2009' }, + ' ': { codepoints: [8201], characters: '\u2009' }, + '≈': { codepoints: [8776], characters: '\u2248' }, + '∼': { codepoints: [8764], characters: '\u223C' }, + 'Þ': { codepoints: [222], characters: '\u00DE' }, + 'Þ': { codepoints: [222], characters: '\u00DE' }, + 'þ': { codepoints: [254], characters: '\u00FE' }, + 'þ': { codepoints: [254], characters: '\u00FE' }, + '˜': { codepoints: [732], characters: '\u02DC' }, + '∼': { codepoints: [8764], characters: '\u223C' }, + '≃': { codepoints: [8771], characters: '\u2243' }, + '≅': { codepoints: [8773], characters: '\u2245' }, + '≈': { codepoints: [8776], characters: '\u2248' }, + '⨱': { codepoints: [10801], characters: '\u2A31' }, + '⊠': { codepoints: [8864], characters: '\u22A0' }, + '×': { codepoints: [215], characters: '\u00D7' }, + '×': { codepoints: [215], characters: '\u00D7' }, + '⨰': { codepoints: [10800], characters: '\u2A30' }, + '∭': { codepoints: [8749], characters: '\u222D' }, + '⤨': { codepoints: [10536], characters: '\u2928' }, + '⌶': { codepoints: [9014], characters: '\u2336' }, + '⫱': { codepoints: [10993], characters: '\u2AF1' }, + '⊤': { codepoints: [8868], characters: '\u22A4' }, + '𝕋': { codepoints: [120139], characters: '\uD835\uDD4B' }, + '𝕥': { codepoints: [120165], characters: '\uD835\uDD65' }, + '⫚': { codepoints: [10970], characters: '\u2ADA' }, + '⤩': { codepoints: [10537], characters: '\u2929' }, + '‴': { codepoints: [8244], characters: '\u2034' }, + '™': { codepoints: [8482], characters: '\u2122' }, + '™': { codepoints: [8482], characters: '\u2122' }, + '▵': { codepoints: [9653], characters: '\u25B5' }, + '▿': { codepoints: [9663], characters: '\u25BF' }, + '◃': { codepoints: [9667], characters: '\u25C3' }, + '⊴': { codepoints: [8884], characters: '\u22B4' }, + '≜': { codepoints: [8796], characters: '\u225C' }, + '▹': { codepoints: [9657], characters: '\u25B9' }, + '⊵': { codepoints: [8885], characters: '\u22B5' }, + '◬': { codepoints: [9708], characters: '\u25EC' }, + '≜': { codepoints: [8796], characters: '\u225C' }, + '⨺': { codepoints: [10810], characters: '\u2A3A' }, + '⃛': { codepoints: [8411], characters: '\u20DB' }, + '⨹': { codepoints: [10809], characters: '\u2A39' }, + '⧍': { codepoints: [10701], characters: '\u29CD' }, + '⨻': { codepoints: [10811], characters: '\u2A3B' }, + '⏢': { codepoints: [9186], characters: '\u23E2' }, + '𝒯': { codepoints: [119983], characters: '\uD835\uDCAF' }, + '𝓉': { codepoints: [120009], characters: '\uD835\uDCC9' }, + 'Ц': { codepoints: [1062], characters: '\u0426' }, + 'ц': { codepoints: [1094], characters: '\u0446' }, + 'Ћ': { codepoints: [1035], characters: '\u040B' }, + 'ћ': { codepoints: [1115], characters: '\u045B' }, + 'Ŧ': { codepoints: [358], characters: '\u0166' }, + 'ŧ': { codepoints: [359], characters: '\u0167' }, + '≬': { codepoints: [8812], characters: '\u226C' }, + '↞': { codepoints: [8606], characters: '\u219E' }, + '↠': { codepoints: [8608], characters: '\u21A0' }, + 'Ú': { codepoints: [218], characters: '\u00DA' }, + 'Ú': { codepoints: [218], characters: '\u00DA' }, + 'ú': { codepoints: [250], characters: '\u00FA' }, + 'ú': { codepoints: [250], characters: '\u00FA' }, + '↑': { codepoints: [8593], characters: '\u2191' }, + '↟': { codepoints: [8607], characters: '\u219F' }, + '⇑': { codepoints: [8657], characters: '\u21D1' }, + '⥉': { codepoints: [10569], characters: '\u2949' }, + 'Ў': { codepoints: [1038], characters: '\u040E' }, + 'ў': { codepoints: [1118], characters: '\u045E' }, + 'Ŭ': { codepoints: [364], characters: '\u016C' }, + 'ŭ': { codepoints: [365], characters: '\u016D' }, + 'Û': { codepoints: [219], characters: '\u00DB' }, + 'Û': { codepoints: [219], characters: '\u00DB' }, + 'û': { codepoints: [251], characters: '\u00FB' }, + 'û': { codepoints: [251], characters: '\u00FB' }, + 'У': { codepoints: [1059], characters: '\u0423' }, + 'у': { codepoints: [1091], characters: '\u0443' }, + '⇅': { codepoints: [8645], characters: '\u21C5' }, + 'Ű': { codepoints: [368], characters: '\u0170' }, + 'ű': { codepoints: [369], characters: '\u0171' }, + '⥮': { codepoints: [10606], characters: '\u296E' }, + '⥾': { codepoints: [10622], characters: '\u297E' }, + '𝔘': { codepoints: [120088], characters: '\uD835\uDD18' }, + '𝔲': { codepoints: [120114], characters: '\uD835\uDD32' }, + 'Ù': { codepoints: [217], characters: '\u00D9' }, + 'Ù': { codepoints: [217], characters: '\u00D9' }, + 'ù': { codepoints: [249], characters: '\u00F9' }, + 'ù': { codepoints: [249], characters: '\u00F9' }, + '⥣': { codepoints: [10595], characters: '\u2963' }, + '↿': { codepoints: [8639], characters: '\u21BF' }, + '↾': { codepoints: [8638], characters: '\u21BE' }, + '▀': { codepoints: [9600], characters: '\u2580' }, + '⌜': { codepoints: [8988], characters: '\u231C' }, + '⌜': { codepoints: [8988], characters: '\u231C' }, + '⌏': { codepoints: [8975], characters: '\u230F' }, + '◸': { codepoints: [9720], characters: '\u25F8' }, + 'Ū': { codepoints: [362], characters: '\u016A' }, + 'ū': { codepoints: [363], characters: '\u016B' }, + '¨': { codepoints: [168], characters: '\u00A8' }, + '¨': { codepoints: [168], characters: '\u00A8' }, + '_': { codepoints: [95], characters: '\u005F' }, + '⏟': { codepoints: [9183], characters: '\u23DF' }, + '⎵': { codepoints: [9141], characters: '\u23B5' }, + '⏝': { codepoints: [9181], characters: '\u23DD' }, + '⋃': { codepoints: [8899], characters: '\u22C3' }, + '⊎': { codepoints: [8846], characters: '\u228E' }, + 'Ų': { codepoints: [370], characters: '\u0172' }, + 'ų': { codepoints: [371], characters: '\u0173' }, + '𝕌': { codepoints: [120140], characters: '\uD835\uDD4C' }, + '𝕦': { codepoints: [120166], characters: '\uD835\uDD66' }, + '⤒': { codepoints: [10514], characters: '\u2912' }, + '↑': { codepoints: [8593], characters: '\u2191' }, + '↑': { codepoints: [8593], characters: '\u2191' }, + '⇑': { codepoints: [8657], characters: '\u21D1' }, + '⇅': { codepoints: [8645], characters: '\u21C5' }, + '↕': { codepoints: [8597], characters: '\u2195' }, + '↕': { codepoints: [8597], characters: '\u2195' }, + '⇕': { codepoints: [8661], characters: '\u21D5' }, + '⥮': { codepoints: [10606], characters: '\u296E' }, + '↿': { codepoints: [8639], characters: '\u21BF' }, + '↾': { codepoints: [8638], characters: '\u21BE' }, + '⊎': { codepoints: [8846], characters: '\u228E' }, + '↖': { codepoints: [8598], characters: '\u2196' }, + '↗': { codepoints: [8599], characters: '\u2197' }, + 'υ': { codepoints: [965], characters: '\u03C5' }, + 'ϒ': { codepoints: [978], characters: '\u03D2' }, + 'ϒ': { codepoints: [978], characters: '\u03D2' }, + 'Υ': { codepoints: [933], characters: '\u03A5' }, + 'υ': { codepoints: [965], characters: '\u03C5' }, + '↥': { codepoints: [8613], characters: '\u21A5' }, + '⊥': { codepoints: [8869], characters: '\u22A5' }, + '⇈': { codepoints: [8648], characters: '\u21C8' }, + '⌝': { codepoints: [8989], characters: '\u231D' }, + '⌝': { codepoints: [8989], characters: '\u231D' }, + '⌎': { codepoints: [8974], characters: '\u230E' }, + 'Ů': { codepoints: [366], characters: '\u016E' }, + 'ů': { codepoints: [367], characters: '\u016F' }, + '◹': { codepoints: [9721], characters: '\u25F9' }, + '𝒰': { codepoints: [119984], characters: '\uD835\uDCB0' }, + '𝓊': { codepoints: [120010], characters: '\uD835\uDCCA' }, + '⋰': { codepoints: [8944], characters: '\u22F0' }, + 'Ũ': { codepoints: [360], characters: '\u0168' }, + 'ũ': { codepoints: [361], characters: '\u0169' }, + '▵': { codepoints: [9653], characters: '\u25B5' }, + '▴': { codepoints: [9652], characters: '\u25B4' }, + '⇈': { codepoints: [8648], characters: '\u21C8' }, + 'Ü': { codepoints: [220], characters: '\u00DC' }, + 'Ü': { codepoints: [220], characters: '\u00DC' }, + 'ü': { codepoints: [252], characters: '\u00FC' }, + 'ü': { codepoints: [252], characters: '\u00FC' }, + '⦧': { codepoints: [10663], characters: '\u29A7' }, + '⦜': { codepoints: [10652], characters: '\u299C' }, + 'ϵ': { codepoints: [1013], characters: '\u03F5' }, + 'ϰ': { codepoints: [1008], characters: '\u03F0' }, + '∅': { codepoints: [8709], characters: '\u2205' }, + 'ϕ': { codepoints: [981], characters: '\u03D5' }, + 'ϖ': { codepoints: [982], characters: '\u03D6' }, + '∝': { codepoints: [8733], characters: '\u221D' }, + '↕': { codepoints: [8597], characters: '\u2195' }, + '⇕': { codepoints: [8661], characters: '\u21D5' }, + 'ϱ': { codepoints: [1009], characters: '\u03F1' }, + 'ς': { codepoints: [962], characters: '\u03C2' }, + '⊊︀': { codepoints: [8842, 65024], characters: '\u228A\uFE00' }, + '⫋︀': { codepoints: [10955, 65024], characters: '\u2ACB\uFE00' }, + '⊋︀': { codepoints: [8843, 65024], characters: '\u228B\uFE00' }, + '⫌︀': { codepoints: [10956, 65024], characters: '\u2ACC\uFE00' }, + 'ϑ': { codepoints: [977], characters: '\u03D1' }, + '⊲': { codepoints: [8882], characters: '\u22B2' }, + '⊳': { codepoints: [8883], characters: '\u22B3' }, + '⫨': { codepoints: [10984], characters: '\u2AE8' }, + '⫫': { codepoints: [10987], characters: '\u2AEB' }, + '⫩': { codepoints: [10985], characters: '\u2AE9' }, + 'В': { codepoints: [1042], characters: '\u0412' }, + 'в': { codepoints: [1074], characters: '\u0432' }, + '⊢': { codepoints: [8866], characters: '\u22A2' }, + '⊨': { codepoints: [8872], characters: '\u22A8' }, + '⊩': { codepoints: [8873], characters: '\u22A9' }, + '⊫': { codepoints: [8875], characters: '\u22AB' }, + '⫦': { codepoints: [10982], characters: '\u2AE6' }, + '⊻': { codepoints: [8891], characters: '\u22BB' }, + '∨': { codepoints: [8744], characters: '\u2228' }, + '⋁': { codepoints: [8897], characters: '\u22C1' }, + '≚': { codepoints: [8794], characters: '\u225A' }, + '⋮': { codepoints: [8942], characters: '\u22EE' }, + '|': { codepoints: [124], characters: '\u007C' }, + '‖': { codepoints: [8214], characters: '\u2016' }, + '|': { codepoints: [124], characters: '\u007C' }, + '‖': { codepoints: [8214], characters: '\u2016' }, + '∣': { codepoints: [8739], characters: '\u2223' }, + '|': { codepoints: [124], characters: '\u007C' }, + '❘': { codepoints: [10072], characters: '\u2758' }, + '≀': { codepoints: [8768], characters: '\u2240' }, + ' ': { codepoints: [8202], characters: '\u200A' }, + '𝔙': { codepoints: [120089], characters: '\uD835\uDD19' }, + '𝔳': { codepoints: [120115], characters: '\uD835\uDD33' }, + '⊲': { codepoints: [8882], characters: '\u22B2' }, + '⊂⃒': { codepoints: [8834, 8402], characters: '\u2282\u20D2' }, + '⊃⃒': { codepoints: [8835, 8402], characters: '\u2283\u20D2' }, + '𝕍': { codepoints: [120141], characters: '\uD835\uDD4D' }, + '𝕧': { codepoints: [120167], characters: '\uD835\uDD67' }, + '∝': { codepoints: [8733], characters: '\u221D' }, + '⊳': { codepoints: [8883], characters: '\u22B3' }, + '𝒱': { codepoints: [119985], characters: '\uD835\uDCB1' }, + '𝓋': { codepoints: [120011], characters: '\uD835\uDCCB' }, + '⫋︀': { codepoints: [10955, 65024], characters: '\u2ACB\uFE00' }, + '⊊︀': { codepoints: [8842, 65024], characters: '\u228A\uFE00' }, + '⫌︀': { codepoints: [10956, 65024], characters: '\u2ACC\uFE00' }, + '⊋︀': { codepoints: [8843, 65024], characters: '\u228B\uFE00' }, + '⊪': { codepoints: [8874], characters: '\u22AA' }, + '⦚': { codepoints: [10650], characters: '\u299A' }, + 'Ŵ': { codepoints: [372], characters: '\u0174' }, + 'ŵ': { codepoints: [373], characters: '\u0175' }, + '⩟': { codepoints: [10847], characters: '\u2A5F' }, + '∧': { codepoints: [8743], characters: '\u2227' }, + '⋀': { codepoints: [8896], characters: '\u22C0' }, + '≙': { codepoints: [8793], characters: '\u2259' }, + '℘': { codepoints: [8472], characters: '\u2118' }, + '𝔚': { codepoints: [120090], characters: '\uD835\uDD1A' }, + '𝔴': { codepoints: [120116], characters: '\uD835\uDD34' }, + '𝕎': { codepoints: [120142], characters: '\uD835\uDD4E' }, + '𝕨': { codepoints: [120168], characters: '\uD835\uDD68' }, + '℘': { codepoints: [8472], characters: '\u2118' }, + '≀': { codepoints: [8768], characters: '\u2240' }, + '≀': { codepoints: [8768], characters: '\u2240' }, + '𝒲': { codepoints: [119986], characters: '\uD835\uDCB2' }, + '𝓌': { codepoints: [120012], characters: '\uD835\uDCCC' }, + '⋂': { codepoints: [8898], characters: '\u22C2' }, + '◯': { codepoints: [9711], characters: '\u25EF' }, + '⋃': { codepoints: [8899], characters: '\u22C3' }, + '▽': { codepoints: [9661], characters: '\u25BD' }, + '𝔛': { codepoints: [120091], characters: '\uD835\uDD1B' }, + '𝔵': { codepoints: [120117], characters: '\uD835\uDD35' }, + '⟷': { codepoints: [10231], characters: '\u27F7' }, + '⟺': { codepoints: [10234], characters: '\u27FA' }, + 'Ξ': { codepoints: [926], characters: '\u039E' }, + 'ξ': { codepoints: [958], characters: '\u03BE' }, + '⟵': { codepoints: [10229], characters: '\u27F5' }, + '⟸': { codepoints: [10232], characters: '\u27F8' }, + '⟼': { codepoints: [10236], characters: '\u27FC' }, + '⋻': { codepoints: [8955], characters: '\u22FB' }, + '⨀': { codepoints: [10752], characters: '\u2A00' }, + '𝕏': { codepoints: [120143], characters: '\uD835\uDD4F' }, + '𝕩': { codepoints: [120169], characters: '\uD835\uDD69' }, + '⨁': { codepoints: [10753], characters: '\u2A01' }, + '⨂': { codepoints: [10754], characters: '\u2A02' }, + '⟶': { codepoints: [10230], characters: '\u27F6' }, + '⟹': { codepoints: [10233], characters: '\u27F9' }, + '𝒳': { codepoints: [119987], characters: '\uD835\uDCB3' }, + '𝓍': { codepoints: [120013], characters: '\uD835\uDCCD' }, + '⨆': { codepoints: [10758], characters: '\u2A06' }, + '⨄': { codepoints: [10756], characters: '\u2A04' }, + '△': { codepoints: [9651], characters: '\u25B3' }, + '⋁': { codepoints: [8897], characters: '\u22C1' }, + '⋀': { codepoints: [8896], characters: '\u22C0' }, + 'Ý': { codepoints: [221], characters: '\u00DD' }, + 'Ý': { codepoints: [221], characters: '\u00DD' }, + 'ý': { codepoints: [253], characters: '\u00FD' }, + 'ý': { codepoints: [253], characters: '\u00FD' }, + 'Я': { codepoints: [1071], characters: '\u042F' }, + 'я': { codepoints: [1103], characters: '\u044F' }, + 'Ŷ': { codepoints: [374], characters: '\u0176' }, + 'ŷ': { codepoints: [375], characters: '\u0177' }, + 'Ы': { codepoints: [1067], characters: '\u042B' }, + 'ы': { codepoints: [1099], characters: '\u044B' }, + '¥': { codepoints: [165], characters: '\u00A5' }, + '¥': { codepoints: [165], characters: '\u00A5' }, + '𝔜': { codepoints: [120092], characters: '\uD835\uDD1C' }, + '𝔶': { codepoints: [120118], characters: '\uD835\uDD36' }, + 'Ї': { codepoints: [1031], characters: '\u0407' }, + 'ї': { codepoints: [1111], characters: '\u0457' }, + '𝕐': { codepoints: [120144], characters: '\uD835\uDD50' }, + '𝕪': { codepoints: [120170], characters: '\uD835\uDD6A' }, + '𝒴': { codepoints: [119988], characters: '\uD835\uDCB4' }, + '𝓎': { codepoints: [120014], characters: '\uD835\uDCCE' }, + 'Ю': { codepoints: [1070], characters: '\u042E' }, + 'ю': { codepoints: [1102], characters: '\u044E' }, + 'ÿ': { codepoints: [255], characters: '\u00FF' }, + 'ÿ': { codepoints: [255], characters: '\u00FF' }, + 'Ÿ': { codepoints: [376], characters: '\u0178' }, + 'Ź': { codepoints: [377], characters: '\u0179' }, + 'ź': { codepoints: [378], characters: '\u017A' }, + 'Ž': { codepoints: [381], characters: '\u017D' }, + 'ž': { codepoints: [382], characters: '\u017E' }, + 'З': { codepoints: [1047], characters: '\u0417' }, + 'з': { codepoints: [1079], characters: '\u0437' }, + 'Ż': { codepoints: [379], characters: '\u017B' }, + 'ż': { codepoints: [380], characters: '\u017C' }, + 'ℨ': { codepoints: [8488], characters: '\u2128' }, + '​': { codepoints: [8203], characters: '\u200B' }, + 'Ζ': { codepoints: [918], characters: '\u0396' }, + 'ζ': { codepoints: [950], characters: '\u03B6' }, + '𝔷': { codepoints: [120119], characters: '\uD835\uDD37' }, + 'ℨ': { codepoints: [8488], characters: '\u2128' }, + 'Ж': { codepoints: [1046], characters: '\u0416' }, + 'ж': { codepoints: [1078], characters: '\u0436' }, + '⇝': { codepoints: [8669], characters: '\u21DD' }, + '𝕫': { codepoints: [120171], characters: '\uD835\uDD6B' }, + 'ℤ': { codepoints: [8484], characters: '\u2124' }, + '𝒵': { codepoints: [119989], characters: '\uD835\uDCB5' }, + '𝓏': { codepoints: [120015], characters: '\uD835\uDCCF' }, + '‍': { codepoints: [8205], characters: '\u200D' }, + '‌': { codepoints: [8204], characters: '\u200C' }, }; const ALPHANUMERIC = /^[a-zA-Z0-9]/; @@ -2248,17 +2248,17 @@ const getNamedEntityByFirstChar = {}; const namedEntitiesByFirstChar = {}; let chr; - for (let ent in ENTITIES) { + for (const ent in ENTITIES) { chr = ent.charAt(1); namedEntitiesByFirstChar[chr] = (namedEntitiesByFirstChar[chr] || []); namedEntitiesByFirstChar[chr].push(ent.slice(2)); } for (chr in namedEntitiesByFirstChar) { - let regex = new RegExp('^&' + chr + '(?:' + namedEntitiesByFirstChar[chr].join('|') + ')'); + const regex = new RegExp(`^&${chr}(?:${namedEntitiesByFirstChar[chr].join('|')})`); getNamedEntityByFirstChar[chr] = makeRegexMatcher(regex); } -})(); +}()); // Run a provided "matcher" function but reset the current position afterwards. // Fatal failure of the matcher is not suppressed. @@ -2274,14 +2274,12 @@ const peekMatcher = function (scanner, matcher) { // if something looks like a named entity but isn't. const getNamedCharRef = function (scanner, inAttribute) { // look for `&` followed by alphanumeric - if (!peekMatcher(scanner, getPossibleNamedEntityStart)) - return null; + if (!peekMatcher(scanner, getPossibleNamedEntityStart)) return null; const matcher = getNamedEntityByFirstChar[scanner.rest().charAt(1)]; let entity = null; - if (matcher) - entity = peekMatcher(scanner, matcher); + if (matcher) entity = peekMatcher(scanner, matcher); if (entity) { if (entity.slice(-1) !== ';') { @@ -2291,8 +2289,7 @@ const getNamedCharRef = function (scanner, inAttribute) { // // This rule affects href attributes, for example, deeming "/?foo=bar<c=abc" // to be ok but "/?foo=bar<=abc" to not be. - if (inAttribute && ALPHANUMERIC.test(scanner.rest().charAt(entity.length))) - return null; + if (inAttribute && ALPHANUMERIC.test(scanner.rest().charAt(entity.length))) return null; scanner.fatal(`Character reference requires semicolon: ${entity}`); } else { @@ -2303,8 +2300,7 @@ const getNamedCharRef = function (scanner, inAttribute) { // we couldn't match any real entity, so see if this is a bad entity // or something we can overlook. const badEntity = peekMatcher(scanner, getApparentNamedEntity); - if (badEntity) - scanner.fatal(`Invalid character reference: ${badEntity}`); + if (badEntity) scanner.fatal(`Invalid character reference: ${badEntity}`); // `&aaaa` is ok with no semicolon return null; } @@ -2329,11 +2325,10 @@ const BIG_BAD_CODEPOINTS = (function (obj) { 0xDFFFE, 0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE, 0xFFFFF, 0x10FFFE, 0x10FFFF]; - for (const item of list) - obj[item] = true; + for (const item of list) obj[item] = true; return obj; -})({}); +}({})); const isLegalCodepoint = function (cp) { if ((cp === 0) || @@ -2347,8 +2342,7 @@ const isLegalCodepoint = function (cp) { (cp >= 0xfdd0 && cp <= 0xfdef) || (cp === 0xfffe) || (cp === 0xffff) || - (cp >= 0x10000 && BIG_BAD_CODEPOINTS[cp])) - return false; + (cp >= 0x10000 && BIG_BAD_CODEPOINTS[cp])) return false; return true; }; @@ -2367,9 +2361,10 @@ const isLegalCodepoint = function (cp) { // value of `allowedChar` doesn't actually seem to end up mattering, but there is still some debate about // the right approach to ampersands. export function getCharacterReference(scanner, inAttribute, allowedChar) { - if (scanner.peek() !== '&') + if (scanner.peek() !== '&') { // no ampersand return null; + } const afterAmp = scanner.rest().charAt(1); @@ -2381,8 +2376,7 @@ export function getCharacterReference(scanner, inAttribute, allowedChar) { // At this point we've consumed the input, so we're committed to returning // something or failing fatally. - if (!refNumber) - scanner.fatal("Invalid numerical character reference starting with &#"); + if (!refNumber) scanner.fatal('Invalid numerical character reference starting with &#'); let codepoint; @@ -2390,48 +2384,43 @@ export function getCharacterReference(scanner, inAttribute, allowedChar) { // hex let hex = refNumber.slice(1, -1); - while (hex.charAt(0) === '0') - hex = hex.slice(1); + while (hex.charAt(0) === '0') hex = hex.slice(1); - if (hex.length > 6) - scanner.fatal("Numerical character reference too large: 0x" + hex); + if (hex.length > 6) scanner.fatal(`Numerical character reference too large: 0x${hex}`); - codepoint = parseInt(hex || "0", 16); + codepoint = parseInt(hex || '0', 16); } else { let dec = refNumber.slice(0, -1); - while (dec.charAt(0) === '0') - dec = dec.slice(1); + while (dec.charAt(0) === '0') dec = dec.slice(1); - if (dec.length > 7) - scanner.fatal("Numerical character reference too large: " + dec); + if (dec.length > 7) scanner.fatal(`Numerical character reference too large: ${dec}`); - codepoint = parseInt(dec || "0", 10); + codepoint = parseInt(dec || '0', 10); } - if (!isLegalCodepoint(codepoint)) - scanner.fatal("Illegal codepoint in numerical character reference: &#" + refNumber); + if (!isLegalCodepoint(codepoint)) scanner.fatal(`Illegal codepoint in numerical character reference: &#${refNumber}`); return { t: 'CharRef', - v: '&#' + refNumber, - cp: [codepoint] + v: `&#${refNumber}`, + cp: [codepoint], }; - } else if ((!afterAmp) // EOF + } + if ((!afterAmp) // EOF || (allowedChar && afterAmp === allowedChar) || ALLOWED_AFTER_AMP.test(afterAmp)) { return null; - } else { - const namedEntity = getNamedCharRef(scanner, inAttribute); - - if (namedEntity) { - return { - t: 'CharRef', - v: namedEntity, - cp: getCodePoints(namedEntity) - }; - } + } + const namedEntity = getNamedCharRef(scanner, inAttribute); - return null; + if (namedEntity) { + return { + t: 'CharRef', + v: namedEntity, + cp: getCodePoints(namedEntity), + }; } + + return null; } diff --git a/packages/html-tools/charref_tests.js b/packages/html-tools/charref_tests.js index e615c5eb5..e6d3cbf78 100644 --- a/packages/html-tools/charref_tests.js +++ b/packages/html-tools/charref_tests.js @@ -1,12 +1,11 @@ import { HTMLTools } from 'meteor/html-tools'; -const Scanner = HTMLTools.Scanner; -const getCharacterReference = HTMLTools.Parse.getCharacterReference; +const { Scanner } = HTMLTools; +const { getCharacterReference } = HTMLTools.Parse; -Tinytest.add("html-tools - entities", function (test) { +Tinytest.add('html-tools - entities', function (test) { const succeed = function (input, match, codepoints) { - if (typeof input === 'string') - input = {input: input}; + if (typeof input === 'string') input = { input }; // match arg is optional; codepoints is never a string if (typeof match !== 'string') { @@ -25,13 +24,12 @@ Tinytest.add("html-tools - entities", function (test) { function (x) { return (typeof x === 'string' ? x.charCodeAt(0) : x); - }) + }), }); }; const ignore = function (input) { - if (typeof input === 'string') - input = {input: input}; + if (typeof input === 'string') input = { input }; const scanner = new Scanner(input.input); const result = getCharacterReference(scanner, input.inAttribute, input.allowedChar); @@ -40,8 +38,7 @@ Tinytest.add("html-tools - entities", function (test) { }; const fatal = function (input, messageContains) { - if (typeof input === 'string') - input = {input: input}; + if (typeof input === 'string') input = { input }; const scanner = new Scanner(input.input); let error; @@ -51,8 +48,7 @@ Tinytest.add("html-tools - entities", function (test) { error = e; } test.isTrue(error); - if (error) - test.isTrue(messageContains && error.message.indexOf(messageContains) >= 0, error.message); + if (error) test.isTrue(messageContains && error.message.indexOf(messageContains) >= 0, error.message); }; ignore('a'); @@ -63,15 +59,15 @@ Tinytest.add("html-tools - entities", function (test) { fatal('&#', 'Invalid numerical character reference starting with &#'); ignore('&a'); fatal('&a;', 'Invalid character reference: &a;'); - ignore({input: '&"', allowedChar: '"'}); + ignore({ input: '&"', allowedChar: '"' }); ignore('&"'); succeed('>', ['>']); fatal('>', 'Character reference requires semicolon'); ignore('&aaa'); fatal('>a', 'Character reference requires semicolon'); - ignore({input: '>a', inAttribute: true}); - fatal({input: '>=', inAttribute: true}, 'Character reference requires semicolon: >'); + ignore({ input: '>a', inAttribute: true }); + fatal({ input: '>=', inAttribute: true }, 'Character reference requires semicolon: >'); succeed('>;', '>', ['>']); @@ -114,5 +110,4 @@ Tinytest.add("html-tools - entities", function (test) { fatal('􏿿', 'Illegal codepoint in numerical character reference'); fatal('􏿾', 'Illegal codepoint in numerical character reference'); succeed('􏿽', [0x10fffd]); - }); diff --git a/packages/html-tools/main.js b/packages/html-tools/main.js index eba95bf85..26673a78f 100644 --- a/packages/html-tools/main.js +++ b/packages/html-tools/main.js @@ -1,6 +1,6 @@ import { getCharacterReference } from './charref'; -import { asciiLowerCase, properCaseTagName, properCaseAttributeName} from "./utils"; -import { TemplateTag } from './templatetag' +import { asciiLowerCase, properCaseTagName, properCaseAttributeName } from './utils'; +import { TemplateTag } from './templatetag'; import { Scanner } from './scanner'; import { parseFragment, codePointToString, getContent, getRCData } from './parse'; import { getComment, getDoctype, getHTMLToken, getTagToken, TEMPLATE_TAG_POSITION } from './tokenize'; @@ -22,5 +22,5 @@ export const HTMLTools = { getDoctype, getHTMLToken, getTagToken, - } + }, }; diff --git a/packages/html-tools/package.js b/packages/html-tools/package.js index 83968e1a5..a96aa25a1 100644 --- a/packages/html-tools/package.js +++ b/packages/html-tools/package.js @@ -1,8 +1,8 @@ Package.describe({ name: 'html-tools', - summary: "Standards-compliant HTML tools", + summary: 'Standards-compliant HTML tools', version: '1.1.4', - git: 'https://github.com/meteor/blaze.git' + git: 'https://github.com/meteor/blaze.git', }); Package.onUse(function (api) { @@ -25,6 +25,6 @@ Package.onTest(function (api) { api.addFiles([ 'charref_tests.js', 'tokenize_tests.js', - 'parse_tests.js' + 'parse_tests.js', ]); }); diff --git a/packages/html-tools/parse.js b/packages/html-tools/parse.js index 0c71af22a..3e74ccd17 100644 --- a/packages/html-tools/parse.js +++ b/packages/html-tools/parse.js @@ -1,7 +1,7 @@ -import {HTML} from 'meteor/htmljs'; -import {Scanner} from './scanner'; -import {properCaseAttributeName} from './utils'; -import {getHTMLToken, isLookingAtEndTag} from './tokenize'; +import { HTML } from 'meteor/htmljs'; +import { Scanner } from './scanner'; +import { properCaseAttributeName } from './utils'; +import { getHTMLToken, isLookingAtEndTag } from './tokenize'; // Parse a "fragment" of HTML, up to the end of the input or a particular const getRawText = (scanner, tagName, shouldStopFunc) => { @@ -9,18 +9,17 @@ const getRawText = (scanner, tagName, shouldStopFunc) => { while (!scanner.isEOF()) { // break at appropriate end tag - if (tagName && isLookingAtEndTag(scanner, tagName)) - break; + if (tagName && isLookingAtEndTag(scanner, tagName)) break; - if (shouldStopFunc && shouldStopFunc(scanner)) - break; + if (shouldStopFunc && shouldStopFunc(scanner)) break; const token = getHTMLToken(scanner, 'rawtext'); - if (!token) + if (!token) { // tokenizer reached EOF on its own, e.g. while scanning // template comments like `{{! foo}}`. continue; + } if (token.t === 'Chars') { items = pushOrAppendString(items, token.v); @@ -32,19 +31,15 @@ const getRawText = (scanner, tagName, shouldStopFunc) => { } } - if (items.length === 0) - return null; - else if (items.length === 1) - return items[0]; + if (items.length === 0) return null; + if (items.length === 1) return items[0]; return items; }; const pushOrAppendString = (items, string) => { - if (items.length && typeof items[items.length - 1] === 'string') - items[items.length - 1] += string; - else - items.push(string); + if (items.length && typeof items[items.length - 1] === 'string') items[items.length - 1] += string; + else items.push(string); return items; }; @@ -56,10 +51,9 @@ const convertCharRef = token => { const codePoints = token.cp; let str = ''; - for (const item of codePoints) - str += codePointToString(item); + for (const item of codePoints) str += codePointToString(item); - return HTML.CharRef({html: token.v, str: str}); + return HTML.CharRef({ html: token.v, str }); }; // Input is always a dictionary (even if zero attributes) and each @@ -88,10 +82,9 @@ const parseAttrs = attrs => { } for (let i = 1; i < attrs.length; i++) { - let token = attrs[i]; + const token = attrs[i]; - if (token.t !== 'TemplateTag') - throw new Error("Expected TemplateTag token"); + if (token.t !== 'TemplateTag') throw new Error('Expected TemplateTag token'); result = (result || []); result.push(token.v); @@ -100,14 +93,13 @@ const parseAttrs = attrs => { return result; } - for (let k in attrs) { - if (!result) - result = {}; + for (const k in attrs) { + if (!result) result = {}; const inValue = attrs[k]; let outParts = []; - for (let token of inValue) { + for (const token of inValue) { switch (token.t) { case 'Chars': outParts = pushOrAppendString(outParts, token.v); @@ -134,22 +126,22 @@ const parseAttrs = attrs => { export function parseFragment(input, options) { let scanner; - if (typeof input === 'string') + if (typeof input === 'string') { scanner = new Scanner(input); - else + } else { // input can be a scanner. We'd better not have a different // value for the "getTemplateTag" option as when the scanner // was created, because we don't do anything special to reset // the value (which is attached to the scanner). scanner = input; + } // ``` // { getTemplateTag: function (scanner, templateTagPosition) { // if (templateTagPosition === HTMLTools.TEMPLATE_TAG_POSITION.ELEMENT) { // ... // ``` - if (options && options.getTemplateTag) - scanner.getTemplateTag = options.getTemplateTag; + if (options && options.getTemplateTag) scanner.getTemplateTag = options.getTemplateTag; // function (scanner) -> boolean const shouldStop = options && options.shouldStop; @@ -162,7 +154,7 @@ export function parseFragment(input, options) { } else if (options.textMode === HTML.TEXTMODE.RCDATA) { result = getRCData(scanner, null, shouldStop); } else { - throw new Error("Unsupported textMode: " + options.textMode); + throw new Error(`Unsupported textMode: ${options.textMode}`); } } else { result = getContent(scanner, shouldStop); @@ -189,15 +181,14 @@ export function parseFragment(input, options) { if (endTag && endTag.t === 'Tag' && endTag.isEnd) { const closeTag = endTag.n; const isVoidElement = HTML.isVoidElement(closeTag); - scanner.fatal("Unexpected HTML close tag" + (isVoidElement ? '. <' + endTag.n + '> should have no close tag.' : '')); + scanner.fatal(`Unexpected HTML close tag${isVoidElement ? `. <${endTag.n}> should have no close tag.` : ''}`); } scanner.pos = posBefore; // rewind, we'll continue parsing as usual // If no "shouldStop" option was provided, we should have consumed the whole // input. - if (!shouldStop) - scanner.fatal("Expected EOF"); + if (!shouldStop) scanner.fatal('Expected EOF'); } return result; @@ -211,8 +202,8 @@ export function parseFragment(input, options) { export function codePointToString(codePoint) { if (codePoint >= 0 && codePoint <= 0xD7FF || codePoint >= 0xE000 && codePoint <= 0xFFFF) { return String.fromCharCode(codePoint); - } else if (codePoint >= 0x10000 && codePoint <= 0x10FFFF) { - + } + if (codePoint >= 0x10000 && codePoint <= 0x10FFFF) { // we subtract 0x10000 from codePoint to get a 20-bit number // in the range 0..0xFFFF codePoint -= 0x10000; @@ -235,19 +226,19 @@ export function getContent(scanner, shouldStopFunc) { let items = []; while (!scanner.isEOF()) { - if (shouldStopFunc && shouldStopFunc(scanner)) - break; + if (shouldStopFunc && shouldStopFunc(scanner)) break; const posBefore = scanner.pos; const token = getHTMLToken(scanner); - if (!token) + if (!token) { // tokenizer reached EOF on its own, e.g. while scanning // template comments like `{{! foo}}`. continue; + } if (token.t === 'Doctype') { - scanner.fatal("Unexpected Doctype"); + scanner.fatal('Unexpected Doctype'); } else if (token.t === 'Chars') { items = pushOrAppendString(items, token.v); } else if (token.t === 'CharRef') { @@ -271,8 +262,7 @@ export function getContent(scanner, shouldStopFunc) { const isVoid = HTML.isVoidElement(tagName); if (token.isSelfClosing) { - if (!(isVoid || HTML.isKnownSVGElement(tagName) || tagName.indexOf(':') >= 0)) - scanner.fatal('Only certain elements like BR, HR, IMG, etc. (and foreign elements like SVG) are allowed to self-close'); + if (!(isVoid || HTML.isKnownSVGElement(tagName) || tagName.indexOf(':') >= 0)) scanner.fatal('Only certain elements like BR, HR, IMG, etc. (and foreign elements like SVG) are allowed to self-close'); } // result of parseAttrs may be null @@ -280,8 +270,7 @@ export function getContent(scanner, shouldStopFunc) { // arrays need to be wrapped in HTML.Attrs(...) // when used to construct tags - if (HTML.isArray(attrs)) - attrs = HTML.Attrs.apply(null, attrs); + if (HTML.isArray(attrs)) attrs = HTML.Attrs.apply(null, attrs); const tagFunc = HTML.getTag(tagName); @@ -296,13 +285,12 @@ export function getContent(scanner, shouldStopFunc) { let content = null; if (token.n === 'textarea') { - if (scanner.peek() === '\n') - scanner.pos++; + if (scanner.peek() === '\n') scanner.pos++; const textareaValue = getRCData(scanner, token.n, shouldStopFunc); if (textareaValue) { if (attrs instanceof HTML.Attrs) { attrs = HTML.Attrs.apply( - null, attrs.value.concat([{value: textareaValue}])); + null, attrs.value.concat([{ value: textareaValue }])); } else { attrs = (attrs || {}); attrs.value = textareaValue; @@ -316,17 +304,14 @@ export function getContent(scanner, shouldStopFunc) { const endTag = getHTMLToken(scanner); - if (!(endTag && endTag.t === 'Tag' && endTag.isEnd && endTag.n === tagName)) - scanner.fatal('Expected "' + tagName + '" end tag' + (looksLikeSelfClose ? ' -- if the "<' + token.n + ' />" tag was supposed to self-close, try adding a space before the "/"' : '')); + if (!(endTag && endTag.t === 'Tag' && endTag.isEnd && endTag.n === tagName)) scanner.fatal(`Expected "${tagName}" end tag${looksLikeSelfClose ? ` -- if the "<${token.n} />" tag was supposed to self-close, try adding a space before the "/"` : ''}`); // XXX support implied end tags in cases allowed by the spec // make `content` into an array suitable for applying tag constructor // as in `FOO.apply(null, content)`. - if (content == null) - content = []; - else if (!HTML.isArray(content)) - content = [content]; + if (content == null) content = []; + else if (!HTML.isArray(content)) content = [content]; items.push(HTML.getTag(tagName).apply( null, (attrs ? [attrs] : []).concat(content))); @@ -336,10 +321,8 @@ export function getContent(scanner, shouldStopFunc) { } } - if (items.length === 0) - return null; - else if (items.length === 1) - return items[0]; + if (items.length === 0) return null; + if (items.length === 1) return items[0]; return items; } @@ -350,18 +333,17 @@ export function getRCData(scanner, tagName, shouldStopFunc) { while (!scanner.isEOF()) { // break at appropriate end tag - if (tagName && isLookingAtEndTag(scanner, tagName)) - break; + if (tagName && isLookingAtEndTag(scanner, tagName)) break; - if (shouldStopFunc && shouldStopFunc(scanner)) - break; + if (shouldStopFunc && shouldStopFunc(scanner)) break; const token = getHTMLToken(scanner, 'rcdata'); - if (!token) + if (!token) { // tokenizer reached EOF on its own, e.g. while scanning // template comments like `{{! foo}}`. continue; + } switch (token.t) { case 'Chars': @@ -379,10 +361,8 @@ export function getRCData(scanner, tagName, shouldStopFunc) { } } - if (items.length === 0) - return null; - else if (items.length === 1) - return items[0]; + if (items.length === 0) return null; + if (items.length === 1) return items[0]; return items; } diff --git a/packages/html-tools/parse_tests.js b/packages/html-tools/parse_tests.js index 35da926c9..8742a676f 100644 --- a/packages/html-tools/parse_tests.js +++ b/packages/html-tools/parse_tests.js @@ -1,31 +1,29 @@ import { HTML } from 'meteor/htmljs'; import { HTMLTools } from 'meteor/html-tools'; -import { BlazeTools} from 'meteor/blaze-tools'; - -const Scanner = HTMLTools.Scanner; -const getContent = HTMLTools.Parse.getContent; - -const CharRef = HTML.CharRef; -const Comment = HTML.Comment; -const TemplateTag = HTMLTools.TemplateTag; -const Attrs = HTML.Attrs; - -const BR = HTML.BR; -const HR = HTML.HR; -const INPUT = HTML.INPUT; -const A = HTML.A; -const DIV = HTML.DIV; -const P = HTML.P; -const TEXTAREA = HTML.TEXTAREA; -const SCRIPT = HTML.SCRIPT; -const STYLE = HTML.STYLE; - -Tinytest.add("html-tools - parser getContent", function (test) { - +import { BlazeTools } from 'meteor/blaze-tools'; + +const { Scanner } = HTMLTools; +const { getContent } = HTMLTools.Parse; + +const { CharRef } = HTML; +const { Comment } = HTML; +const { TemplateTag } = HTMLTools; +const { Attrs } = HTML; + +const { BR } = HTML; +const { HR } = HTML; +const { INPUT } = HTML; +const { A } = HTML; +const { DIV } = HTML; +const { P } = HTML; +const { TEXTAREA } = HTML; +const { SCRIPT } = HTML; +const { STYLE } = HTML; + +Tinytest.add('html-tools - parser getContent', function (test) { const succeed = function (input, expected) { let endPos = input.indexOf('^^^'); - if (endPos < 0) - endPos = input.length; + if (endPos < 0) endPos = input.length; const scanner = new Scanner(input.replace('^^^', '')); const result = getContent(scanner); @@ -42,19 +40,18 @@ Tinytest.add("html-tools - parser getContent", function (test) { error = e; } test.isTrue(error); - if (messageContains) - test.isTrue(messageContains && error.message.indexOf(messageContains) >= 0, error.message); + if (messageContains) test.isTrue(messageContains && error.message.indexOf(messageContains) >= 0, error.message); }; succeed('', null); succeed('abc', 'abc'); succeed('abc^^^', 'abc'); - succeed('a<b', ['a', CharRef({html: '<', str: '<'}), 'b']); + succeed('a<b', ['a', CharRef({ html: '<', str: '<' }), 'b']); succeed('', Comment(' x ')); - succeed('∾̳', CharRef({html: '∾̳', str: '\u223e\u0333'})); - succeed('𝕫', CharRef({html: '𝕫', str: '\ud835\udd6b'})); - succeed('&&>&g>;', ['&&>&g', CharRef({html: '>', str: '>'}), ';']); + succeed('∾̳', CharRef({ html: '∾̳', str: '\u223e\u0333' })); + succeed('𝕫', CharRef({ html: '𝕫', str: '\ud835\udd6b' })); + succeed('&&>&g>;', ['&&>&g', CharRef({ html: '>', str: '>' }), ';']); // Can't have an unescaped `&` if followed by certain names like `gt` fatal('>&'); @@ -65,24 +62,24 @@ Tinytest.add("html-tools - parser getContent", function (test) { succeed('
', BR()); fatal('
', 'self-close'); - succeed('
', HR({id:'foo'})); - succeed('
', HR({id:[CharRef({html:'<', str:'<'}), + succeed('
', HR({ id: 'foo' })); + succeed('
', HR({ id: [CharRef({ html: '<', str: '<' }), 'foo', - CharRef({html:'>', str:'>'})]})); - succeed('', INPUT({selected: ''})); - succeed('', INPUT({selected: ''})); - succeed('', INPUT({selected: ''})); + CharRef({ html: '>', str: '>' })] })); + succeed('', INPUT({ selected: '' })); + succeed('', INPUT({ selected: '' })); + succeed('', INPUT({ selected: '' })); const FOO = HTML.getTag('foo'); - succeed('', FOO({bar: ''})); - succeed('', FOO({bar: '', baz: ''})); + succeed('', FOO({ bar: '' })); + succeed('', FOO({ bar: '', baz: '' })); succeed('', - FOO({bar: 'x', baz: '', qux: 'y', blah: ''})); + FOO({ bar: 'x', baz: '', qux: 'y', blah: '' })); succeed('', - FOO({bar: 'x', baz: '', qux: 'y', blah: ''})); + FOO({ bar: 'x', baz: '', qux: 'y', blah: '' })); fatal(''); fatal(''); fatal(''); - succeed('
', BR({x: '&&&'})); + succeed('
', BR({ x: '&&&' })); succeed('


', [BR(), BR(), BR()]); succeed('aaa
\nbbb
\nccc
', ['aaa', BR(), '\nbbb', BR(), '\nccc', BR()]); @@ -95,17 +92,17 @@ Tinytest.add("html-tools - parser getContent", function (test) { fatal('
Apple', - A({href: "http://www.apple.com/"}, 'Apple')); + A({ href: 'http://www.apple.com/' }, 'Apple')); (function () { - const A = HTML.getTag('a'); - const B = HTML.getTag('b'); - const C = HTML.getTag('c'); - const D = HTML.getTag('d'); + const a = HTML.getTag('a'); + const b = HTML.getTag('b'); + const c = HTML.getTag('c'); + const d = HTML.getTag('d'); succeed('12345678', - [A('1', B('2', C('3', D('4'), '5'), '6'), '7'), '8']); - })(); + [a('1', b('2', c('3', d('4'), '5'), '6'), '7'), '8']); + }()); fatal('hello there world'); @@ -115,84 +112,84 @@ Tinytest.add("html-tools - parser getContent", function (test) { fatal('Foo'); fatal('Foo'); - succeed('', TEXTAREA({value: "asdf"})); - succeed('', TEXTAREA({x: "y", value: "asdf"})); - succeed('', TEXTAREA({value: "

"})); + succeed('', TEXTAREA({ value: 'asdf' })); + succeed('', TEXTAREA({ x: 'y', value: 'asdf' })); + succeed('', TEXTAREA({ value: '

' })); succeed('', - TEXTAREA({value: ["a", CharRef({html: '&', str: '&'}), "b"]})); - succeed('', TEXTAREA({value: "', TEXTAREA({ value: '\n', TEXTAREA()); - succeed('', TEXTAREA({value: "asdf"})); - succeed('', TEXTAREA({value: "\nasdf"})); - succeed('', TEXTAREA({value: "\n"})); - succeed('', TEXTAREA({value: "asdf\n"})); - succeed('', TEXTAREA({value: ""})); - succeed('', TEXTAREA({value: "asdf"})); + succeed('', TEXTAREA({ value: 'asdf' })); + succeed('', TEXTAREA({ value: '\nasdf' })); + succeed('', TEXTAREA({ value: '\n' })); + succeed('', TEXTAREA({ value: 'asdf\n' })); + succeed('', TEXTAREA({ value: '' })); + succeed('', TEXTAREA({ value: 'asdf' })); fatal(''); - succeed('', TEXTAREA({value: "&"})); + succeed('', TEXTAREA({ value: '&' })); succeed('asdf', - [TEXTAREA({value: "x

', [DIV("x"), TEXTAREA()]); + succeed('
x
', [DIV('x'), TEXTAREA()]); // CR/LF behavior - succeed('', BR({x:''})); - succeed('', BR({x:''})); - succeed('
', BR({x:'y'})); - succeed('
', BR({x:'y'})); - succeed('
', BR({x:'y'})); - succeed('
', BR({x:'y'})); - succeed('
', BR({x:'y'})); + succeed('', BR({ x: '' })); + succeed('', BR({ x: '' })); + succeed('
', BR({ x: 'y' })); + succeed('
', BR({ x: 'y' })); + succeed('
', BR({ x: 'y' })); + succeed('
', BR({ x: 'y' })); + succeed('
', BR({ x: 'y' })); succeed('', Comment('\n')); succeed('', Comment('\n')); - succeed('', TEXTAREA({value: 'a\nb\nc'})); - succeed('', TEXTAREA({value: 'a\nb\nc'})); - succeed('
', BR({x:'\n\n'})); - succeed('
', BR({x:'\n\n'})); - succeed('
', BR({x:'y'})); + succeed('', TEXTAREA({ value: 'a\nb\nc' })); + succeed('', TEXTAREA({ value: 'a\nb\nc' })); + succeed('
', BR({ x: '\n\n' })); + succeed('
', BR({ x: '\n\n' })); + succeed('
', BR({ x: 'y' })); fatal('
'); - succeed('',SCRIPT('const x="
";')); - succeed('',SCRIPT('const x=1 && 0;')); - - succeed('', SCRIPT("asdf")); - succeed('', SCRIPT({x: "y"}, "asdf")); - succeed('', SCRIPT("

")); - succeed('', SCRIPT("a&b")); - succeed('', SCRIPT("\n', SCRIPT("\n")); - succeed('', SCRIPT("")); - succeed('', SCRIPT("asdf")); + succeed('', SCRIPT('const x="

";')); + succeed('', SCRIPT('const x=1 && 0;')); + + succeed('', SCRIPT('asdf')); + succeed('', SCRIPT({ x: 'y' }, 'asdf')); + succeed('', SCRIPT('

')); + succeed('', SCRIPT('a&b')); + succeed('', SCRIPT('\n', SCRIPT('\n')); + succeed('', SCRIPT('')); + succeed('', SCRIPT('asdf')); fatal('', SCRIPT("&davidgreenspan;")); - succeed('', SCRIPT("&")); + succeed('', SCRIPT('&davidgreenspan;')); + succeed('', SCRIPT('&')); succeed('asdf', - [SCRIPT("asdf', STYLE("asdf")); - succeed('', STYLE({x: "y"}, "asdf")); - succeed('', STYLE("

")); - succeed('', STYLE("a&b")); - succeed('', STYLE("\n', STYLE("\n")); - succeed('', STYLE("")); - succeed('', STYLE("asdf")); + [SCRIPT('asdf', STYLE('asdf')); + succeed('', STYLE({ x: 'y' }, 'asdf')); + succeed('', STYLE('

')); + succeed('', STYLE('a&b')); + succeed('', STYLE('\n', STYLE('\n')); + succeed('', STYLE('')); + succeed('', STYLE('asdf')); fatal('', STYLE("&davidgreenspan;")); - succeed('', STYLE("&")); + succeed('', STYLE('&davidgreenspan;')); + succeed('', STYLE('&')); succeed('asdf', - [STYLE("

Hello

")), - BlazeTools.toJS(DIV(P({id:'foo'}, 'Hello')))); +Tinytest.add('html-tools - parseFragment', function (test) { + test.equal(BlazeTools.toJS(HTMLTools.parseFragment('

Hello

')), + BlazeTools.toJS(DIV(P({ id: 'foo' }, 'Hello')))); ['asdf
', '{{!foo}}
', '{{!foo}}
', 'asdf', '{{!foo}}', '{{!foo}} '].forEach(function (badFrag) { @@ -207,7 +204,7 @@ Tinytest.add("html-tools - parseFragment", function (test) { test.equal(p.attrs, null); test.isTrue(p instanceof HTML.Tag); test.equal(p.children.length, 0); - })(); + }()); (function () { const p = HTMLTools.parseFragment('

x

'); @@ -216,7 +213,7 @@ Tinytest.add("html-tools - parseFragment", function (test) { test.isTrue(p instanceof HTML.Tag); test.equal(p.children.length, 1); test.equal(p.children[0], 'x'); - })(); + }()); (function () { const p = HTMLTools.parseFragment('

xA

'); @@ -229,7 +226,7 @@ Tinytest.add("html-tools - parseFragment", function (test) { test.isTrue(p.children[1] instanceof HTML.CharRef); test.equal(p.children[1].html, 'A'); test.equal(p.children[1].str, 'A'); - })(); + }()); (function () { const pp = HTMLTools.parseFragment('

x

y

'); @@ -247,21 +244,20 @@ Tinytest.add("html-tools - parseFragment", function (test) { test.isTrue(pp[1] instanceof HTML.Tag); test.equal(pp[1].children.length, 1); test.equal(pp[1].children[0], 'y'); - })(); + }()); const scanner = new Scanner('asdf'); scanner.pos = 1; test.equal(HTMLTools.parseFragment(scanner), 'sdf'); test.throws(function () { - const scanner = new Scanner('asdf

'); - scanner.pos = 1; - HTMLTools.parseFragment(scanner); + const scannerTest = new Scanner('asdf

'); + scannerTest.pos = 1; + HTMLTools.parseFragment(scannerTest); }); }); -Tinytest.add("html-tools - getTemplateTag", function (test) { - +Tinytest.add('html-tools - getTemplateTag', function (test) { // match a simple tag consisting of `{{`, an optional `!`, one // or more ASCII letters, spaces or html tags, and a closing `}}`. const mustache = /^\{\{(!?[a-zA-Z 0-9]+)\}\}/; @@ -272,26 +268,22 @@ Tinytest.add("html-tools - getTemplateTag", function (test) { // be anything we want. const getTemplateTag = function (scanner, position) { if (!(scanner.peek() === '{' && // one-char peek is just an optimization - scanner.rest().slice(0, 2) === '{{')) - return null; + scanner.rest().slice(0, 2) === '{{')) return null; const match = mustache.exec(scanner.rest()); - if (!match) - scanner.fatal("Bad mustache"); + if (!match) scanner.fatal('Bad mustache'); scanner.pos += match[0].length; - if (match[1].charAt(0) === '!') - return null; // `{{!foo}}` is like a comment + if (match[1].charAt(0) === '!') return null; // `{{!foo}}` is like a comment - return TemplateTag({stuff: match[1]}); + return TemplateTag({ stuff: match[1] }); }; const succeed = function (input, expected) { let endPos = input.indexOf('^^^'); - if (endPos < 0) - endPos = input.length; + if (endPos < 0) endPos = input.length; const scanner = new Scanner(input.replace('^^^', '')); scanner.getTemplateTag = getTemplateTag; @@ -315,21 +307,20 @@ Tinytest.add("html-tools - getTemplateTag", function (test) { error = e; } test.isTrue(error); - if (messageContains) - test.isTrue(messageContains && error.message.indexOf(messageContains) >= 0, error.message); + if (messageContains) test.isTrue(messageContains && error.message.indexOf(messageContains) >= 0, error.message); }; - succeed('{{foo}}', TemplateTag({stuff: 'foo'})); + succeed('{{foo}}', TemplateTag({ stuff: 'foo' })); succeed('{{foo}}', - A({href: "http://www.apple.com/"}, TemplateTag({stuff: 'foo'}))); + A({ href: 'http://www.apple.com/' }, TemplateTag({ stuff: 'foo' }))); // tags not parsed in comments - succeed('', Comment("{{foo}}")); - succeed('', Comment("{{foo")); + succeed('', Comment('{{foo}}')); + succeed('', Comment('{{foo')); - succeed('&am{{foo}}p;', ['&am', TemplateTag({stuff: 'foo'}), 'p;']); + succeed('&am{{foo}}p;', ['&am', TemplateTag({ stuff: 'foo' }), 'p;']); // can't start a mustache and not finish it fatal('{{foo'); @@ -342,58 +333,58 @@ Tinytest.add("html-tools - getTemplateTag", function (test) { // single curly brace is no biggie succeed('a{b', 'a{b'); - succeed('
', BR({x:'{'})); - succeed('
', BR({x:'{foo}'})); + succeed('
', BR({ x: '{' })); + succeed('
', BR({ x: '{foo}' })); - succeed('
', BR(Attrs(TemplateTag({stuff: 'x'})))); - succeed('
', BR(Attrs(TemplateTag({stuff: 'x'}), - TemplateTag({stuff: 'y'})))); - succeed('
', BR(Attrs({y: ''}, TemplateTag({stuff: 'x'})))); + succeed('
', BR(Attrs(TemplateTag({ stuff: 'x' })))); + succeed('
', BR(Attrs(TemplateTag({ stuff: 'x' }), + TemplateTag({ stuff: 'y' })))); + succeed('
', BR(Attrs({ y: '' }, TemplateTag({ stuff: 'x' })))); fatal('
'); fatal('
'); - succeed('
', BR({x: TemplateTag({stuff: 'y'}), z: ''})); - succeed('
', BR({x: ['y', TemplateTag({stuff: 'z'}), 'w']})); - succeed('
', BR({x: ['y', TemplateTag({stuff: 'z'}), 'w']})); - succeed('
', BR({x: ['y ', TemplateTag({stuff: 'z'}), - TemplateTag({stuff: 'w'}), ' v']})); + succeed('
', BR({ x: TemplateTag({ stuff: 'y' }), z: '' })); + succeed('
', BR({ x: ['y', TemplateTag({ stuff: 'z' }), 'w'] })); + succeed('
', BR({ x: ['y', TemplateTag({ stuff: 'z' }), 'w'] })); + succeed('
', BR({ x: ['y ', TemplateTag({ stuff: 'z' }), + TemplateTag({ stuff: 'w' }), ' v'] })); // Slash is parsed as part of unquoted attribute! This is consistent with // the HTML tokenization spec. It seems odd for some inputs but is probably // for cases like `` or ``. - succeed('
', BR({x: [TemplateTag({stuff: 'y'}), '/']})); - succeed('
', BR({x: [TemplateTag({stuff: 'z'}), - TemplateTag({stuff: 'w'})]})); + succeed('
', BR({ x: [TemplateTag({ stuff: 'y' }), '/'] })); + succeed('
', BR({ x: [TemplateTag({ stuff: 'z' }), + TemplateTag({ stuff: 'w' })] })); fatal('
'); - succeed('
', BR({x:CharRef({html: '&', str: '&'})})); + succeed('
', BR({ x: CharRef({ html: '&', str: '&' }) })); // check tokenization of stache tags with spaces - succeed('
', BR(Attrs(TemplateTag({stuff: 'x 1'})))); - succeed('
', BR(Attrs(TemplateTag({stuff: 'x 1'}), - TemplateTag({stuff: 'y 2'})))); - succeed('
', BR(Attrs({y:''}, TemplateTag({stuff: 'x 1'})))); + succeed('
', BR(Attrs(TemplateTag({ stuff: 'x 1' })))); + succeed('
', BR(Attrs(TemplateTag({ stuff: 'x 1' }), + TemplateTag({ stuff: 'y 2' })))); + succeed('
', BR(Attrs({ y: '' }, TemplateTag({ stuff: 'x 1' })))); fatal('
'); fatal('
'); - succeed('
', BR({x: TemplateTag({stuff: 'y 2'}), z: ''})); - succeed('
', BR({x: ['y', TemplateTag({stuff: 'z 3'}), 'w']})); - succeed('
', BR({x: ['y', TemplateTag({stuff: 'z 3'}), 'w']})); - succeed('
', BR({x: ['y ', TemplateTag({stuff: 'z 3'}), - TemplateTag({stuff: 'w 4'}), ' v']})); - succeed('
', BR({x: [TemplateTag({stuff: 'y 2'}), '/']})); - succeed('
', BR({x: [TemplateTag({stuff: 'z 3'}), - TemplateTag({stuff: 'w 4'})]})); + succeed('
', BR({ x: TemplateTag({ stuff: 'y 2' }), z: '' })); + succeed('
', BR({ x: ['y', TemplateTag({ stuff: 'z 3' }), 'w'] })); + succeed('
', BR({ x: ['y', TemplateTag({ stuff: 'z 3' }), 'w'] })); + succeed('
', BR({ x: ['y ', TemplateTag({ stuff: 'z 3' }), + TemplateTag({ stuff: 'w 4' }), ' v'] })); + succeed('
', BR({ x: [TemplateTag({ stuff: 'y 2' }), '/'] })); + succeed('
', BR({ x: [TemplateTag({ stuff: 'z 3' }), + TemplateTag({ stuff: 'w 4' })] })); succeed('

', P()); - succeed('x{{foo}}{{bar}}y', ['x', TemplateTag({stuff: 'foo'}), - TemplateTag({stuff: 'bar'}), 'y']); + succeed('x{{foo}}{{bar}}y', ['x', TemplateTag({ stuff: 'foo' }), + TemplateTag({ stuff: 'bar' }), 'y']); succeed('x{{!foo}}{{!bar}}y', 'xy'); - succeed('x{{!foo}}{{bar}}y', ['x', TemplateTag({stuff: 'bar'}), 'y']); - succeed('x{{foo}}{{!bar}}y', ['x', TemplateTag({stuff: 'foo'}), 'y']); + succeed('x{{!foo}}{{bar}}y', ['x', TemplateTag({ stuff: 'bar' }), 'y']); + succeed('x{{foo}}{{!bar}}y', ['x', TemplateTag({ stuff: 'foo' }), 'y']); succeed('
{{!foo}}{{!bar}}
', DIV()); succeed('
{{!foo}}
{{!bar}}
', DIV(BR())); - succeed('
{{!foo}} {{!bar}}
', DIV(" ")); - succeed('
{{!foo}}
{{!bar}}
', DIV(" ", BR(), " ")); + succeed('
{{!foo}} {{!bar}}
', DIV(' ')); + succeed('
{{!foo}}
{{!bar}}
', DIV(' ', BR(), ' ')); succeed('{{!
}}', null); succeed('{{!
}}', null); @@ -401,7 +392,6 @@ Tinytest.add("html-tools - getTemplateTag", function (test) { succeed('{{!foo}}', null); succeed('', - TEXTAREA(Attrs({x:"1"}, TemplateTag({stuff: 'a'}), - TemplateTag({stuff: 'b'})))); - + TEXTAREA(Attrs({ x: '1' }, TemplateTag({ stuff: 'a' }), + TemplateTag({ stuff: 'b' })))); }); diff --git a/packages/html-tools/scanner.js b/packages/html-tools/scanner.js index a13e49aa7..07ce48fa9 100644 --- a/packages/html-tools/scanner.js +++ b/packages/html-tools/scanner.js @@ -22,27 +22,25 @@ Scanner.prototype.isEOF = function () { return this.pos >= this.input.length; }; -Scanner.prototype.fatal = function (msg = "Parse error") { +Scanner.prototype.fatal = function (msg = 'Parse error') { const CONTEXT_AMOUNT = 20; - const input = this.input; - const pos = this.pos; + const { input } = this; + const { pos } = this; let pastInput = input.substring(pos - CONTEXT_AMOUNT - 1, pos); - if (pastInput.length > CONTEXT_AMOUNT) - pastInput = '...' + pastInput.substring(-CONTEXT_AMOUNT); + if (pastInput.length > CONTEXT_AMOUNT) pastInput = `...${pastInput.substring(-CONTEXT_AMOUNT)}`; let upcomingInput = input.substring(pos, pos + CONTEXT_AMOUNT + 1); - if (upcomingInput.length > CONTEXT_AMOUNT) - upcomingInput = upcomingInput.substring(0, CONTEXT_AMOUNT) + '...'; + if (upcomingInput.length > CONTEXT_AMOUNT) upcomingInput = `${upcomingInput.substring(0, CONTEXT_AMOUNT)}...`; - const positionDisplay = ((pastInput + upcomingInput) - .replace(/\n/g, ' ') + '\n' + (new Array(pastInput.length + 1) - .join(' ')) + "^"); + const positionDisplay = (`${(pastInput + upcomingInput) + .replace(/\n/g, ' ')}\n${new Array(pastInput.length + 1) + .join(' ')}^`); - const e = new Error(msg + "\n" + positionDisplay); + const e = new Error(`${msg}\n${positionDisplay}`); e.offset = pos; const allPastInput = input.substring(0, pos); @@ -75,8 +73,7 @@ export function makeRegexMatcher(regex) { return (scanner) => { const match = regex.exec(scanner.rest()); - if (! match) - return null; + if (!match) return null; scanner.pos += match[0].length; return match[1] || match[0]; diff --git a/packages/html-tools/templatetag.js b/packages/html-tools/templatetag.js index 0db3909b4..4950f2e05 100644 --- a/packages/html-tools/templatetag.js +++ b/packages/html-tools/templatetag.js @@ -3,25 +3,24 @@ // tgt. const _hasOwnProperty = Object.prototype.hasOwnProperty; const _assign = function (tgt, src) { - for (let k in src) { - if (_hasOwnProperty.call(src, k)) - tgt[k] = src[k]; + for (const k in src) { + if (_hasOwnProperty.call(src, k)) tgt[k] = src[k]; } return tgt; }; -export function TemplateTag (props) { - if (! (this instanceof TemplateTag)) +export function TemplateTag(props) { + if (!(this instanceof TemplateTag)) { // called without `new` - return new TemplateTag; + return new TemplateTag(); + } - if (props) - _assign(this, props); + if (props) _assign(this, props); } _assign(TemplateTag.prototype, { constructorName: 'TemplateTag', - toJS (visitor) { + toJS(visitor) { return visitor.generateCall(this.constructorName, _assign({}, this)); - } + }, }); diff --git a/packages/html-tools/tokenize.js b/packages/html-tools/tokenize.js index ddb7b6cb6..c3c5fb96d 100644 --- a/packages/html-tools/tokenize.js +++ b/packages/html-tools/tokenize.js @@ -1,7 +1,7 @@ -import {asciiLowerCase, properCaseTagName, properCaseAttributeName} from './utils'; -import {TemplateTag} from './templatetag'; -import {getCharacterReference} from './charref'; -import {makeRegexMatcher} from './scanner'; +import { asciiLowerCase, properCaseTagName, properCaseAttributeName } from './utils'; +import { TemplateTag } from './templatetag'; +import { getCharacterReference } from './charref'; +import { makeRegexMatcher } from './scanner'; // Token types: // @@ -60,63 +60,54 @@ const convertCRLF = function (str) { }; export function getComment(scanner) { - if (scanner.rest().slice(0, 4) !== ''); - if (closePos < 0) - scanner.fatal("Unclosed HTML comment"); + if (closePos < 0) scanner.fatal('Unclosed HTML comment'); const commentContents = rest.slice(0, closePos); - if (commentContents.slice(-1) === '-') - scanner.fatal("HTML comment must end at first `--`"); - if (commentContents.indexOf("--") >= 0) - scanner.fatal("HTML comment cannot contain `--` anywhere"); - if (commentContents.indexOf('\u0000') >= 0) - scanner.fatal("HTML comment cannot contain NULL"); + if (commentContents.slice(-1) === '-') scanner.fatal('HTML comment must end at first `--`'); + if (commentContents.indexOf('--') >= 0) scanner.fatal('HTML comment cannot contain `--` anywhere'); + if (commentContents.indexOf('\u0000') >= 0) scanner.fatal('HTML comment cannot contain NULL'); scanner.pos += closePos + 3; return { t: 'Comment', - v: convertCRLF(commentContents) + v: convertCRLF(commentContents), }; } const skipSpaces = function (scanner) { - while (HTML_SPACE.test(scanner.peek())) - scanner.pos++; + while (HTML_SPACE.test(scanner.peek())) scanner.pos++; }; const requireSpaces = function (scanner) { - if (!HTML_SPACE.test(scanner.peek())) - scanner.fatal("Expected space"); + if (!HTML_SPACE.test(scanner.peek())) scanner.fatal('Expected space'); skipSpaces(scanner); }; const getDoctypeQuotedString = function (scanner) { const quote = scanner.peek(); - if (!(quote === '"' || quote === "'")) - scanner.fatal("Expected single or double quote in DOCTYPE"); + if (!(quote === '"' || quote === "'")) scanner.fatal('Expected single or double quote in DOCTYPE'); scanner.pos++; - if (scanner.peek() === quote) + if (scanner.peek() === quote) { // prevent a falsy return value (empty string) - scanner.fatal("Malformed DOCTYPE"); + scanner.fatal('Malformed DOCTYPE'); + } let str = ''; let ch; while ((ch = scanner.peek()), ch !== quote) { - if ((!ch) || (ch === '\u0000') || (ch === '>')) - scanner.fatal("Malformed DOCTYPE"); + if ((!ch) || (ch === '\u0000') || (ch === '>')) scanner.fatal('Malformed DOCTYPE'); str += ch; scanner.pos++; } @@ -130,22 +121,19 @@ const getDoctypeQuotedString = function (scanner) { // // If `getDocType` sees "') || (ch === '\u0000')) - scanner.fatal('Malformed DOCTYPE'); + if ((!ch) || (ch === '>') || (ch === '\u0000')) scanner.fatal('Malformed DOCTYPE'); let name = ch; scanner.pos++; while ((ch = scanner.peek()), !(HTML_SPACE.test(ch) || ch === '>')) { - if ((!ch) || (ch === '\u0000')) - scanner.fatal('Malformed DOCTYPE'); + if ((!ch) || (ch === '\u0000')) scanner.fatal('Malformed DOCTYPE'); name += ch; scanner.pos++; } @@ -169,8 +157,7 @@ export function getDoctype(scanner) { requireSpaces(scanner); systemId = getDoctypeQuotedString(scanner); skipSpaces(scanner); - if (scanner.peek() !== '>') - scanner.fatal("Malformed DOCTYPE"); + if (scanner.peek() !== '>') scanner.fatal('Malformed DOCTYPE'); } else if (publicOrSystem === 'public') { scanner.pos += 6; requireSpaces(scanner); @@ -180,12 +167,11 @@ export function getDoctype(scanner) { if (scanner.peek() !== '>') { systemId = getDoctypeQuotedString(scanner); skipSpaces(scanner); - if (scanner.peek() !== '>') - scanner.fatal("Malformed DOCTYPE"); + if (scanner.peek() !== '>') scanner.fatal('Malformed DOCTYPE'); } } } else { - scanner.fatal("Expected PUBLIC or SYSTEM in DOCTYPE"); + scanner.fatal('Expected PUBLIC or SYSTEM in DOCTYPE'); } } @@ -194,13 +180,11 @@ export function getDoctype(scanner) { const result = { t: 'Doctype', v: scanner.input.slice(start, scanner.pos), - name: name + name, }; - if (systemId) - result.systemId = systemId; - if (publicId) - result.publicId = publicId; + if (systemId) result.systemId = systemId; + if (publicId) result.publicId = publicId; return result; } @@ -210,8 +194,7 @@ export function getDoctype(scanner) { const getChars = makeRegexMatcher(/^[^&<\u0000][^&<\u0000{]*/); const assertIsTemplateTag = function (x) { - if (!(x instanceof TemplateTag)) - throw new Error("Expected an instance of HTMLTools.TemplateTag"); + if (!(x instanceof TemplateTag)) throw new Error('Expected an instance of HTMLTools.TemplateTag'); return x; }; @@ -239,37 +222,33 @@ export function getHTMLToken(scanner, dataMode) { (dataMode === 'rawtext' ? TEMPLATE_TAG_POSITION.IN_RAWTEXT : TEMPLATE_TAG_POSITION.ELEMENT))); - if (result) - return {t: 'TemplateTag', v: assertIsTemplateTag(result)}; - else if (scanner.pos > lastPos) - return null; + if (result) return { t: 'TemplateTag', v: assertIsTemplateTag(result) }; + if (scanner.pos > lastPos) return null; } const chars = getChars(scanner); - if (chars) + if (chars) { return { t: 'Chars', - v: convertCRLF(chars) + v: convertCRLF(chars), }; + } const ch = scanner.peek(); - if (!ch) - return null; // EOF + if (!ch) return null; // EOF - if (ch === '\u0000') - scanner.fatal("Illegal NULL character"); + if (ch === '\u0000') scanner.fatal('Illegal NULL character'); if (ch === '&') { if (dataMode !== 'rawtext') { const charRef = getCharacterReference(scanner); - if (charRef) - return charRef; + if (charRef) return charRef; } scanner.pos++; return { t: 'Chars', - v: '&' + v: '&', }; } @@ -280,7 +259,7 @@ export function getHTMLToken(scanner, dataMode) { scanner.pos++; return { t: 'Chars', - v: '<' + v: '<', }; } @@ -288,10 +267,9 @@ export function getHTMLToken(scanner, dataMode) { // `getComment` takes `")), + test.equal(getComment(new Scanner('')), { t: 'Comment', v: ' hello ' }); - ignore(""); - ignore("'); + ignore('', ' hello - - world '); }); -Tinytest.add("html-tools - doctype", function (test) { +Tinytest.add('html-tools - doctype', function (test) { const succeed = function (input, expectedProps) { const scanner = new Scanner(input); const result = getDoctype(scanner); @@ -105,11 +103,10 @@ Tinytest.add("html-tools - doctype", function (test) { error = e; } test.isTrue(error); - if (messageContains) - test.isTrue(error.message.indexOf(messageContains) >= 0, error.message); + if (messageContains) test.isTrue(error.message.indexOf(messageContains) >= 0, error.message); }; - test.equal(getDoctype(new Scanner("x")), + test.equal(getDoctype(new Scanner('x')), { t: 'Doctype', v: '', name: 'html' }); @@ -133,12 +130,12 @@ Tinytest.add("html-tools - doctype", function (test) { publicId: '-//W3C//DTD HTML 4.0//EN', systemId: 'http://www.w3.org/TR/html4/strict.dtd' }); - succeed('', {name: 'html'}); - succeed('', {name: 'html'}); - succeed('', {name: 'html'}); - succeed('', {name: 'html'}); - succeed('', {name: 'html'}); - succeed('', {name: 'html'}); + succeed('', { name: 'html' }); + succeed('', { name: 'html' }); + succeed('', { name: 'html' }); + succeed('', { name: 'html' }); + succeed('', { name: 'html' }); + succeed('', { name: 'html' }); fatal('', 'Malformed DOCTYPE'); fatal('', {name: 'html', systemId: 'about:legacy-compat'}); - succeed('', {name: 'html', systemId: 'about:legacy-compat'}); - succeed("", {name: 'html', systemId: 'about:legacy-compat'}); - succeed("", {name: 'html', systemId: 'about:legacy-compat'}); - succeed('', {name: 'html', systemId: 'about:legacy-compat'}); + succeed('', { name: 'html', systemId: 'about:legacy-compat' }); + succeed('', { name: 'html', systemId: 'about:legacy-compat' }); + succeed("", { name: 'html', systemId: 'about:legacy-compat' }); + succeed("", { name: 'html', systemId: 'about:legacy-compat' }); + succeed('', { name: 'html', systemId: 'about:legacy-compat' }); fatal('', 'Expected PUBLIC or SYSTEM'); fatal('', 'Expected space'); @@ -172,26 +169,26 @@ Tinytest.add("html-tools - doctype", function (test) { succeed('', { name: 'html', - publicId: '-//W3C//DTD HTML 4.0//EN'}); + publicId: '-//W3C//DTD HTML 4.0//EN' }); succeed('', { name: 'html', - publicId: '-//W3C//DTD HTML 4.0//EN'}); + publicId: '-//W3C//DTD HTML 4.0//EN' }); succeed('', { name: 'html', publicId: '-//W3C//DTD HTML 4.0//EN', - systemId: 'http://www.w3.org/TR/REC-html40/strict.dtd'}); + systemId: 'http://www.w3.org/TR/REC-html40/strict.dtd' }); succeed('', { name: 'html', publicId: '-//W3C//DTD HTML 4.0//EN', - systemId: 'http://www.w3.org/TR/REC-html40/strict.dtd'}); + systemId: 'http://www.w3.org/TR/REC-html40/strict.dtd' }); succeed('', { name: 'html', publicId: '-//W3C//DTD HTML 4.0//EN', - systemId: 'http://www.w3.org/TR/REC-html40/strict.dtd'}); + systemId: 'http://www.w3.org/TR/REC-html40/strict.dtd' }); succeed('', { name: 'html', publicId: '-//W3C//DTD HTML 4.0//EN', - systemId: 'http://www.w3.org/TR/REC-html40/strict.dtd'}); + systemId: 'http://www.w3.org/TR/REC-html40/strict.dtd' }); fatal(''); }); -Tinytest.add("html-tools - tokenize", function (test) { - +Tinytest.add('html-tools - tokenize', function (test) { const fatal = function (input, messageContains) { let error; try { @@ -212,29 +208,28 @@ Tinytest.add("html-tools - tokenize", function (test) { error = e; } test.isTrue(error); - if (messageContains) - test.isTrue(error.message.indexOf(messageContains) >= 0, error.message); + if (messageContains) test.isTrue(error.message.indexOf(messageContains) >= 0, error.message); }; test.equal(tokenize(''), []); - test.equal(tokenize('abc'), [{t: 'Chars', v: 'abc'}]); - test.equal(tokenize('&'), [{t: 'Chars', v: '&'}]); - test.equal(tokenize('&'), [{t: 'CharRef', v: '&', cp: [38]}]); + test.equal(tokenize('abc'), [{ t: 'Chars', v: 'abc' }]); + test.equal(tokenize('&'), [{ t: 'Chars', v: '&' }]); + test.equal(tokenize('&'), [{ t: 'CharRef', v: '&', cp: [38] }]); test.equal(tokenize('ok fine'), - [{t: 'Chars', v: 'ok'}, - {t: 'CharRef', v: ' ', cp: [32]}, - {t: 'Chars', v: 'fine'}]); + [{ t: 'Chars', v: 'ok' }, + { t: 'CharRef', v: ' ', cp: [32] }, + { t: 'Chars', v: 'fine' }]); test.equal(tokenize('ac'), - [{t: 'Chars', - v: 'a'}, - {t: 'Comment', - v: 'b'}, - {t: 'Chars', - v: 'c'}]); + [{ t: 'Chars', + v: 'a' }, + { t: 'Comment', + v: 'b' }, + { t: 'Chars', + v: 'c' }]); - test.equal(tokenize('
'), [{t: 'Tag', n: 'a'}]); + test.equal(tokenize(''), [{ t: 'Tag', n: 'a' }]); fatal('<'); fatal(''), - [{t: 'Tag', n: 'x', - attrs: { a: [{t: 'Chars', v: 'b'}] }, - isSelfClosing: true}]); + [{ t: 'Tag', +n: 'x', + attrs: { a: [{ t: 'Chars', v: 'b' }] }, + isSelfClosing: true }]); test.equal(tokenize('X'), - [{t: 'Tag', n: 'a'}, - {t: 'Chars', v: 'X'}, - {t: 'Tag', n: 'a', isEnd: true}]); + [{ t: 'Tag', n: 'a' }, + { t: 'Chars', v: 'X' }, + { t: 'Tag', n: 'a', isEnd: true }]); fatal(''); // duplicate attribute value test.equal(tokenize(''), - [{t: 'Tag', n: 'a', attrs: { b: [] }}]); + [{ t: 'Tag', n: 'a', attrs: { b: [] } }]); fatal('< a>'); fatal('< /a>'); fatal(''); // Slash does not end an unquoted attribute, interestingly test.equal(tokenize(''), - [{t: 'Tag', n: 'a', attrs: { b: [{t: 'Chars', v: '/'}] }}]); + [{ t: 'Tag', n: 'a', attrs: { b: [{ t: 'Chars', v: '/' }] } }]); test.equal(tokenize(''), - [{t: 'Tag', n: 'a', - attrs: { b: [{t: 'Chars', v: 'c'}], - d: [{t: 'Chars', v: 'e'}], - f: [{t: 'Chars', v: 'g'}], - h: [] }}]); + [{ t: 'Tag', +n: 'a', + attrs: { b: [{ t: 'Chars', v: 'c' }], + d: [{ t: 'Chars', v: 'e' }], + f: [{ t: 'Chars', v: 'g' }], + h: [] } }]); fatal(''); fatal(''); fatal(''); - test.equal(tokenize(''), [{t: 'Tag', n: 'a', isSelfClosing: true}]); + test.equal(tokenize(''), [{ t: 'Tag', n: 'a', isSelfClosing: true }]); fatal(''); fatal(''); @@ -288,50 +285,55 @@ Tinytest.add("html-tools - tokenize", function (test) { fatal(''); test.equal(tokenize(''), - [{t: 'Tag', n: 'a#', - attrs: { b0: [{t: 'Chars', v: 'c@'}], - d1: [{t: 'Chars', v: 'e2'}], - 'f#': [{t: 'Chars', v: 'g '}], - h: [] }}]); + [{ t: 'Tag', +n: 'a#', + attrs: { b0: [{ t: 'Chars', v: 'c@' }], + d1: [{ t: 'Chars', v: 'e2' }], + 'f#': [{ t: 'Chars', v: 'g ' }], + h: [] } }]); test.equal(tokenize('
'), - [{t: 'Tag', n: 'div', attrs: { 'class': [] }}, - {t: 'Tag', n: 'div', isEnd: true}]); + [{ t: 'Tag', n: 'div', attrs: { class: [] } }, + { t: 'Tag', n: 'div', isEnd: true }]); test.equal(tokenize('
'), - [{t: 'Tag', n: 'div', attrs: { 'class': [{t: 'Chars', v: '&'}] }}]); + [{ t: 'Tag', n: 'div', attrs: { class: [{ t: 'Chars', v: '&' }] } }]); test.equal(tokenize('
'), - [{t: 'Tag', n: 'div', attrs: { 'class': [{t: 'Chars', v: '&'}] }}]); + [{ t: 'Tag', n: 'div', attrs: { class: [{ t: 'Chars', v: '&' }] } }]); test.equal(tokenize('
'), - [{t: 'Tag', n: 'div', attrs: { 'class': [{t: 'CharRef', v: '&', cp: [38]}] }}]); + [{ t: 'Tag', n: 'div', attrs: { class: [{ t: 'CharRef', v: '&', cp: [38] }] } }]); test.equal(tokenize('
'), - [{t: 'Tag', n: 'div', attrs: { 'class': [ - {t: 'Chars', v: 'aa&'}, - {t: 'CharRef', v: '𝕫', cp: [120171]}, - {t: 'CharRef', v: '∾̳', cp: [8766, 819]}, - {t: 'Chars', v: '&bb'} - ] }}]); + [{ t: 'Tag', +n: 'div', +attrs: { class: [ + { t: 'Chars', v: 'aa&' }, + { t: 'CharRef', v: '𝕫', cp: [120171] }, + { t: 'CharRef', v: '∾̳', cp: [8766, 819] }, + { t: 'Chars', v: '&bb' }, + ] } }]); test.equal(tokenize('
'), - [{t: 'Tag', n: 'div', attrs: { 'class': [ - {t: 'Chars', v: 'aa &'}, - {t: 'CharRef', v: '𝕫', cp: [120171]}, - {t: 'CharRef', v: '∾̳', cp: [8766, 819]}, - {t: 'Chars', v: '& bb'} - ] }}]); + [{ t: 'Tag', +n: 'div', +attrs: { class: [ + { t: 'Chars', v: 'aa &' }, + { t: 'CharRef', v: '𝕫', cp: [120171] }, + { t: 'CharRef', v: '∾̳', cp: [8766, 819] }, + { t: 'Chars', v: '& bb' }, + ] } }]); test.equal(tokenize(''), - [{t: 'Tag', n: 'a', attrs: { b: [{t: 'Chars', v: '\'`<>&'}] }}]); + [{ t: 'Tag', n: 'a', attrs: { b: [{ t: 'Chars', v: '\'`<>&' }] } }]); test.equal(tokenize('&\'>'), - [{t: 'Tag', n: 'a', attrs: { b: [{t: 'Chars', v: '"`<>&'}] }}]); + [{ t: 'Tag', n: 'a', attrs: { b: [{ t: 'Chars', v: '"`<>&' }] } }]); fatal('>'); fatal('>c'); test.equal(tokenize(''), - [{t: 'Tag', n: 'a', attrs: { b: [{t: 'Chars', v: '>c' }] }}]); + [{ t: 'Tag', n: 'a', attrs: { b: [{ t: 'Chars', v: '>c' }] } }]); test.equal(tokenize(''), - [{t: 'Tag', n: 'a', attrs: { b: [{t: 'Chars', v: '>c' }] }}]); + [{ t: 'Tag', n: 'a', attrs: { b: [{ t: 'Chars', v: '>c' }] } }]); fatal(''); fatal(''); fatal(''); diff --git a/packages/html-tools/utils.js b/packages/html-tools/utils.js index 81346a10a..a2e1247e5 100644 --- a/packages/html-tools/utils.js +++ b/packages/html-tools/utils.js @@ -13,7 +13,7 @@ const properAttributeCaseMap = (function (map) { map[asciiLowerCase(a)] = a; }); return map; -})({}); +}({})); const properTagCaseMap = (function (map) { const knownElements = HTML.knownElementNames; @@ -21,7 +21,7 @@ const properTagCaseMap = (function (map) { map[asciiLowerCase(a)] = a; }); return map; -})({}); +}({})); // Take a tag name in any case and make it the proper case for HTML. // diff --git a/packages/htmljs/html.js b/packages/htmljs/html.js index fb29cb464..4ec497c59 100644 --- a/packages/htmljs/html.js +++ b/packages/htmljs/html.js @@ -13,7 +13,7 @@ const makeTagConstructor = function (tagName) { // Work with or without `new`. If not called with `new`, // perform instantiation by recursively calling this constructor. // We can't pass varargs, so pass no args. - const instance = (this instanceof Tag) ? this : new HTMLTag; + const instance = (this instanceof Tag) ? this : new HTMLTag(); let i = 0; const attrs = args.length && args[0]; @@ -45,7 +45,7 @@ const makeTagConstructor = function (tagName) { return instance; }; - HTMLTag.prototype = new Tag; + HTMLTag.prototype = new Tag(); HTMLTag.prototype.constructor = HTMLTag; HTMLTag.prototype.tagName = tagName; @@ -58,7 +58,7 @@ export function Attrs(...args) { // Work with or without `new`. If not called with `new`, // perform instantiation by recursively calling this constructor. // We can't pass varargs, so pass no args. - const instance = (this instanceof Attrs) ? this : new Attrs; + const instance = (this instanceof Attrs) ? this : new Attrs(); instance.value = args; @@ -132,7 +132,7 @@ export function CharRef(attrs) { } if (!(attrs && attrs.html && attrs.str)) { - throw new Error("HTML.CharRef must be constructed with ({html:..., str:...})"); + throw new Error('HTML.CharRef must be constructed with ({html:..., str:...})'); } this.html = attrs.html; @@ -207,16 +207,15 @@ export function isConstructedObject(x) { } -export function isNully (node) { - if (node == null) +export function isNully(node) { + if (node == null) { // null or undefined return true; + } if (isArray(node)) { // is it an empty array or an array of all nully items? - for (const item of node) - if (! isNully(item)) - return false; + for (const item of node) if (!isNully(item)) return false; return true; } @@ -253,7 +252,7 @@ export function flattenAttributes(attrs) { throw new Error(`Expected plain JS object as attrs, found: ${oneAttrs}`); } - for (let name in oneAttrs) { + for (const name in oneAttrs) { if (!isValidAttributeName(name)) { throw new Error(`Illegal HTML attribute name: ${name}`); } diff --git a/packages/htmljs/htmljs_test.js b/packages/htmljs/htmljs_test.js index 7f6b3a4a6..46b117ad0 100644 --- a/packages/htmljs/htmljs_test.js +++ b/packages/htmljs/htmljs_test.js @@ -1,6 +1,6 @@ import { HTML } from 'meteor/htmljs'; -Tinytest.add("htmljs - getTag", function (test) { +Tinytest.add('htmljs - getTag', function (test) { const FOO = HTML.getTag('foo'); test.isTrue(HTML.FOO === FOO); const x = FOO(); @@ -11,30 +11,30 @@ Tinytest.add("htmljs - getTag", function (test) { test.equal(x.children, []); test.equal(x.attrs, null); - test.isTrue((new FOO) instanceof HTML.FOO); - test.isTrue((new FOO) instanceof HTML.Tag); - test.isFalse((new HTML.P) instanceof HTML.FOO); + test.isTrue((new FOO()) instanceof HTML.FOO); + test.isTrue((new FOO()) instanceof HTML.Tag); + test.isFalse((new HTML.P()) instanceof HTML.FOO); const result = HTML.ensureTag('Bar'); // void function's return checked intentionally test.equal(typeof result, 'undefined'); - const BAR = HTML.BAR; + const { BAR } = HTML; test.equal(BAR().tagName, 'Bar'); }); -Tinytest.add("htmljs - construction", function (test) { +Tinytest.add('htmljs - construction', function (test) { const A = HTML.getTag('a'); const B = HTML.getTag('b'); const C = HTML.getTag('c'); - const a = A(0, B({q: 0}, C(A(B({})), 'foo'))); + const a = A(0, B({ q: 0 }, C(A(B({})), 'foo'))); test.equal(a.tagName, 'a'); test.equal(a.attrs, null); test.equal(a.children.length, 2); test.equal(a.children[0], 0); const b = a.children[1]; test.equal(b.tagName, 'b'); - test.equal(b.attrs, {q:0}); + test.equal(b.attrs, { q: 0 }); test.equal(b.children.length, 1); const c = b.children[0]; test.equal(c.tagName, 'c'); @@ -48,28 +48,28 @@ Tinytest.add("htmljs - construction", function (test) { test.equal(c.children[0].children[0].attrs, {}); test.equal(c.children[1], 'foo'); - const a2 = new A({m: 1}, {n: 2}, B(), {o: 3}, 'foo'); + const a2 = new A({ m: 1 }, { n: 2 }, B(), { o: 3 }, 'foo'); test.equal(a2.tagName, 'a'); - test.equal(a2.attrs, {m:1}); + test.equal(a2.attrs, { m: 1 }); test.equal(a2.children.length, 4); - test.equal(a2.children[0], {n:2}); + test.equal(a2.children[0], { n: 2 }); test.equal(a2.children[1].tagName, 'b'); - test.equal(a2.children[2], {o:3}); + test.equal(a2.children[2], { o: 3 }); test.equal(a2.children[3], 'foo'); // tests of HTML.isConstructedObject (indirectly) - test.equal(A({x:1}).children.length, 0); - const f = function () { + test.equal(A({ x: 1 }).children.length, 0); + const F = function () { }; - test.equal(A(new f).children.length, 1); - test.equal(A(new Date).children.length, 1); - test.equal(A({constructor: 'blah'}).children.length, 0); - test.equal(A({constructor: Object}).children.length, 0); + test.equal(A(new F()).children.length, 1); + test.equal(A(new Date()).children.length, 1); + test.equal(A({ constructor: 'blah' }).children.length, 0); + test.equal(A({ constructor: Object }).children.length, 0); - test.equal(HTML.toHTML(HTML.CharRef({html: '&', str: '&'})), '&'); + test.equal(HTML.toHTML(HTML.CharRef({ html: '&', str: '&' })), '&'); test.throws(function () { - HTML.CharRef({html: '&'}); // no 'str' + HTML.CharRef({ html: '&' }); // no 'str' }); }); @@ -82,19 +82,17 @@ const asciiLowerCase = function (str) { }); }; -Tinytest.add("htmljs - utils", function (test) { +Tinytest.add('htmljs - utils', function (test) { + test.notEqual('\u00c9'.toLowerCase(), '\u00c9'); + test.equal(asciiLowerCase('\u00c9'), '\u00c9'); - test.notEqual("\u00c9".toLowerCase(), "\u00c9"); - test.equal(asciiLowerCase("\u00c9"), "\u00c9"); - - test.equal(asciiLowerCase("Hello There"), "hello there"); - - test.isTrue(HTML.isVoidElement("br")); - test.isFalse(HTML.isVoidElement("div")); - test.isTrue(HTML.isKnownElement("div")); + test.equal(asciiLowerCase('Hello There'), 'hello there'); + test.isTrue(HTML.isVoidElement('br')); + test.isFalse(HTML.isVoidElement('div')); + test.isTrue(HTML.isKnownElement('div')); }); -Tinytest.add("htmljs - details", function (test) { - test.equal(HTML.toHTML(false), "false"); +Tinytest.add('htmljs - details', function (test) { + test.equal(HTML.toHTML(false), 'false'); }); diff --git a/packages/htmljs/package.js b/packages/htmljs/package.js index 52d8cab4f..9504afcf5 100644 --- a/packages/htmljs/package.js +++ b/packages/htmljs/package.js @@ -1,8 +1,8 @@ Package.describe({ name: 'htmljs', - summary: "Small library for expressing HTML trees", + summary: 'Small library for expressing HTML trees', version: '1.1.2', - git: 'https://github.com/meteor/blaze.git' + git: 'https://github.com/meteor/blaze.git', }); Package.onUse(function (api) { @@ -19,6 +19,6 @@ Package.onTest(function (api) { api.use('htmljs'); api.addFiles([ - 'htmljs_test.js' + 'htmljs_test.js', ]); }); diff --git a/packages/htmljs/preamble.js b/packages/htmljs/preamble.js index 7bff32886..d8e13cd58 100644 --- a/packages/htmljs/preamble.js +++ b/packages/htmljs/preamble.js @@ -30,7 +30,7 @@ import { ToTextVisitor, toHTML, TEXTMODE, - toText + toText, } from './visitors'; diff --git a/packages/htmljs/visitors.js b/packages/htmljs/visitors.js index f5a94623d..80992035f 100644 --- a/packages/htmljs/visitors.js +++ b/packages/htmljs/visitors.js @@ -11,16 +11,17 @@ import { } from './html'; -var IDENTITY = function (x) { return x; }; +const IDENTITY = function (x) { + return x; +}; // _assign is like _.extend or the upcoming Object.assign. // Copy src's own, enumerable properties onto tgt and return // tgt. -var _hasOwnProperty = Object.prototype.hasOwnProperty; -var _assign = function (tgt, src) { - for (var k in src) { - if (_hasOwnProperty.call(src, k)) - tgt[k] = src[k]; +const _hasOwnProperty = Object.prototype.hasOwnProperty; +const _assign = function (tgt, src) { + for (const k in src) { + if (_hasOwnProperty.call(src, k)) tgt[k] = src[k]; } return tgt; }; @@ -34,85 +35,89 @@ Visitor.def = function (options) { }; Visitor.extend = function (options) { - var curType = this; - var subType = function HTMLVisitorSubtype(/*arguments*/) { + const curType = this; + const subType = function HTMLVisitorSubtype(/* arguments */) { Visitor.apply(this, arguments); }; - subType.prototype = new curType; + subType.prototype = new curType(); subType.extend = curType.extend; subType.def = curType.def; - if (options) - _assign(subType.prototype, options); + if (options) _assign(subType.prototype, options); return subType; }; Visitor.def({ - visit: function (content/*, ...*/) { - if (content == null) + visit(content/* , ... */) { + if (content == null) { // null or undefined. return this.visitNull.apply(this, arguments); + } if (typeof content === 'object') { if (content.htmljsType) { switch (content.htmljsType) { - case Tag.htmljsType: - return this.visitTag.apply(this, arguments); - case CharRef.htmljsType: - return this.visitCharRef.apply(this, arguments); - case Comment.htmljsType: - return this.visitComment.apply(this, arguments); - case Raw.htmljsType: - return this.visitRaw.apply(this, arguments); - default: - throw new Error("Unknown htmljs type: " + content.htmljsType); + case Tag.htmljsType: + return this.visitTag.apply(this, arguments); + case CharRef.htmljsType: + return this.visitCharRef.apply(this, arguments); + case Comment.htmljsType: + return this.visitComment.apply(this, arguments); + case Raw.htmljsType: + return this.visitRaw.apply(this, arguments); + default: + throw new Error(`Unknown htmljs type: ${content.htmljsType}`); } } - if (isArray(content)) - return this.visitArray.apply(this, arguments); + if (isArray(content)) return this.visitArray.apply(this, arguments); return this.visitObject.apply(this, arguments); - - } else if ((typeof content === 'string') || - (typeof content === 'boolean') || - (typeof content === 'number')) { + } + if ((typeof content === 'string') || + (typeof content === 'boolean') || + (typeof content === 'number')) { return this.visitPrimitive.apply(this, arguments); - - } else if (typeof content === 'function') { + } + if (typeof content === 'function') { return this.visitFunction.apply(this, arguments); } - throw new Error("Unexpected object in htmljs: " + content); - + throw new Error(`Unexpected object in htmljs: ${content}`); }, - visitNull: function (nullOrUndefined/*, ...*/) {}, - visitPrimitive: function (stringBooleanOrNumber/*, ...*/) {}, - visitArray: function (array/*, ...*/) {}, - visitComment: function (comment/*, ...*/) {}, - visitCharRef: function (charRef/*, ...*/) {}, - visitRaw: function (raw/*, ...*/) {}, - visitTag: function (tag/*, ...*/) {}, - visitObject: function (obj/*, ...*/) { - throw new Error("Unexpected object in htmljs: " + obj); + visitNull(nullOrUndefined/* , ... */) { + }, + visitPrimitive(stringBooleanOrNumber/* , ... */) { + }, + visitArray(array/* , ... */) { + }, + visitComment(comment/* , ... */) { + }, + visitCharRef(charRef/* , ... */) { + }, + visitRaw(raw/* , ... */) { + }, + visitTag(tag/* , ... */) { + }, + visitObject(obj/* , ... */) { + throw new Error(`Unexpected object in htmljs: ${obj}`); + }, + visitFunction(fn/* , ... */) { + throw new Error(`Unexpected function in htmljs: ${fn}`); }, - visitFunction: function (fn/*, ...*/) { - throw new Error("Unexpected function in htmljs: " + fn); - } }); export const TransformingVisitor = Visitor.extend(); TransformingVisitor.def({ visitNull: IDENTITY, visitPrimitive: IDENTITY, - visitArray: function (array, ...args) { - var result = array; - for (var i = 0; i < array.length; i++) { - var oldItem = array[i]; - var newItem = this.visit(oldItem, ...args); + visitArray(array, ...args) { + let result = array; + for (let i = 0; i < array.length; i++) { + const oldItem = array[i]; + const newItem = this.visit(oldItem, ...args); if (newItem !== oldItem) { // copy `array` on write - if (result === array) - result = array.slice(); + if (result === array) result = array.slice(); result[i] = newItem; } } @@ -121,50 +126,48 @@ TransformingVisitor.def({ visitComment: IDENTITY, visitCharRef: IDENTITY, visitRaw: IDENTITY, - visitObject: function(obj, ...args){ + visitObject(obj, ...args) { // Don't parse Markdown & RCData as HTML - if (obj.textMode != null){ + if (obj.textMode != null) { return obj; } if ('content' in obj) { obj.content = this.visit(obj.content, ...args); } - if ('elseContent' in obj){ + if ('elseContent' in obj) { obj.elseContent = this.visit(obj.elseContent, ...args); } return obj; }, visitFunction: IDENTITY, - visitTag: function (tag, ...args) { - var oldChildren = tag.children; - var newChildren = this.visitChildren(oldChildren, ...args); + visitTag(tag, ...args) { + const oldChildren = tag.children; + const newChildren = this.visitChildren(oldChildren, ...args); - var oldAttrs = tag.attrs; - var newAttrs = this.visitAttributes(oldAttrs, ...args); + const oldAttrs = tag.attrs; + const newAttrs = this.visitAttributes(oldAttrs, ...args); - if (newAttrs === oldAttrs && newChildren === oldChildren) - return tag; + if (newAttrs === oldAttrs && newChildren === oldChildren) return tag; - var newTag = getTag(tag.tagName).apply(null, newChildren); + const newTag = getTag(tag.tagName).apply(null, newChildren); newTag.attrs = newAttrs; return newTag; }, - visitChildren: function (children, ...args) { + visitChildren(children, ...args) { return this.visitArray(children, ...args); }, // Transform the `.attrs` property of a tag, which may be a dictionary, // an array, or in some uses, a foreign object (such as // a template tag). - visitAttributes: function (attrs, ...args) { + visitAttributes(attrs, ...args) { if (isArray(attrs)) { - var result = attrs; - for (var i = 0; i < attrs.length; i++) { - var oldItem = attrs[i]; - var newItem = this.visitAttributes(oldItem, ...args); + let result = attrs; + for (let i = 0; i < attrs.length; i++) { + const oldItem = attrs[i]; + const newItem = this.visitAttributes(oldItem, ...args); if (newItem !== oldItem) { // copy on write - if (result === attrs) - result = attrs.slice(); + if (result === attrs) result = attrs.slice(); result[i] = newItem; } } @@ -172,25 +175,24 @@ TransformingVisitor.def({ } if (attrs && isConstructedObject(attrs)) { - throw new Error("The basic TransformingVisitor does not support " + - "foreign objects in attributes. Define a custom " + - "visitAttributes for this case."); + throw new Error('The basic TransformingVisitor does not support ' + + 'foreign objects in attributes. Define a custom ' + + 'visitAttributes for this case.'); } - var oldAttrs = attrs; - var newAttrs = oldAttrs; + const oldAttrs = attrs; + let newAttrs = oldAttrs; if (oldAttrs) { - var attrArgs = [null, null]; + const attrArgs = [null, null]; attrArgs.push.apply(attrArgs, arguments); - for (var k in oldAttrs) { - var oldValue = oldAttrs[k]; + for (const k in oldAttrs) { + const oldValue = oldAttrs[k]; attrArgs[0] = k; attrArgs[1] = oldValue; - var newValue = this.visitAttribute.apply(this, attrArgs); + const newValue = this.visitAttribute.apply(this, attrArgs); if (newValue !== oldValue) { // copy on write - if (newAttrs === oldAttrs) - newAttrs = _assign({}, oldAttrs); + if (newAttrs === oldAttrs) newAttrs = _assign({}, oldAttrs); newAttrs[k] = newValue; } } @@ -200,49 +202,47 @@ TransformingVisitor.def({ }, // Transform the value of one attribute name/value in an // attributes dictionary. - visitAttribute: function (name, value, tag, ...args) { + visitAttribute(name, value, tag, ...args) { return this.visit(value, ...args); - } + }, }); export const ToTextVisitor = Visitor.extend(); ToTextVisitor.def({ - visitNull: function (nullOrUndefined) { + visitNull(nullOrUndefined) { return ''; }, - visitPrimitive: function (stringBooleanOrNumber) { - var str = String(stringBooleanOrNumber); + visitPrimitive(stringBooleanOrNumber) { + const str = String(stringBooleanOrNumber); if (this.textMode === TEXTMODE.RCDATA) { return str.replace(/&/g, '&').replace(/'; + visitComment(comment) { + return ``; }, - visitCharRef: function (charRef) { + visitCharRef(charRef) { return charRef.html; }, - visitRaw: function (raw) { + visitRaw(raw) { return raw.value; }, - visitTag: function (tag) { - var attrStrs = []; + visitTag(tag) { + const attrStrs = []; - var tagName = tag.tagName; - var children = tag.children; + const { tagName } = tag; + let { children } = tag; - var attrs = tag.attrs; + let { attrs } = tag; if (attrs) { attrs = flattenAttributes(attrs); - for (var k in attrs) { + for (const k in attrs) { if (k === 'value' && tagName === 'textarea') { children = [attrs[k], children]; } else { - var v = this.toText(attrs[k], TEXTMODE.ATTRIBUTE); - attrStrs.push(' ' + k + '="' + v + '"'); + const v = this.toText(attrs[k], TEXTMODE.ATTRIBUTE); + attrStrs.push(` ${k}="${v}"`); } } } - var startTag = '<' + tagName + attrStrs.join('') + '>'; + const startTag = `<${tagName}${attrStrs.join('')}>`; - var childStrs = []; - var content; + const childStrs = []; + let content; if (tagName === 'textarea') { - - for (var i = 0; i < children.length; i++) - childStrs.push(this.toText(children[i], TEXTMODE.RCDATA)); + for (let i = 0; i < children.length; i++) childStrs.push(this.toText(children[i], TEXTMODE.RCDATA)); content = childStrs.join(''); - if (content.slice(0, 1) === '\n') - // TEXTAREA will absorb a newline, so if we see one, add - // another one. - content = '\n' + content; - + if (content.slice(0, 1) === '\n') { + // TEXTAREA will absorb a newline, so if we see one, add another one. + content = `\n${content}`; + } } else { - for (var i = 0; i < children.length; i++) - childStrs.push(this.visit(children[i])); + for (let i = 0; i < children.length; i++) childStrs.push(this.visit(children[i])); content = childStrs.join(''); } - var result = startTag + content; + let result = startTag + content; - if (children.length || ! isVoidElement(tagName)) { + if (children.length || !isVoidElement(tagName)) { // "Void" elements like BR are the only ones that don't get a close // tag in HTML5. They shouldn't have contents, either, so we could // throw an error upon seeing contents here. - result += ''; + result += ``; } return result; }, - visitObject: function (x) { - throw new Error("Unexpected object in htmljs in toHTML: " + x); + visitObject(x) { + throw new Error(`Unexpected object in htmljs in toHTML: ${x}`); }, - toText: function (node, textMode) { + toText(node, textMode) { return toText(node, textMode); - } + }, }); - -////////////////////////////// TOHTML +// //////////////////////////// TOHTML export function toHTML(content) { - return (new ToHTMLVisitor).visit(content); + return (new ToHTMLVisitor()).visit(content); } // Escaping modes for outputting text when generating HTML. export const TEXTMODE = { STRING: 1, RCDATA: 2, - ATTRIBUTE: 3 + ATTRIBUTE: 3, }; export function toText(content, textMode) { - if (! textMode) - throw new Error("textMode required for HTML.toText"); - if (! (textMode === TEXTMODE.STRING || - textMode === TEXTMODE.RCDATA || - textMode === TEXTMODE.ATTRIBUTE)) - throw new Error("Unknown textMode: " + textMode); - - var visitor = new ToTextVisitor({textMode: textMode}); + if (!textMode) throw new Error('textMode required for HTML.toText'); + if (!(textMode === TEXTMODE.STRING || + textMode === TEXTMODE.RCDATA || + textMode === TEXTMODE.ATTRIBUTE)) throw new Error(`Unknown textMode: ${textMode}`); + + const visitor = new ToTextVisitor({ textMode }); return visitor.visit(content); } From 836c76e220b9c8585a6a2db792e0fc644867c3dd Mon Sep 17 00:00:00 2001 From: guncebektas Date: Tue, 26 Jul 2022 00:44:03 +0300 Subject: [PATCH 05/13] manual eslint fixes --- packages/html-tools/charref.js | 42 +++-- packages/html-tools/parse.js | 281 +++++++++++++++-------------- packages/html-tools/parse_tests.js | 6 +- packages/html-tools/tokenize.js | 165 ++++++++--------- packages/htmljs/html.js | 105 ++++++----- packages/htmljs/visitors.js | 33 ++-- 6 files changed, 322 insertions(+), 310 deletions(-) diff --git a/packages/html-tools/charref.js b/packages/html-tools/charref.js index 81732602b..f2bcd78e2 100644 --- a/packages/html-tools/charref.js +++ b/packages/html-tools/charref.js @@ -2274,12 +2274,16 @@ const peekMatcher = function (scanner, matcher) { // if something looks like a named entity but isn't. const getNamedCharRef = function (scanner, inAttribute) { // look for `&` followed by alphanumeric - if (!peekMatcher(scanner, getPossibleNamedEntityStart)) return null; + if (!peekMatcher(scanner, getPossibleNamedEntityStart)) { + return null; + } const matcher = getNamedEntityByFirstChar[scanner.rest().charAt(1)]; let entity = null; - if (matcher) entity = peekMatcher(scanner, matcher); + if (matcher) { + entity = peekMatcher(scanner, matcher); + } if (entity) { if (entity.slice(-1) !== ';') { @@ -2289,21 +2293,29 @@ const getNamedCharRef = function (scanner, inAttribute) { // // This rule affects href attributes, for example, deeming "/?foo=bar<c=abc" // to be ok but "/?foo=bar<=abc" to not be. - if (inAttribute && ALPHANUMERIC.test(scanner.rest().charAt(entity.length))) return null; + if (inAttribute && ALPHANUMERIC.test(scanner.rest().charAt(entity.length))) { + return null; + } scanner.fatal(`Character reference requires semicolon: ${entity}`); - } else { - scanner.pos += entity.length; - return entity; } - } else { - // we couldn't match any real entity, so see if this is a bad entity - // or something we can overlook. - const badEntity = peekMatcher(scanner, getApparentNamedEntity); - if (badEntity) scanner.fatal(`Invalid character reference: ${badEntity}`); - // `&aaaa` is ok with no semicolon - return null; + + scanner.pos += entity.length; + + return entity; } + + // we couldn't match any real entity, so see if this is a bad entity + // or something we can overlook. + const badEntity = peekMatcher(scanner, getApparentNamedEntity); + + if (badEntity) { + scanner.fatal(`Invalid character reference: ${badEntity}`); + } + + // `&aaaa` is ok with no semicolon + + return null; }; // Returns the sequence of one or two codepoints making up an entity as an array. @@ -2325,7 +2337,9 @@ const BIG_BAD_CODEPOINTS = (function (obj) { 0xDFFFE, 0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE, 0xFFFFF, 0x10FFFE, 0x10FFFF]; - for (const item of list) obj[item] = true; + for (const item of list) { + obj[item] = true; + } return obj; }({})); diff --git a/packages/html-tools/parse.js b/packages/html-tools/parse.js index 3e74ccd17..0f6312722 100644 --- a/packages/html-tools/parse.js +++ b/packages/html-tools/parse.js @@ -3,46 +3,44 @@ import { Scanner } from './scanner'; import { properCaseAttributeName } from './utils'; import { getHTMLToken, isLookingAtEndTag } from './tokenize'; -// Parse a "fragment" of HTML, up to the end of the input or a particular -const getRawText = (scanner, tagName, shouldStopFunc) => { - let items = []; - - while (!scanner.isEOF()) { - // break at appropriate end tag - if (tagName && isLookingAtEndTag(scanner, tagName)) break; - - if (shouldStopFunc && shouldStopFunc(scanner)) break; +const pushOrAppendString = (items, string) => { + if (items.length && typeof items[items.length - 1] === 'string') { + items[items.length - 1] += string; + } else { + items.push(string); + } - const token = getHTMLToken(scanner, 'rawtext'); + return items; +}; - if (!token) { - // tokenizer reached EOF on its own, e.g. while scanning - // template comments like `{{! foo}}`. - continue; - } - if (token.t === 'Chars') { - items = pushOrAppendString(items, token.v); - } else if (token.t === 'TemplateTag') { - items.push(token.v); - } else { - // (can't happen) - scanner.fatal(`Unknown or unexpected token type: ${token.t}`); - } +// Take a numeric Unicode code point, which may be larger than 16 bits, +// and encode it as a JavaScript UTF-16 string. +// +// Adapted from +// http://stackoverflow.com/questions/7126384/expressing-utf-16-unicode-characters-in-javascript/7126661. +export function codePointToString(codePoint) { + if (codePoint >= 0 && codePoint <= 0xD7FF || codePoint >= 0xE000 && codePoint <= 0xFFFF) { + return String.fromCharCode(codePoint); } + if (codePoint >= 0x10000 && codePoint <= 0x10FFFF) { + // we subtract 0x10000 from codePoint to get a 20-bit number + // in the range 0..0xFFFF + codePoint -= 0x10000; - if (items.length === 0) return null; - if (items.length === 1) return items[0]; + // we add 0xD800 to the number formed by the first 10 bits + // to give the first byte + const first = ((0xffc00 & codePoint) >> 10) + 0xD800; - return items; -}; + // we add 0xDC00 to the number formed by the low 10 bits + // to give the second byte + const second = (0x3ff & codePoint) + 0xDC00; -const pushOrAppendString = (items, string) => { - if (items.length && typeof items[items.length - 1] === 'string') items[items.length - 1] += string; - else items.push(string); + return String.fromCharCode(first) + String.fromCharCode(second); + } - return items; -}; + return ''; +} // Input: A token like `{ t: 'CharRef', v: '&', cp: [38] }`. // @@ -122,104 +120,78 @@ const parseAttrs = attrs => { return result; }; -// template tag (using the "shouldStop" option). -export function parseFragment(input, options) { - let scanner; +// Parse a "fragment" of HTML, up to the end of the input or a particular +const getRawText = (scanner, tagName, shouldStopFunc) => { + let items = []; - if (typeof input === 'string') { - scanner = new Scanner(input); - } else { - // input can be a scanner. We'd better not have a different - // value for the "getTemplateTag" option as when the scanner - // was created, because we don't do anything special to reset - // the value (which is attached to the scanner). - scanner = input; - } + while (!scanner.isEOF()) { + // break at appropriate end tag + if (tagName && isLookingAtEndTag(scanner, tagName)) break; - // ``` - // { getTemplateTag: function (scanner, templateTagPosition) { - // if (templateTagPosition === HTMLTools.TEMPLATE_TAG_POSITION.ELEMENT) { - // ... - // ``` - if (options && options.getTemplateTag) scanner.getTemplateTag = options.getTemplateTag; + if (shouldStopFunc && shouldStopFunc(scanner)) break; - // function (scanner) -> boolean - const shouldStop = options && options.shouldStop; + const token = getHTMLToken(scanner, 'rawtext'); - let result; + if (!token) { + // tokenizer reached EOF on its own, e.g. while scanning + // template comments like `{{! foo}}`. + continue; + } - if (options && options.textMode) { - if (options.textMode === HTML.TEXTMODE.STRING) { - result = getRawText(scanner, null, shouldStop); - } else if (options.textMode === HTML.TEXTMODE.RCDATA) { - result = getRCData(scanner, null, shouldStop); + if (token.t === 'Chars') { + items = pushOrAppendString(items, token.v); + } else if (token.t === 'TemplateTag') { + items.push(token.v); } else { - throw new Error(`Unsupported textMode: ${options.textMode}`); + // (can't happen) + scanner.fatal(`Unknown or unexpected token type: ${token.t}`); } - } else { - result = getContent(scanner, shouldStop); } - if (!scanner.isEOF()) { - // If we aren't at the end of the input, we either stopped at an unmatched - // HTML end tag or at a template tag (like `{{else}}` or `{{/if}}`). - // Detect the former case (stopped at an HTML end tag) and throw a good - // error. + if (items.length === 0) return null; + if (items.length === 1) return items[0]; - const posBefore = scanner.pos; - let endTag; + return items; +}; - try { - endTag = getHTMLToken(scanner); - } catch (e) { - // ignore errors from getTemplateTag - } +// Get RCDATA to go in the lowercase (or camel case) tagName (e.g. "textarea") +export function getRCData(scanner, tagName, shouldStopFunc) { + let items = []; - // XXX we make some assumptions about shouldStop here, like that it - // won't tell us to stop at an HTML end tag. Should refactor - // `shouldStop` into something more suitable. - if (endTag && endTag.t === 'Tag' && endTag.isEnd) { - const closeTag = endTag.n; - const isVoidElement = HTML.isVoidElement(closeTag); - scanner.fatal(`Unexpected HTML close tag${isVoidElement ? `. <${endTag.n}> should have no close tag.` : ''}`); - } + while (!scanner.isEOF()) { + // break at appropriate end tag + if (tagName && isLookingAtEndTag(scanner, tagName)) break; - scanner.pos = posBefore; // rewind, we'll continue parsing as usual + if (shouldStopFunc && shouldStopFunc(scanner)) break; - // If no "shouldStop" option was provided, we should have consumed the whole - // input. - if (!shouldStop) scanner.fatal('Expected EOF'); - } + const token = getHTMLToken(scanner, 'rcdata'); - return result; -} + if (!token) { + // tokenizer reached EOF on its own, e.g. while scanning + // template comments like `{{! foo}}`. + continue; + } -// Take a numeric Unicode code point, which may be larger than 16 bits, -// and encode it as a JavaScript UTF-16 string. -// -// Adapted from -// http://stackoverflow.com/questions/7126384/expressing-utf-16-unicode-characters-in-javascript/7126661. -export function codePointToString(codePoint) { - if (codePoint >= 0 && codePoint <= 0xD7FF || codePoint >= 0xE000 && codePoint <= 0xFFFF) { - return String.fromCharCode(codePoint); + switch (token.t) { + case 'Chars': + items = pushOrAppendString(items, token.v); + break; + case 'CharRef': + items.push(convertCharRef(token)); + break; + case 'TemplateTag': + items.push(token.v); + break; + default: + // (can't happen) + scanner.fatal(`Unknown or unexpected token type: ${token.t}`); + } } - if (codePoint >= 0x10000 && codePoint <= 0x10FFFF) { - // we subtract 0x10000 from codePoint to get a 20-bit number - // in the range 0..0xFFFF - codePoint -= 0x10000; - - // we add 0xD800 to the number formed by the first 10 bits - // to give the first byte - const first = ((0xffc00 & codePoint) >> 10) + 0xD800; - - // we add 0xDC00 to the number formed by the low 10 bits - // to give the second byte - const second = (0x3ff & codePoint) + 0xDC00; - return String.fromCharCode(first) + String.fromCharCode(second); - } + if (items.length === 0) return null; + if (items.length === 1) return items[0]; - return ''; + return items; } export function getContent(scanner, shouldStopFunc) { @@ -327,42 +299,71 @@ export function getContent(scanner, shouldStopFunc) { return items; } -// get RCDATA to go in the lowercase (or camel case) tagName (e.g. "textarea") -export function getRCData(scanner, tagName, shouldStopFunc) { - let items = []; +// template tag (using the "shouldStop" option). +export function parseFragment(input, options) { + let scanner; - while (!scanner.isEOF()) { - // break at appropriate end tag - if (tagName && isLookingAtEndTag(scanner, tagName)) break; + if (typeof input === 'string') { + scanner = new Scanner(input); + } else { + // input can be a scanner. We'd better not have a different + // value for the "getTemplateTag" option as when the scanner + // was created, because we don't do anything special to reset + // the value (which is attached to the scanner). + scanner = input; + } - if (shouldStopFunc && shouldStopFunc(scanner)) break; + if (options && options.getTemplateTag) { + scanner.getTemplateTag = options.getTemplateTag; + } - const token = getHTMLToken(scanner, 'rcdata'); + // function (scanner) -> boolean + const shouldStop = options && options.shouldStop; - if (!token) { - // tokenizer reached EOF on its own, e.g. while scanning - // template comments like `{{! foo}}`. - continue; - } + let result; - switch (token.t) { - case 'Chars': - items = pushOrAppendString(items, token.v); - break; - case 'CharRef': - items.push(convertCharRef(token)); - break; - case 'TemplateTag': - items.push(token.v); - break; - default: - // (can't happen) - scanner.fatal(`Unknown or unexpected token type: ${token.t}`); + if (options && options.textMode) { + if (options.textMode === HTML.TEXTMODE.STRING) { + result = getRawText(scanner, null, shouldStop); + } else if (options.textMode === HTML.TEXTMODE.RCDATA) { + result = getRCData(scanner, null, shouldStop); + } else { + throw new Error(`Unsupported textMode: ${options.textMode}`); } + } else { + result = getContent(scanner, shouldStop); } - if (items.length === 0) return null; - if (items.length === 1) return items[0]; + if (!scanner.isEOF()) { + // If we aren't at the end of the input, we either stopped at an unmatched + // HTML end tag or at a template tag (like `{{else}}` or `{{/if}}`). + // Detect the former case (stopped at an HTML end tag) and throw a good + // error. - return items; + const posBefore = scanner.pos; + let endTag; + + try { + endTag = getHTMLToken(scanner); + } catch (e) { + // ignore errors from getTemplateTag + } + + // XXX we make some assumptions about shouldStop here, like that it + // won't tell us to stop at an HTML end tag. Should refactor + // `shouldStop` into something more suitable. + if (endTag && endTag.t === 'Tag' && endTag.isEnd) { + const closeTag = endTag.n; + const isVoidElement = HTML.isVoidElement(closeTag); + scanner.fatal(`Unexpected HTML close tag${isVoidElement ? `. <${endTag.n}> should have no close tag.` : ''}`); + } + + scanner.pos = posBefore; // rewind, we'll continue parsing as usual + + // If no "shouldStop" option was provided, we should have consumed the whole + // input. + if (!shouldStop) scanner.fatal('Expected EOF'); + } + + return result; } diff --git a/packages/html-tools/parse_tests.js b/packages/html-tools/parse_tests.js index 8742a676f..785691263 100644 --- a/packages/html-tools/parse_tests.js +++ b/packages/html-tools/parse_tests.js @@ -267,8 +267,10 @@ Tinytest.add('html-tools - getTemplateTag', function (test) { // The object it returns is opaque to the tokenizer/parser and can // be anything we want. const getTemplateTag = function (scanner, position) { - if (!(scanner.peek() === '{' && // one-char peek is just an optimization - scanner.rest().slice(0, 2) === '{{')) return null; + // one-char peek is just an optimization + if (!(scanner.peek() === '{' && scanner.rest().slice(0, 2) === '{{')) { + return null; + } const match = mustache.exec(scanner.rest()); if (!match) scanner.fatal('Bad mustache'); diff --git a/packages/html-tools/tokenize.js b/packages/html-tools/tokenize.js index c3c5fb96d..3b60c7813 100644 --- a/packages/html-tools/tokenize.js +++ b/packages/html-tools/tokenize.js @@ -198,85 +198,21 @@ const assertIsTemplateTag = function (x) { return x; }; -// Returns the next HTML token, or `null` if we reach EOF. -// -// Note that if we have a `getTemplateTag` function that sometimes -// consumes characters and emits nothing (e.g. in the case of template -// comments), we may go from not-at-EOF to at-EOF and return `null`, -// while otherwise we always find some token to return. -export function getHTMLToken(scanner, dataMode) { - let result = null; - if (scanner.getTemplateTag) { - // Try to parse a template tag by calling out to the provided - // `getTemplateTag` function. If the function returns `null` but - // consumes characters, it must have parsed a comment or something, - // so we loop and try it again. If it ever returns `null` without - // consuming anything, that means it didn't see anything interesting - // so we look for a normal token. If it returns a truthy value, - // the value must be instanceof HTMLTools.TemplateTag. We wrap it - // in a Special token. - const lastPos = scanner.pos; - result = scanner.getTemplateTag( - scanner, - (dataMode === 'rcdata' ? TEMPLATE_TAG_POSITION.IN_RCDATA : - (dataMode === 'rawtext' ? TEMPLATE_TAG_POSITION.IN_RAWTEXT : - TEMPLATE_TAG_POSITION.ELEMENT))); - - if (result) return { t: 'TemplateTag', v: assertIsTemplateTag(result) }; - if (scanner.pos > lastPos) return null; - } - - const chars = getChars(scanner); - if (chars) { - return { - t: 'Chars', - v: convertCRLF(chars), - }; - } - - const ch = scanner.peek(); - if (!ch) return null; // EOF - - if (ch === '\u0000') scanner.fatal('Illegal NULL character'); - - if (ch === '&') { - if (dataMode !== 'rawtext') { - const charRef = getCharacterReference(scanner); - if (charRef) return charRef; - } - - scanner.pos++; - return { - t: 'Chars', - v: '&', - }; - } - - // If we're here, we're looking at `<`. - - if (scanner.peek() === '<' && dataMode) { - // don't interpret tags - scanner.pos++; - return { - t: 'Chars', - v: '<', - }; - } - - // `getTag` will claim anything starting with `<` not followed by `!`. - // `getComment` takes `