diff --git a/.npmignore b/.npmignore index 13095ed0..e9cc79c3 100644 --- a/.npmignore +++ b/.npmignore @@ -10,4 +10,6 @@ examples/ mocktest.json webpack typescript-html-report -coverage \ No newline at end of file +webpack +jest.config.js +coverage diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a2b2f88..44aaf5c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,11 @@ +### Version: 3.13.0 +#### Date: + +##### Update API: + - [Query]: Added support for method includeEmbeddedItems + - [Entry]: Added support for method includeEmbeddedItems + ### Version: 3.12.2 #### Date: Feb-19-2021 diff --git a/README.md b/README.md index c449f5df..2c371bea 100755 --- a/README.md +++ b/README.md @@ -235,6 +235,7 @@ data.then(function(sync_data, err) { if (err) throw err }) ``` +> Note: Sync function does not support CachePolicy, we prefer to keep CachePolicy to `IGNORE_CACHE` while using Sync API. The response also contains a sync token, which you need to store, since this token is used to get subsequent delta updates later, as shown in the Subsequent Sync section below. @@ -283,7 +284,7 @@ You can use advanced sync queries to fetch custom results while performing initi ### The MIT License (MIT) -Copyright © 2012-2020 [Contentstack](https://www.contentstack.com). All Rights Reserved +Copyright © 2012-2021 [Contentstack](https://www.contentstack.com). All Rights Reserved Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/contentstack-templates/tmpl/layout.tmpl b/contentstack-templates/tmpl/layout.tmpl index 14ad0395..104c9e85 100755 --- a/contentstack-templates/tmpl/layout.tmpl +++ b/contentstack-templates/tmpl/layout.tmpl @@ -106,37 +106,41 @@

Once you have initialized the SDK, you can start getting content in your app.

Querying content from your stack

To get a single entry, you need to specify the content type as well as the ID of the entry.

-
const Query = Stack.ContentType('blog').Entry("blt123something");
+            
const Stack = Contentstack.Stack("stack_api_key", "delivery_token", "environment_name");
 
-            Query.fetch()
-            .then(function success(entry) {
-            console.log(entry.get('title')); // Retrieve field value by providing a field's uid
-            console.log(entry.toJSON()); // Convert the entry result object to JSON
-            }, function error(err) {
-            // err object
-            });
+const Query = Stack.ContentType('blog').Entry("blt123something");
+
+Query.fetch()
+.then(function success(entry) {
+    console.log(entry.get('title')); // Retrieve field value by providing a field's uid
+    console.log(entry.toJSON()); // Convert the entry result object to JSON
+}, function error(err) {
+    // err object
+});
             

Note: We have a method on query for a specific language. For example, consider the following query:

Stack.ContentType(type).Query().language('fr-fr').toJSON().find()
It will provide all entries of a content type published on the French locale.

To retrieve multiple entries of a content type, you need to specify the content type uid. You can also specify search parameters to filter results.

-
const Query = Stack.ContentType('blog').Query();
-
-            Query 
-            .where("title", "welcome")
-            .includeSchema()
-            .includeCount()
-            .toJSON()
-            .find()
-            .then(function success(result) {
-                // result is array where -
-                // result[0] => entry objects
-                // result[result.length-1] => entry objects count included only when .includeCount() is queried.
-                // result[1] => schema of the content type is included when .includeSchema() is queried.
-            }, function error(err) {
-            // err object
-            });
-            
+
const Stack = Contentstack.Stack("stack_api_key", "delivery_token", "environment_name");
+
+const Query = Stack.ContentType('blog').Query();
+
+Query 
+.where("title", "welcome")
+.includeSchema()
+.includeCount()
+.toJSON()
+.find()
+.then(function success(result) {
+    // result is array where -
+    // result[0] => entry objects
+    // result[result.length-1] => entry objects count included only when .includeCount() is queried.
+    // result[1] => schema of the content type is included when .includeSchema() is queried.
+}, function error(err) {
+    // err object
+});
+

Note: Currently, the JavaScript SDK does not support multiple content types referencing in a single query. For more information on how to query entries and assets, refer the Queries section of our Content Delivery API documentation.

Paginating Responses

@@ -146,38 +150,42 @@ It will provide all entries of a content type published on the French locale.

+ // result is array where - + // result[0] => entry objects + },function (error) { + // error function + })

Querying Assets from your stack

To get a single asset, you need to specify the UID of the asset.

-
const Asset = Stack.Asset("blt123something");
+            
const Stack = Contentstack.Stack("stack_api_key", "delivery_token", "environment_name");
+
+const Asset = Stack.Asset("blt123something");
 
-            Asset.fetch()
-            .then(function success(asset) {
-            console.log(asset.get('title')); // Retrieve field value by providing a field's uid
-            console.log(asset.toJSON()); // Convert the entry result object to JSON
-            }, function error(err) {
-            // err object
-            });
+Asset.fetch()
+.then(function success(asset) {
+    console.log(asset.get('title')); // Retrieve field value by providing a field's uid
+    console.log(asset.toJSON()); // Convert the entry result object to JSON
+}, function error(err) {
+    // err object
+});
             

To retrieve multiple assets. You can also specify search parameters to filter results.

-
const Query = Stack.Asset().Query();
+
const Stack = Contentstack.Stack("stack_api_key", "delivery_token", "environment_name");
 
-            Query
-            .limit(20)
-            .toJSON()
-            .find()
-            .then(function success(result) {
-                // result is array where -
-                // result[0] => asset objects
-            }, function error(err) {
-            // err object
-            });
-            
+const Query = Stack.Asset().Query(); + +Query +.limit(20) +.toJSON() +.find() +.then(function success(result) { + // result is array where - + // result[0] => asset objects +}, function error(err) { +// err object +}); +

Cache Policies

@@ -185,12 +193,12 @@ data.then(function(result) {
Setting a cache policy on a stack

This option allows you to globalize a cache policy. This means the cache policy you set will be applied to all the query objects of the stack.

//Setting a cache policy on a stack    
-            Stack.setCachePolicy(Contentstack.CachePolicy.NETWORK_ELSE_CACHE)
+Stack.setCachePolicy(Contentstack.CachePolicy.NETWORK_ELSE_CACHE)
             
Setting a cache policy on a query object

This option allows you to set/override a cache policy on a specific query object.

// setting a cache policy on a queryobject
-            Query.setCachePolicy(Contentstack.CachePolicy.CACHE_THEN_NETWORK)
+Query.setCachePolicy(Contentstack.CachePolicy.CACHE_THEN_NETWORK)
             

Advanced Queries

You can query for content types, entries, assets and more using our JavaScript API Reference.

@@ -199,7 +207,28 @@ data.then(function(result) {

We have introduced Image Delivery APIs that let you retrieve images and then manipulate and optimize them for your digital properties. It lets you perform a host of other actions such as crop, trim, resize, rotate, overlay, and so on.

For example, if you want to crop an image (with width as 300 and height as 400), you simply need to append query parameters at the end of the image URL, such as, https://images.contentstack.io/v3/assets/blteae40eb499811073/bltc5064f36b5855343/59e0c41ac0eddd140d5a8e3e/owl.jpg?crop=300,400. There are several more parameters that you can use for your images.

Read Image Delivery API documentation.

-

SDK functions for Image Delivery API coming soon.

+ +
Following are Image Delivery API examples
+

Following are Image Delivery API examples.

+

+// Set the quality 100 
+const Stack = Contentstack.Stack("stack_api_key", "delivery_token", "environment_name");
+
+const imageUrl = Stack.imageTransform(imageUrl, {
+    'quality': 100
+})
+            
+

+// set the quality to 100, auto optimization, width and height
+const Stack = Contentstack.Stack("stack_api_key", "delivery_token", "environment_name");
+
+const imageUrl = Stack.imageTransform(imageUrl, {
+    'quality': 100,
+    'auto': 'webp',
+    'width': 100,
+    'height': 100
+})
+            

Helpful Links

The MIT License (MIT)

-

Copyright © 2016-2020 Contentstack. All Rights Reserved

+

Copyright © 2016-2021 Contentstack. All Rights Reserved

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

diff --git a/dist/nativescript/contentstack.js b/dist/nativescript/contentstack.js index 78749962..05f49d78 100644 --- a/dist/nativescript/contentstack.js +++ b/dist/nativescript/contentstack.js @@ -99,6 +99,30 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); /***/ }), +/***/ "./node_modules/@contentstack/utils/dist/index.es.js": +/*!***********************************************************!*\ + !*** ./node_modules/@contentstack/utils/dist/index.es.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar nodeHtmlParser = __webpack_require__(/*! node-html-parser */ \"./node_modules/node-html-parser/dist/esm/index.js\");\n\nvar StyleType;\n(function (StyleType) {\n StyleType[\"BLOCK\"] = \"block\";\n StyleType[\"INLINE\"] = \"inline\";\n StyleType[\"LINK\"] = \"link\";\n StyleType[\"DISPLAY\"] = \"display\";\n StyleType[\"DOWNLOAD\"] = \"download\";\n})(StyleType || (StyleType = {}));\nvar StyleType$1 = StyleType;\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return _assign.apply(this, arguments);\n};\n\nfunction elementToJson(element) {\n var obj = _assign({}, element.rawAttributes);\n element.childNodes.forEach(function (chileNode) {\n var node = chileNode;\n obj = _assign(_assign({}, obj), parseElement(node));\n });\n return obj;\n}\nfunction parseElement(node) {\n var obj = {};\n if (node.nodeType === 3) {\n obj['#text'] = node.text;\n } else if (node.nodeType === 1) {\n obj[node.tagName.toLowerCase()] = elementToJson(node);\n }\n return obj;\n}\n\nfunction createMetadata(attribute) {\n var metadata = {\n text: attribute['#text'],\n itemUid: attribute[\"data-sys-entry-uid\"] || attribute[\"data-sys-asset-uid\"],\n itemType: attribute.type,\n styleType: attribute[\"sys-style-type\"],\n attributes: attribute,\n contentTypeUid: attribute[\"data-sys-content-type-uid\"]\n };\n return metadata;\n}\n\nvar frameflag = 'documentfragmentcontainer';\nString.prototype.forEachEmbeddedObject = function (callbackfn) {\n var str = \"<\" + frameflag + \">\" + this.toString() + \"\";\n var root = nodeHtmlParser.parse(str);\n var embeddedEntries = root.querySelectorAll(\".embedded-entry\");\n embeddedEntries.forEach(function (element) {\n callbackfn(element.outerHTML, createMetadata(elementToJson(element)));\n });\n var embeddedAsset = root.querySelectorAll(\".embedded-asset\");\n embeddedAsset.forEach(function (element) {\n callbackfn(element.outerHTML, createMetadata(elementToJson(element)));\n });\n};\n\nvar _a;\nvar defaultOptions = (_a = {}, _a[StyleType$1.BLOCK] = function (entry) {\n return \"

\" + (entry.title || entry.uid) + \"

Content type: \" + entry._content_type_uid + \"

\";\n}, _a[StyleType$1.INLINE] = function (entry) {\n return \"\" + (entry.title || entry.uid) + \"\";\n}, _a[StyleType$1.LINK] = function (entry, metadata) {\n return \"\" + (metadata.text || entry.title || entry.uid) + \"\";\n}, _a[StyleType$1.DISPLAY] = function (asset, metadata) {\n return \"\\\"\"\";\n}, _a[StyleType$1.DOWNLOAD] = function (entry, metadata) {\n return \"\" + (metadata.text || entry.title || entry.uid) + \"\";\n}, _a);\n\n// This function will find Embedded object present in string\nfunction findEmbeddedEntry(uid, contentTypeUid, embeddeditems) {\n if (embeddeditems === void 0) {\n embeddeditems = [];\n }\n return embeddeditems.filter(function (entry) {\n if (entry.uid === uid && entry._content_type_uid === contentTypeUid) {\n return entry;\n }\n });\n}\nfunction findEmbeddedAsset(uid, embeddedAssets) {\n if (embeddedAssets === void 0) {\n embeddedAssets = [];\n }\n return embeddedAssets.filter(function (asset) {\n if (asset.uid === uid) {\n return asset;\n }\n });\n}\nfunction findEmbeddedObjects(object, entry) {\n if (object && object !== undefined && entry && entry !== undefined) {\n if (entry._embedded_items !== undefined) {\n var entryEmbedable = entry;\n if (object.itemType === 'entry') {\n return findEmbeddedEntry(object.itemUid, object.contentTypeUid, Object.values(entryEmbedable._embedded_items || []).reduce(function (accumulator, value) {\n return accumulator.concat(value);\n }, []));\n } else {\n return findEmbeddedAsset(object.itemUid, Object.values(entryEmbedable._embedded_items || []).reduce(function (accumulator, value) {\n return accumulator.concat(value);\n }, []));\n }\n }\n }\n return [];\n}\nfunction findRenderString(metadata, renderModel, renderOptions) {\n if (!renderModel && renderModel === undefined || !metadata && metadata === undefined) {\n return '';\n }\n if (renderOptions && renderOptions[metadata.styleType] !== undefined) {\n var renderFunction = renderOptions[metadata.styleType];\n if (metadata.attributes['data-sys-content-type-uid'] !== undefined && typeof renderFunction !== 'function' && renderFunction[metadata.attributes['data-sys-content-type-uid']] !== undefined) {\n return renderFunction[metadata.attributes['data-sys-content-type-uid']](renderModel, metadata);\n } else if (metadata.attributes['data-sys-content-type-uid'] !== undefined && typeof renderFunction !== 'function' && renderFunction.$default !== undefined) {\n return renderFunction.$default(renderModel, metadata);\n } else if (typeof renderFunction === 'function') {\n return renderFunction(renderModel, metadata);\n }\n }\n var defaultRenderFunction = defaultOptions[metadata.styleType];\n return defaultRenderFunction(renderModel, metadata);\n}\n\nfunction findRenderContent(keyPaths, entry, render) {\n getContent(keyPaths.split(\".\"), entry, render);\n}\nfunction getContent(keys, object, render) {\n if (keys) {\n var key = keys[0];\n if (keys.length === 1 && object[key]) {\n object[key] = render(object[key]);\n } else if (keys.length > 0) {\n if (object[key]) {\n var newKeys = keys.slice(1);\n if (Array.isArray(object[key])) {\n // tslint:disable-next-line: prefer-for-of\n for (var i = 0; i < object[key].length; i++) {\n getContent(newKeys, object[key][i], render);\n }\n } else if (_typeof(object[key]) === 'object') {\n getContent(newKeys, object[key], render);\n }\n }\n }\n }\n}\n\n/**\r\n *\r\n * @param {EntryEmbedable| EntryEmbedable[]} entry - Objects that contains RTE with embedded objects\r\n * @param {string[]} paths - Key paths for RTE contents in Entry object\r\n * @param {RenderOption?} renderOption - Optional render options to render content\r\n */\nfunction render(option) {\n function findContent(path, entry) {\n findRenderContent(path, entry, function (content) {\n return renderContent(content, { entry: entry, renderOption: option.renderOption });\n });\n }\n function findAndRender(entry) {\n if (!option.paths || option.paths.length === 0) {\n Object.keys(_assign({}, entry._embedded_items)).forEach(function (path) {\n findContent(path, entry);\n });\n } else {\n option.paths.forEach(function (path) {\n findContent(path, entry);\n });\n }\n }\n if (option.entry instanceof Array) {\n option.entry.forEach(function (entry) {\n findAndRender(entry);\n });\n } else {\n findAndRender(option.entry);\n }\n}\n/**\r\n *\r\n * @param {string | string[]} content - RTE content to render\r\n * @param {EntryEmbedable} options.entry - Entry object containing embedded objects\r\n * @param {RenderOption?} options.renderOption - Optional render options to render content\r\n */\nfunction renderContent(content, option) {\n // return blank if content not present\n if (!content || content === undefined) {\n return '';\n }\n // render content of type string\n if (typeof content === 'string') {\n var contentToReplace_1 = content;\n content.forEachEmbeddedObject(function (embededObjectTag, object) {\n contentToReplace_1 = findAndReplaceEmbeddedObject(contentToReplace_1, embededObjectTag, object, option);\n });\n return contentToReplace_1;\n }\n // render content of type array of string\n var resultContent = [];\n content.forEach(function (element) {\n resultContent.push(renderContent(element, option));\n });\n return resultContent;\n}\nfunction findAndReplaceEmbeddedObject(content, embededObjectTag, object, option) {\n var embeddedObjects = findEmbeddedObjects(object, option.entry);\n var renderString = findRenderString(object, embeddedObjects[0], option.renderOption);\n return content.replace(embededObjectTag, renderString);\n}\n\nexports.StyleType = StyleType$1;\nexports.render = render;\nexports.renderContent = renderContent;\n//# sourceMappingURL=index.es.js.map\n\n//# sourceURL=webpack://Contentstack/./node_modules/@contentstack/utils/dist/index.es.js?"); + +/***/ }), + +/***/ "./node_modules/he/he.js": +/*!*******************************!*\ + !*** ./node_modules/he/he.js ***! + \*******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n;(function (root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = ( false ? undefined : _typeof(exports)) == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = ( false ? undefined : _typeof(module)) == 'object' && module && module.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`.\n\tvar freeGlobal = (typeof global === 'undefined' ? 'undefined' : _typeof(global)) == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// All astral symbols.\n\tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\t// All ASCII symbols (not just printable ASCII) except those listed in the\n\t// first column of the overrides table.\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\n\tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\n\t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\n\t// code points listed in the first column of the overrides table on\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\n\tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n\n\tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\n\tvar encodeMap = { '\\xAD': 'shy', '\\u200C': 'zwnj', '\\u200D': 'zwj', '\\u200E': 'lrm', '\\u2063': 'ic', '\\u2062': 'it', '\\u2061': 'af', '\\u200F': 'rlm', '\\u200B': 'ZeroWidthSpace', '\\u2060': 'NoBreak', '\\u0311': 'DownBreve', '\\u20DB': 'tdot', '\\u20DC': 'DotDot', '\\t': 'Tab', '\\n': 'NewLine', '\\u2008': 'puncsp', '\\u205F': 'MediumSpace', '\\u2009': 'thinsp', '\\u200A': 'hairsp', '\\u2004': 'emsp13', '\\u2002': 'ensp', '\\u2005': 'emsp14', '\\u2003': 'emsp', '\\u2007': 'numsp', '\\xA0': 'nbsp', '\\u205F\\u200A': 'ThickSpace', '\\u203E': 'oline', '_': 'lowbar', '\\u2010': 'dash', '\\u2013': 'ndash', '\\u2014': 'mdash', '\\u2015': 'horbar', ',': 'comma', ';': 'semi', '\\u204F': 'bsemi', ':': 'colon', '\\u2A74': 'Colone', '!': 'excl', '\\xA1': 'iexcl', '?': 'quest', '\\xBF': 'iquest', '.': 'period', '\\u2025': 'nldr', '\\u2026': 'mldr', '\\xB7': 'middot', '\\'': 'apos', '\\u2018': 'lsquo', '\\u2019': 'rsquo', '\\u201A': 'sbquo', '\\u2039': 'lsaquo', '\\u203A': 'rsaquo', '\"': 'quot', '\\u201C': 'ldquo', '\\u201D': 'rdquo', '\\u201E': 'bdquo', '\\xAB': 'laquo', '\\xBB': 'raquo', '(': 'lpar', ')': 'rpar', '[': 'lsqb', ']': 'rsqb', '{': 'lcub', '}': 'rcub', '\\u2308': 'lceil', '\\u2309': 'rceil', '\\u230A': 'lfloor', '\\u230B': 'rfloor', '\\u2985': 'lopar', '\\u2986': 'ropar', '\\u298B': 'lbrke', '\\u298C': 'rbrke', '\\u298D': 'lbrkslu', '\\u298E': 'rbrksld', '\\u298F': 'lbrksld', '\\u2990': 'rbrkslu', '\\u2991': 'langd', '\\u2992': 'rangd', '\\u2993': 'lparlt', '\\u2994': 'rpargt', '\\u2995': 'gtlPar', '\\u2996': 'ltrPar', '\\u27E6': 'lobrk', '\\u27E7': 'robrk', '\\u27E8': 'lang', '\\u27E9': 'rang', '\\u27EA': 'Lang', '\\u27EB': 'Rang', '\\u27EC': 'loang', '\\u27ED': 'roang', '\\u2772': 'lbbrk', '\\u2773': 'rbbrk', '\\u2016': 'Vert', '\\xA7': 'sect', '\\xB6': 'para', '@': 'commat', '*': 'ast', '/': 'sol', 'undefined': null, '&': 'amp', '#': 'num', '%': 'percnt', '\\u2030': 'permil', '\\u2031': 'pertenk', '\\u2020': 'dagger', '\\u2021': 'Dagger', '\\u2022': 'bull', '\\u2043': 'hybull', '\\u2032': 'prime', '\\u2033': 'Prime', '\\u2034': 'tprime', '\\u2057': 'qprime', '\\u2035': 'bprime', '\\u2041': 'caret', '`': 'grave', '\\xB4': 'acute', '\\u02DC': 'tilde', '^': 'Hat', '\\xAF': 'macr', '\\u02D8': 'breve', '\\u02D9': 'dot', '\\xA8': 'die', '\\u02DA': 'ring', '\\u02DD': 'dblac', '\\xB8': 'cedil', '\\u02DB': 'ogon', '\\u02C6': 'circ', '\\u02C7': 'caron', '\\xB0': 'deg', '\\xA9': 'copy', '\\xAE': 'reg', '\\u2117': 'copysr', '\\u2118': 'wp', '\\u211E': 'rx', '\\u2127': 'mho', '\\u2129': 'iiota', '\\u2190': 'larr', '\\u219A': 'nlarr', '\\u2192': 'rarr', '\\u219B': 'nrarr', '\\u2191': 'uarr', '\\u2193': 'darr', '\\u2194': 'harr', '\\u21AE': 'nharr', '\\u2195': 'varr', '\\u2196': 'nwarr', '\\u2197': 'nearr', '\\u2198': 'searr', '\\u2199': 'swarr', '\\u219D': 'rarrw', '\\u219D\\u0338': 'nrarrw', '\\u219E': 'Larr', '\\u219F': 'Uarr', '\\u21A0': 'Rarr', '\\u21A1': 'Darr', '\\u21A2': 'larrtl', '\\u21A3': 'rarrtl', '\\u21A4': 'mapstoleft', '\\u21A5': 'mapstoup', '\\u21A6': 'map', '\\u21A7': 'mapstodown', '\\u21A9': 'larrhk', '\\u21AA': 'rarrhk', '\\u21AB': 'larrlp', '\\u21AC': 'rarrlp', '\\u21AD': 'harrw', '\\u21B0': 'lsh', '\\u21B1': 'rsh', '\\u21B2': 'ldsh', '\\u21B3': 'rdsh', '\\u21B5': 'crarr', '\\u21B6': 'cularr', '\\u21B7': 'curarr', '\\u21BA': 'olarr', '\\u21BB': 'orarr', '\\u21BC': 'lharu', '\\u21BD': 'lhard', '\\u21BE': 'uharr', '\\u21BF': 'uharl', '\\u21C0': 'rharu', '\\u21C1': 'rhard', '\\u21C2': 'dharr', '\\u21C3': 'dharl', '\\u21C4': 'rlarr', '\\u21C5': 'udarr', '\\u21C6': 'lrarr', '\\u21C7': 'llarr', '\\u21C8': 'uuarr', '\\u21C9': 'rrarr', '\\u21CA': 'ddarr', '\\u21CB': 'lrhar', '\\u21CC': 'rlhar', '\\u21D0': 'lArr', '\\u21CD': 'nlArr', '\\u21D1': 'uArr', '\\u21D2': 'rArr', '\\u21CF': 'nrArr', '\\u21D3': 'dArr', '\\u21D4': 'iff', '\\u21CE': 'nhArr', '\\u21D5': 'vArr', '\\u21D6': 'nwArr', '\\u21D7': 'neArr', '\\u21D8': 'seArr', '\\u21D9': 'swArr', '\\u21DA': 'lAarr', '\\u21DB': 'rAarr', '\\u21DD': 'zigrarr', '\\u21E4': 'larrb', '\\u21E5': 'rarrb', '\\u21F5': 'duarr', '\\u21FD': 'loarr', '\\u21FE': 'roarr', '\\u21FF': 'hoarr', '\\u2200': 'forall', '\\u2201': 'comp', '\\u2202': 'part', '\\u2202\\u0338': 'npart', '\\u2203': 'exist', '\\u2204': 'nexist', '\\u2205': 'empty', '\\u2207': 'Del', '\\u2208': 'in', '\\u2209': 'notin', '\\u220B': 'ni', '\\u220C': 'notni', '\\u03F6': 'bepsi', '\\u220F': 'prod', '\\u2210': 'coprod', '\\u2211': 'sum', '+': 'plus', '\\xB1': 'pm', '\\xF7': 'div', '\\xD7': 'times', '<': 'lt', '\\u226E': 'nlt', '<\\u20D2': 'nvlt', '=': 'equals', '\\u2260': 'ne', '=\\u20E5': 'bne', '\\u2A75': 'Equal', '>': 'gt', '\\u226F': 'ngt', '>\\u20D2': 'nvgt', '\\xAC': 'not', '|': 'vert', '\\xA6': 'brvbar', '\\u2212': 'minus', '\\u2213': 'mp', '\\u2214': 'plusdo', '\\u2044': 'frasl', '\\u2216': 'setmn', '\\u2217': 'lowast', '\\u2218': 'compfn', '\\u221A': 'Sqrt', '\\u221D': 'prop', '\\u221E': 'infin', '\\u221F': 'angrt', '\\u2220': 'ang', '\\u2220\\u20D2': 'nang', '\\u2221': 'angmsd', '\\u2222': 'angsph', '\\u2223': 'mid', '\\u2224': 'nmid', '\\u2225': 'par', '\\u2226': 'npar', '\\u2227': 'and', '\\u2228': 'or', '\\u2229': 'cap', '\\u2229\\uFE00': 'caps', '\\u222A': 'cup', '\\u222A\\uFE00': 'cups', '\\u222B': 'int', '\\u222C': 'Int', '\\u222D': 'tint', '\\u2A0C': 'qint', '\\u222E': 'oint', '\\u222F': 'Conint', '\\u2230': 'Cconint', '\\u2231': 'cwint', '\\u2232': 'cwconint', '\\u2233': 'awconint', '\\u2234': 'there4', '\\u2235': 'becaus', '\\u2236': 'ratio', '\\u2237': 'Colon', '\\u2238': 'minusd', '\\u223A': 'mDDot', '\\u223B': 'homtht', '\\u223C': 'sim', '\\u2241': 'nsim', '\\u223C\\u20D2': 'nvsim', '\\u223D': 'bsim', '\\u223D\\u0331': 'race', '\\u223E': 'ac', '\\u223E\\u0333': 'acE', '\\u223F': 'acd', '\\u2240': 'wr', '\\u2242': 'esim', '\\u2242\\u0338': 'nesim', '\\u2243': 'sime', '\\u2244': 'nsime', '\\u2245': 'cong', '\\u2247': 'ncong', '\\u2246': 'simne', '\\u2248': 'ap', '\\u2249': 'nap', '\\u224A': 'ape', '\\u224B': 'apid', '\\u224B\\u0338': 'napid', '\\u224C': 'bcong', '\\u224D': 'CupCap', '\\u226D': 'NotCupCap', '\\u224D\\u20D2': 'nvap', '\\u224E': 'bump', '\\u224E\\u0338': 'nbump', '\\u224F': 'bumpe', '\\u224F\\u0338': 'nbumpe', '\\u2250': 'doteq', '\\u2250\\u0338': 'nedot', '\\u2251': 'eDot', '\\u2252': 'efDot', '\\u2253': 'erDot', '\\u2254': 'colone', '\\u2255': 'ecolon', '\\u2256': 'ecir', '\\u2257': 'cire', '\\u2259': 'wedgeq', '\\u225A': 'veeeq', '\\u225C': 'trie', '\\u225F': 'equest', '\\u2261': 'equiv', '\\u2262': 'nequiv', '\\u2261\\u20E5': 'bnequiv', '\\u2264': 'le', '\\u2270': 'nle', '\\u2264\\u20D2': 'nvle', '\\u2265': 'ge', '\\u2271': 'nge', '\\u2265\\u20D2': 'nvge', '\\u2266': 'lE', '\\u2266\\u0338': 'nlE', '\\u2267': 'gE', '\\u2267\\u0338': 'ngE', '\\u2268\\uFE00': 'lvnE', '\\u2268': 'lnE', '\\u2269': 'gnE', '\\u2269\\uFE00': 'gvnE', '\\u226A': 'll', '\\u226A\\u0338': 'nLtv', '\\u226A\\u20D2': 'nLt', '\\u226B': 'gg', '\\u226B\\u0338': 'nGtv', '\\u226B\\u20D2': 'nGt', '\\u226C': 'twixt', '\\u2272': 'lsim', '\\u2274': 'nlsim', '\\u2273': 'gsim', '\\u2275': 'ngsim', '\\u2276': 'lg', '\\u2278': 'ntlg', '\\u2277': 'gl', '\\u2279': 'ntgl', '\\u227A': 'pr', '\\u2280': 'npr', '\\u227B': 'sc', '\\u2281': 'nsc', '\\u227C': 'prcue', '\\u22E0': 'nprcue', '\\u227D': 'sccue', '\\u22E1': 'nsccue', '\\u227E': 'prsim', '\\u227F': 'scsim', '\\u227F\\u0338': 'NotSucceedsTilde', '\\u2282': 'sub', '\\u2284': 'nsub', '\\u2282\\u20D2': 'vnsub', '\\u2283': 'sup', '\\u2285': 'nsup', '\\u2283\\u20D2': 'vnsup', '\\u2286': 'sube', '\\u2288': 'nsube', '\\u2287': 'supe', '\\u2289': 'nsupe', '\\u228A\\uFE00': 'vsubne', '\\u228A': 'subne', '\\u228B\\uFE00': 'vsupne', '\\u228B': 'supne', '\\u228D': 'cupdot', '\\u228E': 'uplus', '\\u228F': 'sqsub', '\\u228F\\u0338': 'NotSquareSubset', '\\u2290': 'sqsup', '\\u2290\\u0338': 'NotSquareSuperset', '\\u2291': 'sqsube', '\\u22E2': 'nsqsube', '\\u2292': 'sqsupe', '\\u22E3': 'nsqsupe', '\\u2293': 'sqcap', '\\u2293\\uFE00': 'sqcaps', '\\u2294': 'sqcup', '\\u2294\\uFE00': 'sqcups', '\\u2295': 'oplus', '\\u2296': 'ominus', '\\u2297': 'otimes', '\\u2298': 'osol', '\\u2299': 'odot', '\\u229A': 'ocir', '\\u229B': 'oast', '\\u229D': 'odash', '\\u229E': 'plusb', '\\u229F': 'minusb', '\\u22A0': 'timesb', '\\u22A1': 'sdotb', '\\u22A2': 'vdash', '\\u22AC': 'nvdash', '\\u22A3': 'dashv', '\\u22A4': 'top', '\\u22A5': 'bot', '\\u22A7': 'models', '\\u22A8': 'vDash', '\\u22AD': 'nvDash', '\\u22A9': 'Vdash', '\\u22AE': 'nVdash', '\\u22AA': 'Vvdash', '\\u22AB': 'VDash', '\\u22AF': 'nVDash', '\\u22B0': 'prurel', '\\u22B2': 'vltri', '\\u22EA': 'nltri', '\\u22B3': 'vrtri', '\\u22EB': 'nrtri', '\\u22B4': 'ltrie', '\\u22EC': 'nltrie', '\\u22B4\\u20D2': 'nvltrie', '\\u22B5': 'rtrie', '\\u22ED': 'nrtrie', '\\u22B5\\u20D2': 'nvrtrie', '\\u22B6': 'origof', '\\u22B7': 'imof', '\\u22B8': 'mumap', '\\u22B9': 'hercon', '\\u22BA': 'intcal', '\\u22BB': 'veebar', '\\u22BD': 'barvee', '\\u22BE': 'angrtvb', '\\u22BF': 'lrtri', '\\u22C0': 'Wedge', '\\u22C1': 'Vee', '\\u22C2': 'xcap', '\\u22C3': 'xcup', '\\u22C4': 'diam', '\\u22C5': 'sdot', '\\u22C6': 'Star', '\\u22C7': 'divonx', '\\u22C8': 'bowtie', '\\u22C9': 'ltimes', '\\u22CA': 'rtimes', '\\u22CB': 'lthree', '\\u22CC': 'rthree', '\\u22CD': 'bsime', '\\u22CE': 'cuvee', '\\u22CF': 'cuwed', '\\u22D0': 'Sub', '\\u22D1': 'Sup', '\\u22D2': 'Cap', '\\u22D3': 'Cup', '\\u22D4': 'fork', '\\u22D5': 'epar', '\\u22D6': 'ltdot', '\\u22D7': 'gtdot', '\\u22D8': 'Ll', '\\u22D8\\u0338': 'nLl', '\\u22D9': 'Gg', '\\u22D9\\u0338': 'nGg', '\\u22DA\\uFE00': 'lesg', '\\u22DA': 'leg', '\\u22DB': 'gel', '\\u22DB\\uFE00': 'gesl', '\\u22DE': 'cuepr', '\\u22DF': 'cuesc', '\\u22E6': 'lnsim', '\\u22E7': 'gnsim', '\\u22E8': 'prnsim', '\\u22E9': 'scnsim', '\\u22EE': 'vellip', '\\u22EF': 'ctdot', '\\u22F0': 'utdot', '\\u22F1': 'dtdot', '\\u22F2': 'disin', '\\u22F3': 'isinsv', '\\u22F4': 'isins', '\\u22F5': 'isindot', '\\u22F5\\u0338': 'notindot', '\\u22F6': 'notinvc', '\\u22F7': 'notinvb', '\\u22F9': 'isinE', '\\u22F9\\u0338': 'notinE', '\\u22FA': 'nisd', '\\u22FB': 'xnis', '\\u22FC': 'nis', '\\u22FD': 'notnivc', '\\u22FE': 'notnivb', '\\u2305': 'barwed', '\\u2306': 'Barwed', '\\u230C': 'drcrop', '\\u230D': 'dlcrop', '\\u230E': 'urcrop', '\\u230F': 'ulcrop', '\\u2310': 'bnot', '\\u2312': 'profline', '\\u2313': 'profsurf', '\\u2315': 'telrec', '\\u2316': 'target', '\\u231C': 'ulcorn', '\\u231D': 'urcorn', '\\u231E': 'dlcorn', '\\u231F': 'drcorn', '\\u2322': 'frown', '\\u2323': 'smile', '\\u232D': 'cylcty', '\\u232E': 'profalar', '\\u2336': 'topbot', '\\u233D': 'ovbar', '\\u233F': 'solbar', '\\u237C': 'angzarr', '\\u23B0': 'lmoust', '\\u23B1': 'rmoust', '\\u23B4': 'tbrk', '\\u23B5': 'bbrk', '\\u23B6': 'bbrktbrk', '\\u23DC': 'OverParenthesis', '\\u23DD': 'UnderParenthesis', '\\u23DE': 'OverBrace', '\\u23DF': 'UnderBrace', '\\u23E2': 'trpezium', '\\u23E7': 'elinters', '\\u2423': 'blank', '\\u2500': 'boxh', '\\u2502': 'boxv', '\\u250C': 'boxdr', '\\u2510': 'boxdl', '\\u2514': 'boxur', '\\u2518': 'boxul', '\\u251C': 'boxvr', '\\u2524': 'boxvl', '\\u252C': 'boxhd', '\\u2534': 'boxhu', '\\u253C': 'boxvh', '\\u2550': 'boxH', '\\u2551': 'boxV', '\\u2552': 'boxdR', '\\u2553': 'boxDr', '\\u2554': 'boxDR', '\\u2555': 'boxdL', '\\u2556': 'boxDl', '\\u2557': 'boxDL', '\\u2558': 'boxuR', '\\u2559': 'boxUr', '\\u255A': 'boxUR', '\\u255B': 'boxuL', '\\u255C': 'boxUl', '\\u255D': 'boxUL', '\\u255E': 'boxvR', '\\u255F': 'boxVr', '\\u2560': 'boxVR', '\\u2561': 'boxvL', '\\u2562': 'boxVl', '\\u2563': 'boxVL', '\\u2564': 'boxHd', '\\u2565': 'boxhD', '\\u2566': 'boxHD', '\\u2567': 'boxHu', '\\u2568': 'boxhU', '\\u2569': 'boxHU', '\\u256A': 'boxvH', '\\u256B': 'boxVh', '\\u256C': 'boxVH', '\\u2580': 'uhblk', '\\u2584': 'lhblk', '\\u2588': 'block', '\\u2591': 'blk14', '\\u2592': 'blk12', '\\u2593': 'blk34', '\\u25A1': 'squ', '\\u25AA': 'squf', '\\u25AB': 'EmptyVerySmallSquare', '\\u25AD': 'rect', '\\u25AE': 'marker', '\\u25B1': 'fltns', '\\u25B3': 'xutri', '\\u25B4': 'utrif', '\\u25B5': 'utri', '\\u25B8': 'rtrif', '\\u25B9': 'rtri', '\\u25BD': 'xdtri', '\\u25BE': 'dtrif', '\\u25BF': 'dtri', '\\u25C2': 'ltrif', '\\u25C3': 'ltri', '\\u25CA': 'loz', '\\u25CB': 'cir', '\\u25EC': 'tridot', '\\u25EF': 'xcirc', '\\u25F8': 'ultri', '\\u25F9': 'urtri', '\\u25FA': 'lltri', '\\u25FB': 'EmptySmallSquare', '\\u25FC': 'FilledSmallSquare', '\\u2605': 'starf', '\\u2606': 'star', '\\u260E': 'phone', '\\u2640': 'female', '\\u2642': 'male', '\\u2660': 'spades', '\\u2663': 'clubs', '\\u2665': 'hearts', '\\u2666': 'diams', '\\u266A': 'sung', '\\u2713': 'check', '\\u2717': 'cross', '\\u2720': 'malt', '\\u2736': 'sext', '\\u2758': 'VerticalSeparator', '\\u27C8': 'bsolhsub', '\\u27C9': 'suphsol', '\\u27F5': 'xlarr', '\\u27F6': 'xrarr', '\\u27F7': 'xharr', '\\u27F8': 'xlArr', '\\u27F9': 'xrArr', '\\u27FA': 'xhArr', '\\u27FC': 'xmap', '\\u27FF': 'dzigrarr', '\\u2902': 'nvlArr', '\\u2903': 'nvrArr', '\\u2904': 'nvHarr', '\\u2905': 'Map', '\\u290C': 'lbarr', '\\u290D': 'rbarr', '\\u290E': 'lBarr', '\\u290F': 'rBarr', '\\u2910': 'RBarr', '\\u2911': 'DDotrahd', '\\u2912': 'UpArrowBar', '\\u2913': 'DownArrowBar', '\\u2916': 'Rarrtl', '\\u2919': 'latail', '\\u291A': 'ratail', '\\u291B': 'lAtail', '\\u291C': 'rAtail', '\\u291D': 'larrfs', '\\u291E': 'rarrfs', '\\u291F': 'larrbfs', '\\u2920': 'rarrbfs', '\\u2923': 'nwarhk', '\\u2924': 'nearhk', '\\u2925': 'searhk', '\\u2926': 'swarhk', '\\u2927': 'nwnear', '\\u2928': 'toea', '\\u2929': 'tosa', '\\u292A': 'swnwar', '\\u2933': 'rarrc', '\\u2933\\u0338': 'nrarrc', '\\u2935': 'cudarrr', '\\u2936': 'ldca', '\\u2937': 'rdca', '\\u2938': 'cudarrl', '\\u2939': 'larrpl', '\\u293C': 'curarrm', '\\u293D': 'cularrp', '\\u2945': 'rarrpl', '\\u2948': 'harrcir', '\\u2949': 'Uarrocir', '\\u294A': 'lurdshar', '\\u294B': 'ldrushar', '\\u294E': 'LeftRightVector', '\\u294F': 'RightUpDownVector', '\\u2950': 'DownLeftRightVector', '\\u2951': 'LeftUpDownVector', '\\u2952': 'LeftVectorBar', '\\u2953': 'RightVectorBar', '\\u2954': 'RightUpVectorBar', '\\u2955': 'RightDownVectorBar', '\\u2956': 'DownLeftVectorBar', '\\u2957': 'DownRightVectorBar', '\\u2958': 'LeftUpVectorBar', '\\u2959': 'LeftDownVectorBar', '\\u295A': 'LeftTeeVector', '\\u295B': 'RightTeeVector', '\\u295C': 'RightUpTeeVector', '\\u295D': 'RightDownTeeVector', '\\u295E': 'DownLeftTeeVector', '\\u295F': 'DownRightTeeVector', '\\u2960': 'LeftUpTeeVector', '\\u2961': 'LeftDownTeeVector', '\\u2962': 'lHar', '\\u2963': 'uHar', '\\u2964': 'rHar', '\\u2965': 'dHar', '\\u2966': 'luruhar', '\\u2967': 'ldrdhar', '\\u2968': 'ruluhar', '\\u2969': 'rdldhar', '\\u296A': 'lharul', '\\u296B': 'llhard', '\\u296C': 'rharul', '\\u296D': 'lrhard', '\\u296E': 'udhar', '\\u296F': 'duhar', '\\u2970': 'RoundImplies', '\\u2971': 'erarr', '\\u2972': 'simrarr', '\\u2973': 'larrsim', '\\u2974': 'rarrsim', '\\u2975': 'rarrap', '\\u2976': 'ltlarr', '\\u2978': 'gtrarr', '\\u2979': 'subrarr', '\\u297B': 'suplarr', '\\u297C': 'lfisht', '\\u297D': 'rfisht', '\\u297E': 'ufisht', '\\u297F': 'dfisht', '\\u299A': 'vzigzag', '\\u299C': 'vangrt', '\\u299D': 'angrtvbd', '\\u29A4': 'ange', '\\u29A5': 'range', '\\u29A6': 'dwangle', '\\u29A7': 'uwangle', '\\u29A8': 'angmsdaa', '\\u29A9': 'angmsdab', '\\u29AA': 'angmsdac', '\\u29AB': 'angmsdad', '\\u29AC': 'angmsdae', '\\u29AD': 'angmsdaf', '\\u29AE': 'angmsdag', '\\u29AF': 'angmsdah', '\\u29B0': 'bemptyv', '\\u29B1': 'demptyv', '\\u29B2': 'cemptyv', '\\u29B3': 'raemptyv', '\\u29B4': 'laemptyv', '\\u29B5': 'ohbar', '\\u29B6': 'omid', '\\u29B7': 'opar', '\\u29B9': 'operp', '\\u29BB': 'olcross', '\\u29BC': 'odsold', '\\u29BE': 'olcir', '\\u29BF': 'ofcir', '\\u29C0': 'olt', '\\u29C1': 'ogt', '\\u29C2': 'cirscir', '\\u29C3': 'cirE', '\\u29C4': 'solb', '\\u29C5': 'bsolb', '\\u29C9': 'boxbox', '\\u29CD': 'trisb', '\\u29CE': 'rtriltri', '\\u29CF': 'LeftTriangleBar', '\\u29CF\\u0338': 'NotLeftTriangleBar', '\\u29D0': 'RightTriangleBar', '\\u29D0\\u0338': 'NotRightTriangleBar', '\\u29DC': 'iinfin', '\\u29DD': 'infintie', '\\u29DE': 'nvinfin', '\\u29E3': 'eparsl', '\\u29E4': 'smeparsl', '\\u29E5': 'eqvparsl', '\\u29EB': 'lozf', '\\u29F4': 'RuleDelayed', '\\u29F6': 'dsol', '\\u2A00': 'xodot', '\\u2A01': 'xoplus', '\\u2A02': 'xotime', '\\u2A04': 'xuplus', '\\u2A06': 'xsqcup', '\\u2A0D': 'fpartint', '\\u2A10': 'cirfnint', '\\u2A11': 'awint', '\\u2A12': 'rppolint', '\\u2A13': 'scpolint', '\\u2A14': 'npolint', '\\u2A15': 'pointint', '\\u2A16': 'quatint', '\\u2A17': 'intlarhk', '\\u2A22': 'pluscir', '\\u2A23': 'plusacir', '\\u2A24': 'simplus', '\\u2A25': 'plusdu', '\\u2A26': 'plussim', '\\u2A27': 'plustwo', '\\u2A29': 'mcomma', '\\u2A2A': 'minusdu', '\\u2A2D': 'loplus', '\\u2A2E': 'roplus', '\\u2A2F': 'Cross', '\\u2A30': 'timesd', '\\u2A31': 'timesbar', '\\u2A33': 'smashp', '\\u2A34': 'lotimes', '\\u2A35': 'rotimes', '\\u2A36': 'otimesas', '\\u2A37': 'Otimes', '\\u2A38': 'odiv', '\\u2A39': 'triplus', '\\u2A3A': 'triminus', '\\u2A3B': 'tritime', '\\u2A3C': 'iprod', '\\u2A3F': 'amalg', '\\u2A40': 'capdot', '\\u2A42': 'ncup', '\\u2A43': 'ncap', '\\u2A44': 'capand', '\\u2A45': 'cupor', '\\u2A46': 'cupcap', '\\u2A47': 'capcup', '\\u2A48': 'cupbrcap', '\\u2A49': 'capbrcup', '\\u2A4A': 'cupcup', '\\u2A4B': 'capcap', '\\u2A4C': 'ccups', '\\u2A4D': 'ccaps', '\\u2A50': 'ccupssm', '\\u2A53': 'And', '\\u2A54': 'Or', '\\u2A55': 'andand', '\\u2A56': 'oror', '\\u2A57': 'orslope', '\\u2A58': 'andslope', '\\u2A5A': 'andv', '\\u2A5B': 'orv', '\\u2A5C': 'andd', '\\u2A5D': 'ord', '\\u2A5F': 'wedbar', '\\u2A66': 'sdote', '\\u2A6A': 'simdot', '\\u2A6D': 'congdot', '\\u2A6D\\u0338': 'ncongdot', '\\u2A6E': 'easter', '\\u2A6F': 'apacir', '\\u2A70': 'apE', '\\u2A70\\u0338': 'napE', '\\u2A71': 'eplus', '\\u2A72': 'pluse', '\\u2A73': 'Esim', '\\u2A77': 'eDDot', '\\u2A78': 'equivDD', '\\u2A79': 'ltcir', '\\u2A7A': 'gtcir', '\\u2A7B': 'ltquest', '\\u2A7C': 'gtquest', '\\u2A7D': 'les', '\\u2A7D\\u0338': 'nles', '\\u2A7E': 'ges', '\\u2A7E\\u0338': 'nges', '\\u2A7F': 'lesdot', '\\u2A80': 'gesdot', '\\u2A81': 'lesdoto', '\\u2A82': 'gesdoto', '\\u2A83': 'lesdotor', '\\u2A84': 'gesdotol', '\\u2A85': 'lap', '\\u2A86': 'gap', '\\u2A87': 'lne', '\\u2A88': 'gne', '\\u2A89': 'lnap', '\\u2A8A': 'gnap', '\\u2A8B': 'lEg', '\\u2A8C': 'gEl', '\\u2A8D': 'lsime', '\\u2A8E': 'gsime', '\\u2A8F': 'lsimg', '\\u2A90': 'gsiml', '\\u2A91': 'lgE', '\\u2A92': 'glE', '\\u2A93': 'lesges', '\\u2A94': 'gesles', '\\u2A95': 'els', '\\u2A96': 'egs', '\\u2A97': 'elsdot', '\\u2A98': 'egsdot', '\\u2A99': 'el', '\\u2A9A': 'eg', '\\u2A9D': 'siml', '\\u2A9E': 'simg', '\\u2A9F': 'simlE', '\\u2AA0': 'simgE', '\\u2AA1': 'LessLess', '\\u2AA1\\u0338': 'NotNestedLessLess', '\\u2AA2': 'GreaterGreater', '\\u2AA2\\u0338': 'NotNestedGreaterGreater', '\\u2AA4': 'glj', '\\u2AA5': 'gla', '\\u2AA6': 'ltcc', '\\u2AA7': 'gtcc', '\\u2AA8': 'lescc', '\\u2AA9': 'gescc', '\\u2AAA': 'smt', '\\u2AAB': 'lat', '\\u2AAC': 'smte', '\\u2AAC\\uFE00': 'smtes', '\\u2AAD': 'late', '\\u2AAD\\uFE00': 'lates', '\\u2AAE': 'bumpE', '\\u2AAF': 'pre', '\\u2AAF\\u0338': 'npre', '\\u2AB0': 'sce', '\\u2AB0\\u0338': 'nsce', '\\u2AB3': 'prE', '\\u2AB4': 'scE', '\\u2AB5': 'prnE', '\\u2AB6': 'scnE', '\\u2AB7': 'prap', '\\u2AB8': 'scap', '\\u2AB9': 'prnap', '\\u2ABA': 'scnap', '\\u2ABB': 'Pr', '\\u2ABC': 'Sc', '\\u2ABD': 'subdot', '\\u2ABE': 'supdot', '\\u2ABF': 'subplus', '\\u2AC0': 'supplus', '\\u2AC1': 'submult', '\\u2AC2': 'supmult', '\\u2AC3': 'subedot', '\\u2AC4': 'supedot', '\\u2AC5': 'subE', '\\u2AC5\\u0338': 'nsubE', '\\u2AC6': 'supE', '\\u2AC6\\u0338': 'nsupE', '\\u2AC7': 'subsim', '\\u2AC8': 'supsim', '\\u2ACB\\uFE00': 'vsubnE', '\\u2ACB': 'subnE', '\\u2ACC\\uFE00': 'vsupnE', '\\u2ACC': 'supnE', '\\u2ACF': 'csub', '\\u2AD0': 'csup', '\\u2AD1': 'csube', '\\u2AD2': 'csupe', '\\u2AD3': 'subsup', '\\u2AD4': 'supsub', '\\u2AD5': 'subsub', '\\u2AD6': 'supsup', '\\u2AD7': 'suphsub', '\\u2AD8': 'supdsub', '\\u2AD9': 'forkv', '\\u2ADA': 'topfork', '\\u2ADB': 'mlcp', '\\u2AE4': 'Dashv', '\\u2AE6': 'Vdashl', '\\u2AE7': 'Barv', '\\u2AE8': 'vBar', '\\u2AE9': 'vBarv', '\\u2AEB': 'Vbar', '\\u2AEC': 'Not', '\\u2AED': 'bNot', '\\u2AEE': 'rnmid', '\\u2AEF': 'cirmid', '\\u2AF0': 'midcir', '\\u2AF1': 'topcir', '\\u2AF2': 'nhpar', '\\u2AF3': 'parsim', '\\u2AFD': 'parsl', '\\u2AFD\\u20E5': 'nparsl', '\\u266D': 'flat', '\\u266E': 'natur', '\\u266F': 'sharp', '\\xA4': 'curren', '\\xA2': 'cent', '$': 'dollar', '\\xA3': 'pound', '\\xA5': 'yen', '\\u20AC': 'euro', '\\xB9': 'sup1', '\\xBD': 'half', '\\u2153': 'frac13', '\\xBC': 'frac14', '\\u2155': 'frac15', '\\u2159': 'frac16', '\\u215B': 'frac18', '\\xB2': 'sup2', '\\u2154': 'frac23', '\\u2156': 'frac25', '\\xB3': 'sup3', '\\xBE': 'frac34', '\\u2157': 'frac35', '\\u215C': 'frac38', '\\u2158': 'frac45', '\\u215A': 'frac56', '\\u215D': 'frac58', '\\u215E': 'frac78', '\\uD835\\uDCB6': 'ascr', '\\uD835\\uDD52': 'aopf', '\\uD835\\uDD1E': 'afr', '\\uD835\\uDD38': 'Aopf', '\\uD835\\uDD04': 'Afr', '\\uD835\\uDC9C': 'Ascr', '\\xAA': 'ordf', '\\xE1': 'aacute', '\\xC1': 'Aacute', '\\xE0': 'agrave', '\\xC0': 'Agrave', '\\u0103': 'abreve', '\\u0102': 'Abreve', '\\xE2': 'acirc', '\\xC2': 'Acirc', '\\xE5': 'aring', '\\xC5': 'angst', '\\xE4': 'auml', '\\xC4': 'Auml', '\\xE3': 'atilde', '\\xC3': 'Atilde', '\\u0105': 'aogon', '\\u0104': 'Aogon', '\\u0101': 'amacr', '\\u0100': 'Amacr', '\\xE6': 'aelig', '\\xC6': 'AElig', '\\uD835\\uDCB7': 'bscr', '\\uD835\\uDD53': 'bopf', '\\uD835\\uDD1F': 'bfr', '\\uD835\\uDD39': 'Bopf', '\\u212C': 'Bscr', '\\uD835\\uDD05': 'Bfr', '\\uD835\\uDD20': 'cfr', '\\uD835\\uDCB8': 'cscr', '\\uD835\\uDD54': 'copf', '\\u212D': 'Cfr', '\\uD835\\uDC9E': 'Cscr', '\\u2102': 'Copf', '\\u0107': 'cacute', '\\u0106': 'Cacute', '\\u0109': 'ccirc', '\\u0108': 'Ccirc', '\\u010D': 'ccaron', '\\u010C': 'Ccaron', '\\u010B': 'cdot', '\\u010A': 'Cdot', '\\xE7': 'ccedil', '\\xC7': 'Ccedil', '\\u2105': 'incare', '\\uD835\\uDD21': 'dfr', '\\u2146': 'dd', '\\uD835\\uDD55': 'dopf', '\\uD835\\uDCB9': 'dscr', '\\uD835\\uDC9F': 'Dscr', '\\uD835\\uDD07': 'Dfr', '\\u2145': 'DD', '\\uD835\\uDD3B': 'Dopf', '\\u010F': 'dcaron', '\\u010E': 'Dcaron', '\\u0111': 'dstrok', '\\u0110': 'Dstrok', '\\xF0': 'eth', '\\xD0': 'ETH', '\\u2147': 'ee', '\\u212F': 'escr', '\\uD835\\uDD22': 'efr', '\\uD835\\uDD56': 'eopf', '\\u2130': 'Escr', '\\uD835\\uDD08': 'Efr', '\\uD835\\uDD3C': 'Eopf', '\\xE9': 'eacute', '\\xC9': 'Eacute', '\\xE8': 'egrave', '\\xC8': 'Egrave', '\\xEA': 'ecirc', '\\xCA': 'Ecirc', '\\u011B': 'ecaron', '\\u011A': 'Ecaron', '\\xEB': 'euml', '\\xCB': 'Euml', '\\u0117': 'edot', '\\u0116': 'Edot', '\\u0119': 'eogon', '\\u0118': 'Eogon', '\\u0113': 'emacr', '\\u0112': 'Emacr', '\\uD835\\uDD23': 'ffr', '\\uD835\\uDD57': 'fopf', '\\uD835\\uDCBB': 'fscr', '\\uD835\\uDD09': 'Ffr', '\\uD835\\uDD3D': 'Fopf', '\\u2131': 'Fscr', '\\uFB00': 'fflig', '\\uFB03': 'ffilig', '\\uFB04': 'ffllig', '\\uFB01': 'filig', 'fj': 'fjlig', '\\uFB02': 'fllig', '\\u0192': 'fnof', '\\u210A': 'gscr', '\\uD835\\uDD58': 'gopf', '\\uD835\\uDD24': 'gfr', '\\uD835\\uDCA2': 'Gscr', '\\uD835\\uDD3E': 'Gopf', '\\uD835\\uDD0A': 'Gfr', '\\u01F5': 'gacute', '\\u011F': 'gbreve', '\\u011E': 'Gbreve', '\\u011D': 'gcirc', '\\u011C': 'Gcirc', '\\u0121': 'gdot', '\\u0120': 'Gdot', '\\u0122': 'Gcedil', '\\uD835\\uDD25': 'hfr', '\\u210E': 'planckh', '\\uD835\\uDCBD': 'hscr', '\\uD835\\uDD59': 'hopf', '\\u210B': 'Hscr', '\\u210C': 'Hfr', '\\u210D': 'Hopf', '\\u0125': 'hcirc', '\\u0124': 'Hcirc', '\\u210F': 'hbar', '\\u0127': 'hstrok', '\\u0126': 'Hstrok', '\\uD835\\uDD5A': 'iopf', '\\uD835\\uDD26': 'ifr', '\\uD835\\uDCBE': 'iscr', '\\u2148': 'ii', '\\uD835\\uDD40': 'Iopf', '\\u2110': 'Iscr', '\\u2111': 'Im', '\\xED': 'iacute', '\\xCD': 'Iacute', '\\xEC': 'igrave', '\\xCC': 'Igrave', '\\xEE': 'icirc', '\\xCE': 'Icirc', '\\xEF': 'iuml', '\\xCF': 'Iuml', '\\u0129': 'itilde', '\\u0128': 'Itilde', '\\u0130': 'Idot', '\\u012F': 'iogon', '\\u012E': 'Iogon', '\\u012B': 'imacr', '\\u012A': 'Imacr', '\\u0133': 'ijlig', '\\u0132': 'IJlig', '\\u0131': 'imath', '\\uD835\\uDCBF': 'jscr', '\\uD835\\uDD5B': 'jopf', '\\uD835\\uDD27': 'jfr', '\\uD835\\uDCA5': 'Jscr', '\\uD835\\uDD0D': 'Jfr', '\\uD835\\uDD41': 'Jopf', '\\u0135': 'jcirc', '\\u0134': 'Jcirc', '\\u0237': 'jmath', '\\uD835\\uDD5C': 'kopf', '\\uD835\\uDCC0': 'kscr', '\\uD835\\uDD28': 'kfr', '\\uD835\\uDCA6': 'Kscr', '\\uD835\\uDD42': 'Kopf', '\\uD835\\uDD0E': 'Kfr', '\\u0137': 'kcedil', '\\u0136': 'Kcedil', '\\uD835\\uDD29': 'lfr', '\\uD835\\uDCC1': 'lscr', '\\u2113': 'ell', '\\uD835\\uDD5D': 'lopf', '\\u2112': 'Lscr', '\\uD835\\uDD0F': 'Lfr', '\\uD835\\uDD43': 'Lopf', '\\u013A': 'lacute', '\\u0139': 'Lacute', '\\u013E': 'lcaron', '\\u013D': 'Lcaron', '\\u013C': 'lcedil', '\\u013B': 'Lcedil', '\\u0142': 'lstrok', '\\u0141': 'Lstrok', '\\u0140': 'lmidot', '\\u013F': 'Lmidot', '\\uD835\\uDD2A': 'mfr', '\\uD835\\uDD5E': 'mopf', '\\uD835\\uDCC2': 'mscr', '\\uD835\\uDD10': 'Mfr', '\\uD835\\uDD44': 'Mopf', '\\u2133': 'Mscr', '\\uD835\\uDD2B': 'nfr', '\\uD835\\uDD5F': 'nopf', '\\uD835\\uDCC3': 'nscr', '\\u2115': 'Nopf', '\\uD835\\uDCA9': 'Nscr', '\\uD835\\uDD11': 'Nfr', '\\u0144': 'nacute', '\\u0143': 'Nacute', '\\u0148': 'ncaron', '\\u0147': 'Ncaron', '\\xF1': 'ntilde', '\\xD1': 'Ntilde', '\\u0146': 'ncedil', '\\u0145': 'Ncedil', '\\u2116': 'numero', '\\u014B': 'eng', '\\u014A': 'ENG', '\\uD835\\uDD60': 'oopf', '\\uD835\\uDD2C': 'ofr', '\\u2134': 'oscr', '\\uD835\\uDCAA': 'Oscr', '\\uD835\\uDD12': 'Ofr', '\\uD835\\uDD46': 'Oopf', '\\xBA': 'ordm', '\\xF3': 'oacute', '\\xD3': 'Oacute', '\\xF2': 'ograve', '\\xD2': 'Ograve', '\\xF4': 'ocirc', '\\xD4': 'Ocirc', '\\xF6': 'ouml', '\\xD6': 'Ouml', '\\u0151': 'odblac', '\\u0150': 'Odblac', '\\xF5': 'otilde', '\\xD5': 'Otilde', '\\xF8': 'oslash', '\\xD8': 'Oslash', '\\u014D': 'omacr', '\\u014C': 'Omacr', '\\u0153': 'oelig', '\\u0152': 'OElig', '\\uD835\\uDD2D': 'pfr', '\\uD835\\uDCC5': 'pscr', '\\uD835\\uDD61': 'popf', '\\u2119': 'Popf', '\\uD835\\uDD13': 'Pfr', '\\uD835\\uDCAB': 'Pscr', '\\uD835\\uDD62': 'qopf', '\\uD835\\uDD2E': 'qfr', '\\uD835\\uDCC6': 'qscr', '\\uD835\\uDCAC': 'Qscr', '\\uD835\\uDD14': 'Qfr', '\\u211A': 'Qopf', '\\u0138': 'kgreen', '\\uD835\\uDD2F': 'rfr', '\\uD835\\uDD63': 'ropf', '\\uD835\\uDCC7': 'rscr', '\\u211B': 'Rscr', '\\u211C': 'Re', '\\u211D': 'Ropf', '\\u0155': 'racute', '\\u0154': 'Racute', '\\u0159': 'rcaron', '\\u0158': 'Rcaron', '\\u0157': 'rcedil', '\\u0156': 'Rcedil', '\\uD835\\uDD64': 'sopf', '\\uD835\\uDCC8': 'sscr', '\\uD835\\uDD30': 'sfr', '\\uD835\\uDD4A': 'Sopf', '\\uD835\\uDD16': 'Sfr', '\\uD835\\uDCAE': 'Sscr', '\\u24C8': 'oS', '\\u015B': 'sacute', '\\u015A': 'Sacute', '\\u015D': 'scirc', '\\u015C': 'Scirc', '\\u0161': 'scaron', '\\u0160': 'Scaron', '\\u015F': 'scedil', '\\u015E': 'Scedil', '\\xDF': 'szlig', '\\uD835\\uDD31': 'tfr', '\\uD835\\uDCC9': 'tscr', '\\uD835\\uDD65': 'topf', '\\uD835\\uDCAF': 'Tscr', '\\uD835\\uDD17': 'Tfr', '\\uD835\\uDD4B': 'Topf', '\\u0165': 'tcaron', '\\u0164': 'Tcaron', '\\u0163': 'tcedil', '\\u0162': 'Tcedil', '\\u2122': 'trade', '\\u0167': 'tstrok', '\\u0166': 'Tstrok', '\\uD835\\uDCCA': 'uscr', '\\uD835\\uDD66': 'uopf', '\\uD835\\uDD32': 'ufr', '\\uD835\\uDD4C': 'Uopf', '\\uD835\\uDD18': 'Ufr', '\\uD835\\uDCB0': 'Uscr', '\\xFA': 'uacute', '\\xDA': 'Uacute', '\\xF9': 'ugrave', '\\xD9': 'Ugrave', '\\u016D': 'ubreve', '\\u016C': 'Ubreve', '\\xFB': 'ucirc', '\\xDB': 'Ucirc', '\\u016F': 'uring', '\\u016E': 'Uring', '\\xFC': 'uuml', '\\xDC': 'Uuml', '\\u0171': 'udblac', '\\u0170': 'Udblac', '\\u0169': 'utilde', '\\u0168': 'Utilde', '\\u0173': 'uogon', '\\u0172': 'Uogon', '\\u016B': 'umacr', '\\u016A': 'Umacr', '\\uD835\\uDD33': 'vfr', '\\uD835\\uDD67': 'vopf', '\\uD835\\uDCCB': 'vscr', '\\uD835\\uDD19': 'Vfr', '\\uD835\\uDD4D': 'Vopf', '\\uD835\\uDCB1': 'Vscr', '\\uD835\\uDD68': 'wopf', '\\uD835\\uDCCC': 'wscr', '\\uD835\\uDD34': 'wfr', '\\uD835\\uDCB2': 'Wscr', '\\uD835\\uDD4E': 'Wopf', '\\uD835\\uDD1A': 'Wfr', '\\u0175': 'wcirc', '\\u0174': 'Wcirc', '\\uD835\\uDD35': 'xfr', '\\uD835\\uDCCD': 'xscr', '\\uD835\\uDD69': 'xopf', '\\uD835\\uDD4F': 'Xopf', '\\uD835\\uDD1B': 'Xfr', '\\uD835\\uDCB3': 'Xscr', '\\uD835\\uDD36': 'yfr', '\\uD835\\uDCCE': 'yscr', '\\uD835\\uDD6A': 'yopf', '\\uD835\\uDCB4': 'Yscr', '\\uD835\\uDD1C': 'Yfr', '\\uD835\\uDD50': 'Yopf', '\\xFD': 'yacute', '\\xDD': 'Yacute', '\\u0177': 'ycirc', '\\u0176': 'Ycirc', '\\xFF': 'yuml', '\\u0178': 'Yuml', '\\uD835\\uDCCF': 'zscr', '\\uD835\\uDD37': 'zfr', '\\uD835\\uDD6B': 'zopf', '\\u2128': 'Zfr', '\\u2124': 'Zopf', '\\uD835\\uDCB5': 'Zscr', '\\u017A': 'zacute', '\\u0179': 'Zacute', '\\u017E': 'zcaron', '\\u017D': 'Zcaron', '\\u017C': 'zdot', '\\u017B': 'Zdot', '\\u01B5': 'imped', '\\xFE': 'thorn', '\\xDE': 'THORN', '\\u0149': 'napos', '\\u03B1': 'alpha', '\\u0391': 'Alpha', '\\u03B2': 'beta', '\\u0392': 'Beta', '\\u03B3': 'gamma', '\\u0393': 'Gamma', '\\u03B4': 'delta', '\\u0394': 'Delta', '\\u03B5': 'epsi', '\\u03F5': 'epsiv', '\\u0395': 'Epsilon', '\\u03DD': 'gammad', '\\u03DC': 'Gammad', '\\u03B6': 'zeta', '\\u0396': 'Zeta', '\\u03B7': 'eta', '\\u0397': 'Eta', '\\u03B8': 'theta', '\\u03D1': 'thetav', '\\u0398': 'Theta', '\\u03B9': 'iota', '\\u0399': 'Iota', '\\u03BA': 'kappa', '\\u03F0': 'kappav', '\\u039A': 'Kappa', '\\u03BB': 'lambda', '\\u039B': 'Lambda', '\\u03BC': 'mu', '\\xB5': 'micro', '\\u039C': 'Mu', '\\u03BD': 'nu', '\\u039D': 'Nu', '\\u03BE': 'xi', '\\u039E': 'Xi', '\\u03BF': 'omicron', '\\u039F': 'Omicron', '\\u03C0': 'pi', '\\u03D6': 'piv', '\\u03A0': 'Pi', '\\u03C1': 'rho', '\\u03F1': 'rhov', '\\u03A1': 'Rho', '\\u03C3': 'sigma', '\\u03A3': 'Sigma', '\\u03C2': 'sigmaf', '\\u03C4': 'tau', '\\u03A4': 'Tau', '\\u03C5': 'upsi', '\\u03A5': 'Upsilon', '\\u03D2': 'Upsi', '\\u03C6': 'phi', '\\u03D5': 'phiv', '\\u03A6': 'Phi', '\\u03C7': 'chi', '\\u03A7': 'Chi', '\\u03C8': 'psi', '\\u03A8': 'Psi', '\\u03C9': 'omega', '\\u03A9': 'ohm', '\\u0430': 'acy', '\\u0410': 'Acy', '\\u0431': 'bcy', '\\u0411': 'Bcy', '\\u0432': 'vcy', '\\u0412': 'Vcy', '\\u0433': 'gcy', '\\u0413': 'Gcy', '\\u0453': 'gjcy', '\\u0403': 'GJcy', '\\u0434': 'dcy', '\\u0414': 'Dcy', '\\u0452': 'djcy', '\\u0402': 'DJcy', '\\u0435': 'iecy', '\\u0415': 'IEcy', '\\u0451': 'iocy', '\\u0401': 'IOcy', '\\u0454': 'jukcy', '\\u0404': 'Jukcy', '\\u0436': 'zhcy', '\\u0416': 'ZHcy', '\\u0437': 'zcy', '\\u0417': 'Zcy', '\\u0455': 'dscy', '\\u0405': 'DScy', '\\u0438': 'icy', '\\u0418': 'Icy', '\\u0456': 'iukcy', '\\u0406': 'Iukcy', '\\u0457': 'yicy', '\\u0407': 'YIcy', '\\u0439': 'jcy', '\\u0419': 'Jcy', '\\u0458': 'jsercy', '\\u0408': 'Jsercy', '\\u043A': 'kcy', '\\u041A': 'Kcy', '\\u045C': 'kjcy', '\\u040C': 'KJcy', '\\u043B': 'lcy', '\\u041B': 'Lcy', '\\u0459': 'ljcy', '\\u0409': 'LJcy', '\\u043C': 'mcy', '\\u041C': 'Mcy', '\\u043D': 'ncy', '\\u041D': 'Ncy', '\\u045A': 'njcy', '\\u040A': 'NJcy', '\\u043E': 'ocy', '\\u041E': 'Ocy', '\\u043F': 'pcy', '\\u041F': 'Pcy', '\\u0440': 'rcy', '\\u0420': 'Rcy', '\\u0441': 'scy', '\\u0421': 'Scy', '\\u0442': 'tcy', '\\u0422': 'Tcy', '\\u045B': 'tshcy', '\\u040B': 'TSHcy', '\\u0443': 'ucy', '\\u0423': 'Ucy', '\\u045E': 'ubrcy', '\\u040E': 'Ubrcy', '\\u0444': 'fcy', '\\u0424': 'Fcy', '\\u0445': 'khcy', '\\u0425': 'KHcy', '\\u0446': 'tscy', '\\u0426': 'TScy', '\\u0447': 'chcy', '\\u0427': 'CHcy', '\\u045F': 'dzcy', '\\u040F': 'DZcy', '\\u0448': 'shcy', '\\u0428': 'SHcy', '\\u0449': 'shchcy', '\\u0429': 'SHCHcy', '\\u044A': 'hardcy', '\\u042A': 'HARDcy', '\\u044B': 'ycy', '\\u042B': 'Ycy', '\\u044C': 'softcy', '\\u042C': 'SOFTcy', '\\u044D': 'ecy', '\\u042D': 'Ecy', '\\u044E': 'yucy', '\\u042E': 'YUcy', '\\u044F': 'yacy', '\\u042F': 'YAcy', '\\u2135': 'aleph', '\\u2136': 'beth', '\\u2137': 'gimel', '\\u2138': 'daleth' };\n\n\tvar regexEscape = /[\"&'<>`]/g;\n\tvar escapeMap = {\n\t\t'\"': '"',\n\t\t'&': '&',\n\t\t'\\'': ''',\n\t\t'<': '<',\n\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n\t\t// following is not strictly necessary unless it’s part of a tag or an\n\t\t// unquoted attribute value. We’re only escaping it to support those\n\t\t// situations, and for XML support.\n\t\t'>': '>',\n\t\t// In Internet Explorer ≤ 8, the backtick character can be used\n\t\t// to break out of (un)quoted attribute values or HTML comments.\n\t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\n\t\t// http://html5sec.org/#133.\n\t\t'`': '`'\n\t};\n\n\tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\n\tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\n\tvar decodeMap = { 'aacute': '\\xE1', 'Aacute': '\\xC1', 'abreve': '\\u0103', 'Abreve': '\\u0102', 'ac': '\\u223E', 'acd': '\\u223F', 'acE': '\\u223E\\u0333', 'acirc': '\\xE2', 'Acirc': '\\xC2', 'acute': '\\xB4', 'acy': '\\u0430', 'Acy': '\\u0410', 'aelig': '\\xE6', 'AElig': '\\xC6', 'af': '\\u2061', 'afr': '\\uD835\\uDD1E', 'Afr': '\\uD835\\uDD04', 'agrave': '\\xE0', 'Agrave': '\\xC0', 'alefsym': '\\u2135', 'aleph': '\\u2135', 'alpha': '\\u03B1', 'Alpha': '\\u0391', 'amacr': '\\u0101', 'Amacr': '\\u0100', 'amalg': '\\u2A3F', 'amp': '&', 'AMP': '&', 'and': '\\u2227', 'And': '\\u2A53', 'andand': '\\u2A55', 'andd': '\\u2A5C', 'andslope': '\\u2A58', 'andv': '\\u2A5A', 'ang': '\\u2220', 'ange': '\\u29A4', 'angle': '\\u2220', 'angmsd': '\\u2221', 'angmsdaa': '\\u29A8', 'angmsdab': '\\u29A9', 'angmsdac': '\\u29AA', 'angmsdad': '\\u29AB', 'angmsdae': '\\u29AC', 'angmsdaf': '\\u29AD', 'angmsdag': '\\u29AE', 'angmsdah': '\\u29AF', 'angrt': '\\u221F', 'angrtvb': '\\u22BE', 'angrtvbd': '\\u299D', 'angsph': '\\u2222', 'angst': '\\xC5', 'angzarr': '\\u237C', 'aogon': '\\u0105', 'Aogon': '\\u0104', 'aopf': '\\uD835\\uDD52', 'Aopf': '\\uD835\\uDD38', 'ap': '\\u2248', 'apacir': '\\u2A6F', 'ape': '\\u224A', 'apE': '\\u2A70', 'apid': '\\u224B', 'apos': '\\'', 'ApplyFunction': '\\u2061', 'approx': '\\u2248', 'approxeq': '\\u224A', 'aring': '\\xE5', 'Aring': '\\xC5', 'ascr': '\\uD835\\uDCB6', 'Ascr': '\\uD835\\uDC9C', 'Assign': '\\u2254', 'ast': '*', 'asymp': '\\u2248', 'asympeq': '\\u224D', 'atilde': '\\xE3', 'Atilde': '\\xC3', 'auml': '\\xE4', 'Auml': '\\xC4', 'awconint': '\\u2233', 'awint': '\\u2A11', 'backcong': '\\u224C', 'backepsilon': '\\u03F6', 'backprime': '\\u2035', 'backsim': '\\u223D', 'backsimeq': '\\u22CD', 'Backslash': '\\u2216', 'Barv': '\\u2AE7', 'barvee': '\\u22BD', 'barwed': '\\u2305', 'Barwed': '\\u2306', 'barwedge': '\\u2305', 'bbrk': '\\u23B5', 'bbrktbrk': '\\u23B6', 'bcong': '\\u224C', 'bcy': '\\u0431', 'Bcy': '\\u0411', 'bdquo': '\\u201E', 'becaus': '\\u2235', 'because': '\\u2235', 'Because': '\\u2235', 'bemptyv': '\\u29B0', 'bepsi': '\\u03F6', 'bernou': '\\u212C', 'Bernoullis': '\\u212C', 'beta': '\\u03B2', 'Beta': '\\u0392', 'beth': '\\u2136', 'between': '\\u226C', 'bfr': '\\uD835\\uDD1F', 'Bfr': '\\uD835\\uDD05', 'bigcap': '\\u22C2', 'bigcirc': '\\u25EF', 'bigcup': '\\u22C3', 'bigodot': '\\u2A00', 'bigoplus': '\\u2A01', 'bigotimes': '\\u2A02', 'bigsqcup': '\\u2A06', 'bigstar': '\\u2605', 'bigtriangledown': '\\u25BD', 'bigtriangleup': '\\u25B3', 'biguplus': '\\u2A04', 'bigvee': '\\u22C1', 'bigwedge': '\\u22C0', 'bkarow': '\\u290D', 'blacklozenge': '\\u29EB', 'blacksquare': '\\u25AA', 'blacktriangle': '\\u25B4', 'blacktriangledown': '\\u25BE', 'blacktriangleleft': '\\u25C2', 'blacktriangleright': '\\u25B8', 'blank': '\\u2423', 'blk12': '\\u2592', 'blk14': '\\u2591', 'blk34': '\\u2593', 'block': '\\u2588', 'bne': '=\\u20E5', 'bnequiv': '\\u2261\\u20E5', 'bnot': '\\u2310', 'bNot': '\\u2AED', 'bopf': '\\uD835\\uDD53', 'Bopf': '\\uD835\\uDD39', 'bot': '\\u22A5', 'bottom': '\\u22A5', 'bowtie': '\\u22C8', 'boxbox': '\\u29C9', 'boxdl': '\\u2510', 'boxdL': '\\u2555', 'boxDl': '\\u2556', 'boxDL': '\\u2557', 'boxdr': '\\u250C', 'boxdR': '\\u2552', 'boxDr': '\\u2553', 'boxDR': '\\u2554', 'boxh': '\\u2500', 'boxH': '\\u2550', 'boxhd': '\\u252C', 'boxhD': '\\u2565', 'boxHd': '\\u2564', 'boxHD': '\\u2566', 'boxhu': '\\u2534', 'boxhU': '\\u2568', 'boxHu': '\\u2567', 'boxHU': '\\u2569', 'boxminus': '\\u229F', 'boxplus': '\\u229E', 'boxtimes': '\\u22A0', 'boxul': '\\u2518', 'boxuL': '\\u255B', 'boxUl': '\\u255C', 'boxUL': '\\u255D', 'boxur': '\\u2514', 'boxuR': '\\u2558', 'boxUr': '\\u2559', 'boxUR': '\\u255A', 'boxv': '\\u2502', 'boxV': '\\u2551', 'boxvh': '\\u253C', 'boxvH': '\\u256A', 'boxVh': '\\u256B', 'boxVH': '\\u256C', 'boxvl': '\\u2524', 'boxvL': '\\u2561', 'boxVl': '\\u2562', 'boxVL': '\\u2563', 'boxvr': '\\u251C', 'boxvR': '\\u255E', 'boxVr': '\\u255F', 'boxVR': '\\u2560', 'bprime': '\\u2035', 'breve': '\\u02D8', 'Breve': '\\u02D8', 'brvbar': '\\xA6', 'bscr': '\\uD835\\uDCB7', 'Bscr': '\\u212C', 'bsemi': '\\u204F', 'bsim': '\\u223D', 'bsime': '\\u22CD', 'bsol': '\\\\', 'bsolb': '\\u29C5', 'bsolhsub': '\\u27C8', 'bull': '\\u2022', 'bullet': '\\u2022', 'bump': '\\u224E', 'bumpe': '\\u224F', 'bumpE': '\\u2AAE', 'bumpeq': '\\u224F', 'Bumpeq': '\\u224E', 'cacute': '\\u0107', 'Cacute': '\\u0106', 'cap': '\\u2229', 'Cap': '\\u22D2', 'capand': '\\u2A44', 'capbrcup': '\\u2A49', 'capcap': '\\u2A4B', 'capcup': '\\u2A47', 'capdot': '\\u2A40', 'CapitalDifferentialD': '\\u2145', 'caps': '\\u2229\\uFE00', 'caret': '\\u2041', 'caron': '\\u02C7', 'Cayleys': '\\u212D', 'ccaps': '\\u2A4D', 'ccaron': '\\u010D', 'Ccaron': '\\u010C', 'ccedil': '\\xE7', 'Ccedil': '\\xC7', 'ccirc': '\\u0109', 'Ccirc': '\\u0108', 'Cconint': '\\u2230', 'ccups': '\\u2A4C', 'ccupssm': '\\u2A50', 'cdot': '\\u010B', 'Cdot': '\\u010A', 'cedil': '\\xB8', 'Cedilla': '\\xB8', 'cemptyv': '\\u29B2', 'cent': '\\xA2', 'centerdot': '\\xB7', 'CenterDot': '\\xB7', 'cfr': '\\uD835\\uDD20', 'Cfr': '\\u212D', 'chcy': '\\u0447', 'CHcy': '\\u0427', 'check': '\\u2713', 'checkmark': '\\u2713', 'chi': '\\u03C7', 'Chi': '\\u03A7', 'cir': '\\u25CB', 'circ': '\\u02C6', 'circeq': '\\u2257', 'circlearrowleft': '\\u21BA', 'circlearrowright': '\\u21BB', 'circledast': '\\u229B', 'circledcirc': '\\u229A', 'circleddash': '\\u229D', 'CircleDot': '\\u2299', 'circledR': '\\xAE', 'circledS': '\\u24C8', 'CircleMinus': '\\u2296', 'CirclePlus': '\\u2295', 'CircleTimes': '\\u2297', 'cire': '\\u2257', 'cirE': '\\u29C3', 'cirfnint': '\\u2A10', 'cirmid': '\\u2AEF', 'cirscir': '\\u29C2', 'ClockwiseContourIntegral': '\\u2232', 'CloseCurlyDoubleQuote': '\\u201D', 'CloseCurlyQuote': '\\u2019', 'clubs': '\\u2663', 'clubsuit': '\\u2663', 'colon': ':', 'Colon': '\\u2237', 'colone': '\\u2254', 'Colone': '\\u2A74', 'coloneq': '\\u2254', 'comma': ',', 'commat': '@', 'comp': '\\u2201', 'compfn': '\\u2218', 'complement': '\\u2201', 'complexes': '\\u2102', 'cong': '\\u2245', 'congdot': '\\u2A6D', 'Congruent': '\\u2261', 'conint': '\\u222E', 'Conint': '\\u222F', 'ContourIntegral': '\\u222E', 'copf': '\\uD835\\uDD54', 'Copf': '\\u2102', 'coprod': '\\u2210', 'Coproduct': '\\u2210', 'copy': '\\xA9', 'COPY': '\\xA9', 'copysr': '\\u2117', 'CounterClockwiseContourIntegral': '\\u2233', 'crarr': '\\u21B5', 'cross': '\\u2717', 'Cross': '\\u2A2F', 'cscr': '\\uD835\\uDCB8', 'Cscr': '\\uD835\\uDC9E', 'csub': '\\u2ACF', 'csube': '\\u2AD1', 'csup': '\\u2AD0', 'csupe': '\\u2AD2', 'ctdot': '\\u22EF', 'cudarrl': '\\u2938', 'cudarrr': '\\u2935', 'cuepr': '\\u22DE', 'cuesc': '\\u22DF', 'cularr': '\\u21B6', 'cularrp': '\\u293D', 'cup': '\\u222A', 'Cup': '\\u22D3', 'cupbrcap': '\\u2A48', 'cupcap': '\\u2A46', 'CupCap': '\\u224D', 'cupcup': '\\u2A4A', 'cupdot': '\\u228D', 'cupor': '\\u2A45', 'cups': '\\u222A\\uFE00', 'curarr': '\\u21B7', 'curarrm': '\\u293C', 'curlyeqprec': '\\u22DE', 'curlyeqsucc': '\\u22DF', 'curlyvee': '\\u22CE', 'curlywedge': '\\u22CF', 'curren': '\\xA4', 'curvearrowleft': '\\u21B6', 'curvearrowright': '\\u21B7', 'cuvee': '\\u22CE', 'cuwed': '\\u22CF', 'cwconint': '\\u2232', 'cwint': '\\u2231', 'cylcty': '\\u232D', 'dagger': '\\u2020', 'Dagger': '\\u2021', 'daleth': '\\u2138', 'darr': '\\u2193', 'dArr': '\\u21D3', 'Darr': '\\u21A1', 'dash': '\\u2010', 'dashv': '\\u22A3', 'Dashv': '\\u2AE4', 'dbkarow': '\\u290F', 'dblac': '\\u02DD', 'dcaron': '\\u010F', 'Dcaron': '\\u010E', 'dcy': '\\u0434', 'Dcy': '\\u0414', 'dd': '\\u2146', 'DD': '\\u2145', 'ddagger': '\\u2021', 'ddarr': '\\u21CA', 'DDotrahd': '\\u2911', 'ddotseq': '\\u2A77', 'deg': '\\xB0', 'Del': '\\u2207', 'delta': '\\u03B4', 'Delta': '\\u0394', 'demptyv': '\\u29B1', 'dfisht': '\\u297F', 'dfr': '\\uD835\\uDD21', 'Dfr': '\\uD835\\uDD07', 'dHar': '\\u2965', 'dharl': '\\u21C3', 'dharr': '\\u21C2', 'DiacriticalAcute': '\\xB4', 'DiacriticalDot': '\\u02D9', 'DiacriticalDoubleAcute': '\\u02DD', 'DiacriticalGrave': '`', 'DiacriticalTilde': '\\u02DC', 'diam': '\\u22C4', 'diamond': '\\u22C4', 'Diamond': '\\u22C4', 'diamondsuit': '\\u2666', 'diams': '\\u2666', 'die': '\\xA8', 'DifferentialD': '\\u2146', 'digamma': '\\u03DD', 'disin': '\\u22F2', 'div': '\\xF7', 'divide': '\\xF7', 'divideontimes': '\\u22C7', 'divonx': '\\u22C7', 'djcy': '\\u0452', 'DJcy': '\\u0402', 'dlcorn': '\\u231E', 'dlcrop': '\\u230D', 'dollar': '$', 'dopf': '\\uD835\\uDD55', 'Dopf': '\\uD835\\uDD3B', 'dot': '\\u02D9', 'Dot': '\\xA8', 'DotDot': '\\u20DC', 'doteq': '\\u2250', 'doteqdot': '\\u2251', 'DotEqual': '\\u2250', 'dotminus': '\\u2238', 'dotplus': '\\u2214', 'dotsquare': '\\u22A1', 'doublebarwedge': '\\u2306', 'DoubleContourIntegral': '\\u222F', 'DoubleDot': '\\xA8', 'DoubleDownArrow': '\\u21D3', 'DoubleLeftArrow': '\\u21D0', 'DoubleLeftRightArrow': '\\u21D4', 'DoubleLeftTee': '\\u2AE4', 'DoubleLongLeftArrow': '\\u27F8', 'DoubleLongLeftRightArrow': '\\u27FA', 'DoubleLongRightArrow': '\\u27F9', 'DoubleRightArrow': '\\u21D2', 'DoubleRightTee': '\\u22A8', 'DoubleUpArrow': '\\u21D1', 'DoubleUpDownArrow': '\\u21D5', 'DoubleVerticalBar': '\\u2225', 'downarrow': '\\u2193', 'Downarrow': '\\u21D3', 'DownArrow': '\\u2193', 'DownArrowBar': '\\u2913', 'DownArrowUpArrow': '\\u21F5', 'DownBreve': '\\u0311', 'downdownarrows': '\\u21CA', 'downharpoonleft': '\\u21C3', 'downharpoonright': '\\u21C2', 'DownLeftRightVector': '\\u2950', 'DownLeftTeeVector': '\\u295E', 'DownLeftVector': '\\u21BD', 'DownLeftVectorBar': '\\u2956', 'DownRightTeeVector': '\\u295F', 'DownRightVector': '\\u21C1', 'DownRightVectorBar': '\\u2957', 'DownTee': '\\u22A4', 'DownTeeArrow': '\\u21A7', 'drbkarow': '\\u2910', 'drcorn': '\\u231F', 'drcrop': '\\u230C', 'dscr': '\\uD835\\uDCB9', 'Dscr': '\\uD835\\uDC9F', 'dscy': '\\u0455', 'DScy': '\\u0405', 'dsol': '\\u29F6', 'dstrok': '\\u0111', 'Dstrok': '\\u0110', 'dtdot': '\\u22F1', 'dtri': '\\u25BF', 'dtrif': '\\u25BE', 'duarr': '\\u21F5', 'duhar': '\\u296F', 'dwangle': '\\u29A6', 'dzcy': '\\u045F', 'DZcy': '\\u040F', 'dzigrarr': '\\u27FF', 'eacute': '\\xE9', 'Eacute': '\\xC9', 'easter': '\\u2A6E', 'ecaron': '\\u011B', 'Ecaron': '\\u011A', 'ecir': '\\u2256', 'ecirc': '\\xEA', 'Ecirc': '\\xCA', 'ecolon': '\\u2255', 'ecy': '\\u044D', 'Ecy': '\\u042D', 'eDDot': '\\u2A77', 'edot': '\\u0117', 'eDot': '\\u2251', 'Edot': '\\u0116', 'ee': '\\u2147', 'efDot': '\\u2252', 'efr': '\\uD835\\uDD22', 'Efr': '\\uD835\\uDD08', 'eg': '\\u2A9A', 'egrave': '\\xE8', 'Egrave': '\\xC8', 'egs': '\\u2A96', 'egsdot': '\\u2A98', 'el': '\\u2A99', 'Element': '\\u2208', 'elinters': '\\u23E7', 'ell': '\\u2113', 'els': '\\u2A95', 'elsdot': '\\u2A97', 'emacr': '\\u0113', 'Emacr': '\\u0112', 'empty': '\\u2205', 'emptyset': '\\u2205', 'EmptySmallSquare': '\\u25FB', 'emptyv': '\\u2205', 'EmptyVerySmallSquare': '\\u25AB', 'emsp': '\\u2003', 'emsp13': '\\u2004', 'emsp14': '\\u2005', 'eng': '\\u014B', 'ENG': '\\u014A', 'ensp': '\\u2002', 'eogon': '\\u0119', 'Eogon': '\\u0118', 'eopf': '\\uD835\\uDD56', 'Eopf': '\\uD835\\uDD3C', 'epar': '\\u22D5', 'eparsl': '\\u29E3', 'eplus': '\\u2A71', 'epsi': '\\u03B5', 'epsilon': '\\u03B5', 'Epsilon': '\\u0395', 'epsiv': '\\u03F5', 'eqcirc': '\\u2256', 'eqcolon': '\\u2255', 'eqsim': '\\u2242', 'eqslantgtr': '\\u2A96', 'eqslantless': '\\u2A95', 'Equal': '\\u2A75', 'equals': '=', 'EqualTilde': '\\u2242', 'equest': '\\u225F', 'Equilibrium': '\\u21CC', 'equiv': '\\u2261', 'equivDD': '\\u2A78', 'eqvparsl': '\\u29E5', 'erarr': '\\u2971', 'erDot': '\\u2253', 'escr': '\\u212F', 'Escr': '\\u2130', 'esdot': '\\u2250', 'esim': '\\u2242', 'Esim': '\\u2A73', 'eta': '\\u03B7', 'Eta': '\\u0397', 'eth': '\\xF0', 'ETH': '\\xD0', 'euml': '\\xEB', 'Euml': '\\xCB', 'euro': '\\u20AC', 'excl': '!', 'exist': '\\u2203', 'Exists': '\\u2203', 'expectation': '\\u2130', 'exponentiale': '\\u2147', 'ExponentialE': '\\u2147', 'fallingdotseq': '\\u2252', 'fcy': '\\u0444', 'Fcy': '\\u0424', 'female': '\\u2640', 'ffilig': '\\uFB03', 'fflig': '\\uFB00', 'ffllig': '\\uFB04', 'ffr': '\\uD835\\uDD23', 'Ffr': '\\uD835\\uDD09', 'filig': '\\uFB01', 'FilledSmallSquare': '\\u25FC', 'FilledVerySmallSquare': '\\u25AA', 'fjlig': 'fj', 'flat': '\\u266D', 'fllig': '\\uFB02', 'fltns': '\\u25B1', 'fnof': '\\u0192', 'fopf': '\\uD835\\uDD57', 'Fopf': '\\uD835\\uDD3D', 'forall': '\\u2200', 'ForAll': '\\u2200', 'fork': '\\u22D4', 'forkv': '\\u2AD9', 'Fouriertrf': '\\u2131', 'fpartint': '\\u2A0D', 'frac12': '\\xBD', 'frac13': '\\u2153', 'frac14': '\\xBC', 'frac15': '\\u2155', 'frac16': '\\u2159', 'frac18': '\\u215B', 'frac23': '\\u2154', 'frac25': '\\u2156', 'frac34': '\\xBE', 'frac35': '\\u2157', 'frac38': '\\u215C', 'frac45': '\\u2158', 'frac56': '\\u215A', 'frac58': '\\u215D', 'frac78': '\\u215E', 'frasl': '\\u2044', 'frown': '\\u2322', 'fscr': '\\uD835\\uDCBB', 'Fscr': '\\u2131', 'gacute': '\\u01F5', 'gamma': '\\u03B3', 'Gamma': '\\u0393', 'gammad': '\\u03DD', 'Gammad': '\\u03DC', 'gap': '\\u2A86', 'gbreve': '\\u011F', 'Gbreve': '\\u011E', 'Gcedil': '\\u0122', 'gcirc': '\\u011D', 'Gcirc': '\\u011C', 'gcy': '\\u0433', 'Gcy': '\\u0413', 'gdot': '\\u0121', 'Gdot': '\\u0120', 'ge': '\\u2265', 'gE': '\\u2267', 'gel': '\\u22DB', 'gEl': '\\u2A8C', 'geq': '\\u2265', 'geqq': '\\u2267', 'geqslant': '\\u2A7E', 'ges': '\\u2A7E', 'gescc': '\\u2AA9', 'gesdot': '\\u2A80', 'gesdoto': '\\u2A82', 'gesdotol': '\\u2A84', 'gesl': '\\u22DB\\uFE00', 'gesles': '\\u2A94', 'gfr': '\\uD835\\uDD24', 'Gfr': '\\uD835\\uDD0A', 'gg': '\\u226B', 'Gg': '\\u22D9', 'ggg': '\\u22D9', 'gimel': '\\u2137', 'gjcy': '\\u0453', 'GJcy': '\\u0403', 'gl': '\\u2277', 'gla': '\\u2AA5', 'glE': '\\u2A92', 'glj': '\\u2AA4', 'gnap': '\\u2A8A', 'gnapprox': '\\u2A8A', 'gne': '\\u2A88', 'gnE': '\\u2269', 'gneq': '\\u2A88', 'gneqq': '\\u2269', 'gnsim': '\\u22E7', 'gopf': '\\uD835\\uDD58', 'Gopf': '\\uD835\\uDD3E', 'grave': '`', 'GreaterEqual': '\\u2265', 'GreaterEqualLess': '\\u22DB', 'GreaterFullEqual': '\\u2267', 'GreaterGreater': '\\u2AA2', 'GreaterLess': '\\u2277', 'GreaterSlantEqual': '\\u2A7E', 'GreaterTilde': '\\u2273', 'gscr': '\\u210A', 'Gscr': '\\uD835\\uDCA2', 'gsim': '\\u2273', 'gsime': '\\u2A8E', 'gsiml': '\\u2A90', 'gt': '>', 'Gt': '\\u226B', 'GT': '>', 'gtcc': '\\u2AA7', 'gtcir': '\\u2A7A', 'gtdot': '\\u22D7', 'gtlPar': '\\u2995', 'gtquest': '\\u2A7C', 'gtrapprox': '\\u2A86', 'gtrarr': '\\u2978', 'gtrdot': '\\u22D7', 'gtreqless': '\\u22DB', 'gtreqqless': '\\u2A8C', 'gtrless': '\\u2277', 'gtrsim': '\\u2273', 'gvertneqq': '\\u2269\\uFE00', 'gvnE': '\\u2269\\uFE00', 'Hacek': '\\u02C7', 'hairsp': '\\u200A', 'half': '\\xBD', 'hamilt': '\\u210B', 'hardcy': '\\u044A', 'HARDcy': '\\u042A', 'harr': '\\u2194', 'hArr': '\\u21D4', 'harrcir': '\\u2948', 'harrw': '\\u21AD', 'Hat': '^', 'hbar': '\\u210F', 'hcirc': '\\u0125', 'Hcirc': '\\u0124', 'hearts': '\\u2665', 'heartsuit': '\\u2665', 'hellip': '\\u2026', 'hercon': '\\u22B9', 'hfr': '\\uD835\\uDD25', 'Hfr': '\\u210C', 'HilbertSpace': '\\u210B', 'hksearow': '\\u2925', 'hkswarow': '\\u2926', 'hoarr': '\\u21FF', 'homtht': '\\u223B', 'hookleftarrow': '\\u21A9', 'hookrightarrow': '\\u21AA', 'hopf': '\\uD835\\uDD59', 'Hopf': '\\u210D', 'horbar': '\\u2015', 'HorizontalLine': '\\u2500', 'hscr': '\\uD835\\uDCBD', 'Hscr': '\\u210B', 'hslash': '\\u210F', 'hstrok': '\\u0127', 'Hstrok': '\\u0126', 'HumpDownHump': '\\u224E', 'HumpEqual': '\\u224F', 'hybull': '\\u2043', 'hyphen': '\\u2010', 'iacute': '\\xED', 'Iacute': '\\xCD', 'ic': '\\u2063', 'icirc': '\\xEE', 'Icirc': '\\xCE', 'icy': '\\u0438', 'Icy': '\\u0418', 'Idot': '\\u0130', 'iecy': '\\u0435', 'IEcy': '\\u0415', 'iexcl': '\\xA1', 'iff': '\\u21D4', 'ifr': '\\uD835\\uDD26', 'Ifr': '\\u2111', 'igrave': '\\xEC', 'Igrave': '\\xCC', 'ii': '\\u2148', 'iiiint': '\\u2A0C', 'iiint': '\\u222D', 'iinfin': '\\u29DC', 'iiota': '\\u2129', 'ijlig': '\\u0133', 'IJlig': '\\u0132', 'Im': '\\u2111', 'imacr': '\\u012B', 'Imacr': '\\u012A', 'image': '\\u2111', 'ImaginaryI': '\\u2148', 'imagline': '\\u2110', 'imagpart': '\\u2111', 'imath': '\\u0131', 'imof': '\\u22B7', 'imped': '\\u01B5', 'Implies': '\\u21D2', 'in': '\\u2208', 'incare': '\\u2105', 'infin': '\\u221E', 'infintie': '\\u29DD', 'inodot': '\\u0131', 'int': '\\u222B', 'Int': '\\u222C', 'intcal': '\\u22BA', 'integers': '\\u2124', 'Integral': '\\u222B', 'intercal': '\\u22BA', 'Intersection': '\\u22C2', 'intlarhk': '\\u2A17', 'intprod': '\\u2A3C', 'InvisibleComma': '\\u2063', 'InvisibleTimes': '\\u2062', 'iocy': '\\u0451', 'IOcy': '\\u0401', 'iogon': '\\u012F', 'Iogon': '\\u012E', 'iopf': '\\uD835\\uDD5A', 'Iopf': '\\uD835\\uDD40', 'iota': '\\u03B9', 'Iota': '\\u0399', 'iprod': '\\u2A3C', 'iquest': '\\xBF', 'iscr': '\\uD835\\uDCBE', 'Iscr': '\\u2110', 'isin': '\\u2208', 'isindot': '\\u22F5', 'isinE': '\\u22F9', 'isins': '\\u22F4', 'isinsv': '\\u22F3', 'isinv': '\\u2208', 'it': '\\u2062', 'itilde': '\\u0129', 'Itilde': '\\u0128', 'iukcy': '\\u0456', 'Iukcy': '\\u0406', 'iuml': '\\xEF', 'Iuml': '\\xCF', 'jcirc': '\\u0135', 'Jcirc': '\\u0134', 'jcy': '\\u0439', 'Jcy': '\\u0419', 'jfr': '\\uD835\\uDD27', 'Jfr': '\\uD835\\uDD0D', 'jmath': '\\u0237', 'jopf': '\\uD835\\uDD5B', 'Jopf': '\\uD835\\uDD41', 'jscr': '\\uD835\\uDCBF', 'Jscr': '\\uD835\\uDCA5', 'jsercy': '\\u0458', 'Jsercy': '\\u0408', 'jukcy': '\\u0454', 'Jukcy': '\\u0404', 'kappa': '\\u03BA', 'Kappa': '\\u039A', 'kappav': '\\u03F0', 'kcedil': '\\u0137', 'Kcedil': '\\u0136', 'kcy': '\\u043A', 'Kcy': '\\u041A', 'kfr': '\\uD835\\uDD28', 'Kfr': '\\uD835\\uDD0E', 'kgreen': '\\u0138', 'khcy': '\\u0445', 'KHcy': '\\u0425', 'kjcy': '\\u045C', 'KJcy': '\\u040C', 'kopf': '\\uD835\\uDD5C', 'Kopf': '\\uD835\\uDD42', 'kscr': '\\uD835\\uDCC0', 'Kscr': '\\uD835\\uDCA6', 'lAarr': '\\u21DA', 'lacute': '\\u013A', 'Lacute': '\\u0139', 'laemptyv': '\\u29B4', 'lagran': '\\u2112', 'lambda': '\\u03BB', 'Lambda': '\\u039B', 'lang': '\\u27E8', 'Lang': '\\u27EA', 'langd': '\\u2991', 'langle': '\\u27E8', 'lap': '\\u2A85', 'Laplacetrf': '\\u2112', 'laquo': '\\xAB', 'larr': '\\u2190', 'lArr': '\\u21D0', 'Larr': '\\u219E', 'larrb': '\\u21E4', 'larrbfs': '\\u291F', 'larrfs': '\\u291D', 'larrhk': '\\u21A9', 'larrlp': '\\u21AB', 'larrpl': '\\u2939', 'larrsim': '\\u2973', 'larrtl': '\\u21A2', 'lat': '\\u2AAB', 'latail': '\\u2919', 'lAtail': '\\u291B', 'late': '\\u2AAD', 'lates': '\\u2AAD\\uFE00', 'lbarr': '\\u290C', 'lBarr': '\\u290E', 'lbbrk': '\\u2772', 'lbrace': '{', 'lbrack': '[', 'lbrke': '\\u298B', 'lbrksld': '\\u298F', 'lbrkslu': '\\u298D', 'lcaron': '\\u013E', 'Lcaron': '\\u013D', 'lcedil': '\\u013C', 'Lcedil': '\\u013B', 'lceil': '\\u2308', 'lcub': '{', 'lcy': '\\u043B', 'Lcy': '\\u041B', 'ldca': '\\u2936', 'ldquo': '\\u201C', 'ldquor': '\\u201E', 'ldrdhar': '\\u2967', 'ldrushar': '\\u294B', 'ldsh': '\\u21B2', 'le': '\\u2264', 'lE': '\\u2266', 'LeftAngleBracket': '\\u27E8', 'leftarrow': '\\u2190', 'Leftarrow': '\\u21D0', 'LeftArrow': '\\u2190', 'LeftArrowBar': '\\u21E4', 'LeftArrowRightArrow': '\\u21C6', 'leftarrowtail': '\\u21A2', 'LeftCeiling': '\\u2308', 'LeftDoubleBracket': '\\u27E6', 'LeftDownTeeVector': '\\u2961', 'LeftDownVector': '\\u21C3', 'LeftDownVectorBar': '\\u2959', 'LeftFloor': '\\u230A', 'leftharpoondown': '\\u21BD', 'leftharpoonup': '\\u21BC', 'leftleftarrows': '\\u21C7', 'leftrightarrow': '\\u2194', 'Leftrightarrow': '\\u21D4', 'LeftRightArrow': '\\u2194', 'leftrightarrows': '\\u21C6', 'leftrightharpoons': '\\u21CB', 'leftrightsquigarrow': '\\u21AD', 'LeftRightVector': '\\u294E', 'LeftTee': '\\u22A3', 'LeftTeeArrow': '\\u21A4', 'LeftTeeVector': '\\u295A', 'leftthreetimes': '\\u22CB', 'LeftTriangle': '\\u22B2', 'LeftTriangleBar': '\\u29CF', 'LeftTriangleEqual': '\\u22B4', 'LeftUpDownVector': '\\u2951', 'LeftUpTeeVector': '\\u2960', 'LeftUpVector': '\\u21BF', 'LeftUpVectorBar': '\\u2958', 'LeftVector': '\\u21BC', 'LeftVectorBar': '\\u2952', 'leg': '\\u22DA', 'lEg': '\\u2A8B', 'leq': '\\u2264', 'leqq': '\\u2266', 'leqslant': '\\u2A7D', 'les': '\\u2A7D', 'lescc': '\\u2AA8', 'lesdot': '\\u2A7F', 'lesdoto': '\\u2A81', 'lesdotor': '\\u2A83', 'lesg': '\\u22DA\\uFE00', 'lesges': '\\u2A93', 'lessapprox': '\\u2A85', 'lessdot': '\\u22D6', 'lesseqgtr': '\\u22DA', 'lesseqqgtr': '\\u2A8B', 'LessEqualGreater': '\\u22DA', 'LessFullEqual': '\\u2266', 'LessGreater': '\\u2276', 'lessgtr': '\\u2276', 'LessLess': '\\u2AA1', 'lesssim': '\\u2272', 'LessSlantEqual': '\\u2A7D', 'LessTilde': '\\u2272', 'lfisht': '\\u297C', 'lfloor': '\\u230A', 'lfr': '\\uD835\\uDD29', 'Lfr': '\\uD835\\uDD0F', 'lg': '\\u2276', 'lgE': '\\u2A91', 'lHar': '\\u2962', 'lhard': '\\u21BD', 'lharu': '\\u21BC', 'lharul': '\\u296A', 'lhblk': '\\u2584', 'ljcy': '\\u0459', 'LJcy': '\\u0409', 'll': '\\u226A', 'Ll': '\\u22D8', 'llarr': '\\u21C7', 'llcorner': '\\u231E', 'Lleftarrow': '\\u21DA', 'llhard': '\\u296B', 'lltri': '\\u25FA', 'lmidot': '\\u0140', 'Lmidot': '\\u013F', 'lmoust': '\\u23B0', 'lmoustache': '\\u23B0', 'lnap': '\\u2A89', 'lnapprox': '\\u2A89', 'lne': '\\u2A87', 'lnE': '\\u2268', 'lneq': '\\u2A87', 'lneqq': '\\u2268', 'lnsim': '\\u22E6', 'loang': '\\u27EC', 'loarr': '\\u21FD', 'lobrk': '\\u27E6', 'longleftarrow': '\\u27F5', 'Longleftarrow': '\\u27F8', 'LongLeftArrow': '\\u27F5', 'longleftrightarrow': '\\u27F7', 'Longleftrightarrow': '\\u27FA', 'LongLeftRightArrow': '\\u27F7', 'longmapsto': '\\u27FC', 'longrightarrow': '\\u27F6', 'Longrightarrow': '\\u27F9', 'LongRightArrow': '\\u27F6', 'looparrowleft': '\\u21AB', 'looparrowright': '\\u21AC', 'lopar': '\\u2985', 'lopf': '\\uD835\\uDD5D', 'Lopf': '\\uD835\\uDD43', 'loplus': '\\u2A2D', 'lotimes': '\\u2A34', 'lowast': '\\u2217', 'lowbar': '_', 'LowerLeftArrow': '\\u2199', 'LowerRightArrow': '\\u2198', 'loz': '\\u25CA', 'lozenge': '\\u25CA', 'lozf': '\\u29EB', 'lpar': '(', 'lparlt': '\\u2993', 'lrarr': '\\u21C6', 'lrcorner': '\\u231F', 'lrhar': '\\u21CB', 'lrhard': '\\u296D', 'lrm': '\\u200E', 'lrtri': '\\u22BF', 'lsaquo': '\\u2039', 'lscr': '\\uD835\\uDCC1', 'Lscr': '\\u2112', 'lsh': '\\u21B0', 'Lsh': '\\u21B0', 'lsim': '\\u2272', 'lsime': '\\u2A8D', 'lsimg': '\\u2A8F', 'lsqb': '[', 'lsquo': '\\u2018', 'lsquor': '\\u201A', 'lstrok': '\\u0142', 'Lstrok': '\\u0141', 'lt': '<', 'Lt': '\\u226A', 'LT': '<', 'ltcc': '\\u2AA6', 'ltcir': '\\u2A79', 'ltdot': '\\u22D6', 'lthree': '\\u22CB', 'ltimes': '\\u22C9', 'ltlarr': '\\u2976', 'ltquest': '\\u2A7B', 'ltri': '\\u25C3', 'ltrie': '\\u22B4', 'ltrif': '\\u25C2', 'ltrPar': '\\u2996', 'lurdshar': '\\u294A', 'luruhar': '\\u2966', 'lvertneqq': '\\u2268\\uFE00', 'lvnE': '\\u2268\\uFE00', 'macr': '\\xAF', 'male': '\\u2642', 'malt': '\\u2720', 'maltese': '\\u2720', 'map': '\\u21A6', 'Map': '\\u2905', 'mapsto': '\\u21A6', 'mapstodown': '\\u21A7', 'mapstoleft': '\\u21A4', 'mapstoup': '\\u21A5', 'marker': '\\u25AE', 'mcomma': '\\u2A29', 'mcy': '\\u043C', 'Mcy': '\\u041C', 'mdash': '\\u2014', 'mDDot': '\\u223A', 'measuredangle': '\\u2221', 'MediumSpace': '\\u205F', 'Mellintrf': '\\u2133', 'mfr': '\\uD835\\uDD2A', 'Mfr': '\\uD835\\uDD10', 'mho': '\\u2127', 'micro': '\\xB5', 'mid': '\\u2223', 'midast': '*', 'midcir': '\\u2AF0', 'middot': '\\xB7', 'minus': '\\u2212', 'minusb': '\\u229F', 'minusd': '\\u2238', 'minusdu': '\\u2A2A', 'MinusPlus': '\\u2213', 'mlcp': '\\u2ADB', 'mldr': '\\u2026', 'mnplus': '\\u2213', 'models': '\\u22A7', 'mopf': '\\uD835\\uDD5E', 'Mopf': '\\uD835\\uDD44', 'mp': '\\u2213', 'mscr': '\\uD835\\uDCC2', 'Mscr': '\\u2133', 'mstpos': '\\u223E', 'mu': '\\u03BC', 'Mu': '\\u039C', 'multimap': '\\u22B8', 'mumap': '\\u22B8', 'nabla': '\\u2207', 'nacute': '\\u0144', 'Nacute': '\\u0143', 'nang': '\\u2220\\u20D2', 'nap': '\\u2249', 'napE': '\\u2A70\\u0338', 'napid': '\\u224B\\u0338', 'napos': '\\u0149', 'napprox': '\\u2249', 'natur': '\\u266E', 'natural': '\\u266E', 'naturals': '\\u2115', 'nbsp': '\\xA0', 'nbump': '\\u224E\\u0338', 'nbumpe': '\\u224F\\u0338', 'ncap': '\\u2A43', 'ncaron': '\\u0148', 'Ncaron': '\\u0147', 'ncedil': '\\u0146', 'Ncedil': '\\u0145', 'ncong': '\\u2247', 'ncongdot': '\\u2A6D\\u0338', 'ncup': '\\u2A42', 'ncy': '\\u043D', 'Ncy': '\\u041D', 'ndash': '\\u2013', 'ne': '\\u2260', 'nearhk': '\\u2924', 'nearr': '\\u2197', 'neArr': '\\u21D7', 'nearrow': '\\u2197', 'nedot': '\\u2250\\u0338', 'NegativeMediumSpace': '\\u200B', 'NegativeThickSpace': '\\u200B', 'NegativeThinSpace': '\\u200B', 'NegativeVeryThinSpace': '\\u200B', 'nequiv': '\\u2262', 'nesear': '\\u2928', 'nesim': '\\u2242\\u0338', 'NestedGreaterGreater': '\\u226B', 'NestedLessLess': '\\u226A', 'NewLine': '\\n', 'nexist': '\\u2204', 'nexists': '\\u2204', 'nfr': '\\uD835\\uDD2B', 'Nfr': '\\uD835\\uDD11', 'nge': '\\u2271', 'ngE': '\\u2267\\u0338', 'ngeq': '\\u2271', 'ngeqq': '\\u2267\\u0338', 'ngeqslant': '\\u2A7E\\u0338', 'nges': '\\u2A7E\\u0338', 'nGg': '\\u22D9\\u0338', 'ngsim': '\\u2275', 'ngt': '\\u226F', 'nGt': '\\u226B\\u20D2', 'ngtr': '\\u226F', 'nGtv': '\\u226B\\u0338', 'nharr': '\\u21AE', 'nhArr': '\\u21CE', 'nhpar': '\\u2AF2', 'ni': '\\u220B', 'nis': '\\u22FC', 'nisd': '\\u22FA', 'niv': '\\u220B', 'njcy': '\\u045A', 'NJcy': '\\u040A', 'nlarr': '\\u219A', 'nlArr': '\\u21CD', 'nldr': '\\u2025', 'nle': '\\u2270', 'nlE': '\\u2266\\u0338', 'nleftarrow': '\\u219A', 'nLeftarrow': '\\u21CD', 'nleftrightarrow': '\\u21AE', 'nLeftrightarrow': '\\u21CE', 'nleq': '\\u2270', 'nleqq': '\\u2266\\u0338', 'nleqslant': '\\u2A7D\\u0338', 'nles': '\\u2A7D\\u0338', 'nless': '\\u226E', 'nLl': '\\u22D8\\u0338', 'nlsim': '\\u2274', 'nlt': '\\u226E', 'nLt': '\\u226A\\u20D2', 'nltri': '\\u22EA', 'nltrie': '\\u22EC', 'nLtv': '\\u226A\\u0338', 'nmid': '\\u2224', 'NoBreak': '\\u2060', 'NonBreakingSpace': '\\xA0', 'nopf': '\\uD835\\uDD5F', 'Nopf': '\\u2115', 'not': '\\xAC', 'Not': '\\u2AEC', 'NotCongruent': '\\u2262', 'NotCupCap': '\\u226D', 'NotDoubleVerticalBar': '\\u2226', 'NotElement': '\\u2209', 'NotEqual': '\\u2260', 'NotEqualTilde': '\\u2242\\u0338', 'NotExists': '\\u2204', 'NotGreater': '\\u226F', 'NotGreaterEqual': '\\u2271', 'NotGreaterFullEqual': '\\u2267\\u0338', 'NotGreaterGreater': '\\u226B\\u0338', 'NotGreaterLess': '\\u2279', 'NotGreaterSlantEqual': '\\u2A7E\\u0338', 'NotGreaterTilde': '\\u2275', 'NotHumpDownHump': '\\u224E\\u0338', 'NotHumpEqual': '\\u224F\\u0338', 'notin': '\\u2209', 'notindot': '\\u22F5\\u0338', 'notinE': '\\u22F9\\u0338', 'notinva': '\\u2209', 'notinvb': '\\u22F7', 'notinvc': '\\u22F6', 'NotLeftTriangle': '\\u22EA', 'NotLeftTriangleBar': '\\u29CF\\u0338', 'NotLeftTriangleEqual': '\\u22EC', 'NotLess': '\\u226E', 'NotLessEqual': '\\u2270', 'NotLessGreater': '\\u2278', 'NotLessLess': '\\u226A\\u0338', 'NotLessSlantEqual': '\\u2A7D\\u0338', 'NotLessTilde': '\\u2274', 'NotNestedGreaterGreater': '\\u2AA2\\u0338', 'NotNestedLessLess': '\\u2AA1\\u0338', 'notni': '\\u220C', 'notniva': '\\u220C', 'notnivb': '\\u22FE', 'notnivc': '\\u22FD', 'NotPrecedes': '\\u2280', 'NotPrecedesEqual': '\\u2AAF\\u0338', 'NotPrecedesSlantEqual': '\\u22E0', 'NotReverseElement': '\\u220C', 'NotRightTriangle': '\\u22EB', 'NotRightTriangleBar': '\\u29D0\\u0338', 'NotRightTriangleEqual': '\\u22ED', 'NotSquareSubset': '\\u228F\\u0338', 'NotSquareSubsetEqual': '\\u22E2', 'NotSquareSuperset': '\\u2290\\u0338', 'NotSquareSupersetEqual': '\\u22E3', 'NotSubset': '\\u2282\\u20D2', 'NotSubsetEqual': '\\u2288', 'NotSucceeds': '\\u2281', 'NotSucceedsEqual': '\\u2AB0\\u0338', 'NotSucceedsSlantEqual': '\\u22E1', 'NotSucceedsTilde': '\\u227F\\u0338', 'NotSuperset': '\\u2283\\u20D2', 'NotSupersetEqual': '\\u2289', 'NotTilde': '\\u2241', 'NotTildeEqual': '\\u2244', 'NotTildeFullEqual': '\\u2247', 'NotTildeTilde': '\\u2249', 'NotVerticalBar': '\\u2224', 'npar': '\\u2226', 'nparallel': '\\u2226', 'nparsl': '\\u2AFD\\u20E5', 'npart': '\\u2202\\u0338', 'npolint': '\\u2A14', 'npr': '\\u2280', 'nprcue': '\\u22E0', 'npre': '\\u2AAF\\u0338', 'nprec': '\\u2280', 'npreceq': '\\u2AAF\\u0338', 'nrarr': '\\u219B', 'nrArr': '\\u21CF', 'nrarrc': '\\u2933\\u0338', 'nrarrw': '\\u219D\\u0338', 'nrightarrow': '\\u219B', 'nRightarrow': '\\u21CF', 'nrtri': '\\u22EB', 'nrtrie': '\\u22ED', 'nsc': '\\u2281', 'nsccue': '\\u22E1', 'nsce': '\\u2AB0\\u0338', 'nscr': '\\uD835\\uDCC3', 'Nscr': '\\uD835\\uDCA9', 'nshortmid': '\\u2224', 'nshortparallel': '\\u2226', 'nsim': '\\u2241', 'nsime': '\\u2244', 'nsimeq': '\\u2244', 'nsmid': '\\u2224', 'nspar': '\\u2226', 'nsqsube': '\\u22E2', 'nsqsupe': '\\u22E3', 'nsub': '\\u2284', 'nsube': '\\u2288', 'nsubE': '\\u2AC5\\u0338', 'nsubset': '\\u2282\\u20D2', 'nsubseteq': '\\u2288', 'nsubseteqq': '\\u2AC5\\u0338', 'nsucc': '\\u2281', 'nsucceq': '\\u2AB0\\u0338', 'nsup': '\\u2285', 'nsupe': '\\u2289', 'nsupE': '\\u2AC6\\u0338', 'nsupset': '\\u2283\\u20D2', 'nsupseteq': '\\u2289', 'nsupseteqq': '\\u2AC6\\u0338', 'ntgl': '\\u2279', 'ntilde': '\\xF1', 'Ntilde': '\\xD1', 'ntlg': '\\u2278', 'ntriangleleft': '\\u22EA', 'ntrianglelefteq': '\\u22EC', 'ntriangleright': '\\u22EB', 'ntrianglerighteq': '\\u22ED', 'nu': '\\u03BD', 'Nu': '\\u039D', 'num': '#', 'numero': '\\u2116', 'numsp': '\\u2007', 'nvap': '\\u224D\\u20D2', 'nvdash': '\\u22AC', 'nvDash': '\\u22AD', 'nVdash': '\\u22AE', 'nVDash': '\\u22AF', 'nvge': '\\u2265\\u20D2', 'nvgt': '>\\u20D2', 'nvHarr': '\\u2904', 'nvinfin': '\\u29DE', 'nvlArr': '\\u2902', 'nvle': '\\u2264\\u20D2', 'nvlt': '<\\u20D2', 'nvltrie': '\\u22B4\\u20D2', 'nvrArr': '\\u2903', 'nvrtrie': '\\u22B5\\u20D2', 'nvsim': '\\u223C\\u20D2', 'nwarhk': '\\u2923', 'nwarr': '\\u2196', 'nwArr': '\\u21D6', 'nwarrow': '\\u2196', 'nwnear': '\\u2927', 'oacute': '\\xF3', 'Oacute': '\\xD3', 'oast': '\\u229B', 'ocir': '\\u229A', 'ocirc': '\\xF4', 'Ocirc': '\\xD4', 'ocy': '\\u043E', 'Ocy': '\\u041E', 'odash': '\\u229D', 'odblac': '\\u0151', 'Odblac': '\\u0150', 'odiv': '\\u2A38', 'odot': '\\u2299', 'odsold': '\\u29BC', 'oelig': '\\u0153', 'OElig': '\\u0152', 'ofcir': '\\u29BF', 'ofr': '\\uD835\\uDD2C', 'Ofr': '\\uD835\\uDD12', 'ogon': '\\u02DB', 'ograve': '\\xF2', 'Ograve': '\\xD2', 'ogt': '\\u29C1', 'ohbar': '\\u29B5', 'ohm': '\\u03A9', 'oint': '\\u222E', 'olarr': '\\u21BA', 'olcir': '\\u29BE', 'olcross': '\\u29BB', 'oline': '\\u203E', 'olt': '\\u29C0', 'omacr': '\\u014D', 'Omacr': '\\u014C', 'omega': '\\u03C9', 'Omega': '\\u03A9', 'omicron': '\\u03BF', 'Omicron': '\\u039F', 'omid': '\\u29B6', 'ominus': '\\u2296', 'oopf': '\\uD835\\uDD60', 'Oopf': '\\uD835\\uDD46', 'opar': '\\u29B7', 'OpenCurlyDoubleQuote': '\\u201C', 'OpenCurlyQuote': '\\u2018', 'operp': '\\u29B9', 'oplus': '\\u2295', 'or': '\\u2228', 'Or': '\\u2A54', 'orarr': '\\u21BB', 'ord': '\\u2A5D', 'order': '\\u2134', 'orderof': '\\u2134', 'ordf': '\\xAA', 'ordm': '\\xBA', 'origof': '\\u22B6', 'oror': '\\u2A56', 'orslope': '\\u2A57', 'orv': '\\u2A5B', 'oS': '\\u24C8', 'oscr': '\\u2134', 'Oscr': '\\uD835\\uDCAA', 'oslash': '\\xF8', 'Oslash': '\\xD8', 'osol': '\\u2298', 'otilde': '\\xF5', 'Otilde': '\\xD5', 'otimes': '\\u2297', 'Otimes': '\\u2A37', 'otimesas': '\\u2A36', 'ouml': '\\xF6', 'Ouml': '\\xD6', 'ovbar': '\\u233D', 'OverBar': '\\u203E', 'OverBrace': '\\u23DE', 'OverBracket': '\\u23B4', 'OverParenthesis': '\\u23DC', 'par': '\\u2225', 'para': '\\xB6', 'parallel': '\\u2225', 'parsim': '\\u2AF3', 'parsl': '\\u2AFD', 'part': '\\u2202', 'PartialD': '\\u2202', 'pcy': '\\u043F', 'Pcy': '\\u041F', 'percnt': '%', 'period': '.', 'permil': '\\u2030', 'perp': '\\u22A5', 'pertenk': '\\u2031', 'pfr': '\\uD835\\uDD2D', 'Pfr': '\\uD835\\uDD13', 'phi': '\\u03C6', 'Phi': '\\u03A6', 'phiv': '\\u03D5', 'phmmat': '\\u2133', 'phone': '\\u260E', 'pi': '\\u03C0', 'Pi': '\\u03A0', 'pitchfork': '\\u22D4', 'piv': '\\u03D6', 'planck': '\\u210F', 'planckh': '\\u210E', 'plankv': '\\u210F', 'plus': '+', 'plusacir': '\\u2A23', 'plusb': '\\u229E', 'pluscir': '\\u2A22', 'plusdo': '\\u2214', 'plusdu': '\\u2A25', 'pluse': '\\u2A72', 'PlusMinus': '\\xB1', 'plusmn': '\\xB1', 'plussim': '\\u2A26', 'plustwo': '\\u2A27', 'pm': '\\xB1', 'Poincareplane': '\\u210C', 'pointint': '\\u2A15', 'popf': '\\uD835\\uDD61', 'Popf': '\\u2119', 'pound': '\\xA3', 'pr': '\\u227A', 'Pr': '\\u2ABB', 'prap': '\\u2AB7', 'prcue': '\\u227C', 'pre': '\\u2AAF', 'prE': '\\u2AB3', 'prec': '\\u227A', 'precapprox': '\\u2AB7', 'preccurlyeq': '\\u227C', 'Precedes': '\\u227A', 'PrecedesEqual': '\\u2AAF', 'PrecedesSlantEqual': '\\u227C', 'PrecedesTilde': '\\u227E', 'preceq': '\\u2AAF', 'precnapprox': '\\u2AB9', 'precneqq': '\\u2AB5', 'precnsim': '\\u22E8', 'precsim': '\\u227E', 'prime': '\\u2032', 'Prime': '\\u2033', 'primes': '\\u2119', 'prnap': '\\u2AB9', 'prnE': '\\u2AB5', 'prnsim': '\\u22E8', 'prod': '\\u220F', 'Product': '\\u220F', 'profalar': '\\u232E', 'profline': '\\u2312', 'profsurf': '\\u2313', 'prop': '\\u221D', 'Proportion': '\\u2237', 'Proportional': '\\u221D', 'propto': '\\u221D', 'prsim': '\\u227E', 'prurel': '\\u22B0', 'pscr': '\\uD835\\uDCC5', 'Pscr': '\\uD835\\uDCAB', 'psi': '\\u03C8', 'Psi': '\\u03A8', 'puncsp': '\\u2008', 'qfr': '\\uD835\\uDD2E', 'Qfr': '\\uD835\\uDD14', 'qint': '\\u2A0C', 'qopf': '\\uD835\\uDD62', 'Qopf': '\\u211A', 'qprime': '\\u2057', 'qscr': '\\uD835\\uDCC6', 'Qscr': '\\uD835\\uDCAC', 'quaternions': '\\u210D', 'quatint': '\\u2A16', 'quest': '?', 'questeq': '\\u225F', 'quot': '\"', 'QUOT': '\"', 'rAarr': '\\u21DB', 'race': '\\u223D\\u0331', 'racute': '\\u0155', 'Racute': '\\u0154', 'radic': '\\u221A', 'raemptyv': '\\u29B3', 'rang': '\\u27E9', 'Rang': '\\u27EB', 'rangd': '\\u2992', 'range': '\\u29A5', 'rangle': '\\u27E9', 'raquo': '\\xBB', 'rarr': '\\u2192', 'rArr': '\\u21D2', 'Rarr': '\\u21A0', 'rarrap': '\\u2975', 'rarrb': '\\u21E5', 'rarrbfs': '\\u2920', 'rarrc': '\\u2933', 'rarrfs': '\\u291E', 'rarrhk': '\\u21AA', 'rarrlp': '\\u21AC', 'rarrpl': '\\u2945', 'rarrsim': '\\u2974', 'rarrtl': '\\u21A3', 'Rarrtl': '\\u2916', 'rarrw': '\\u219D', 'ratail': '\\u291A', 'rAtail': '\\u291C', 'ratio': '\\u2236', 'rationals': '\\u211A', 'rbarr': '\\u290D', 'rBarr': '\\u290F', 'RBarr': '\\u2910', 'rbbrk': '\\u2773', 'rbrace': '}', 'rbrack': ']', 'rbrke': '\\u298C', 'rbrksld': '\\u298E', 'rbrkslu': '\\u2990', 'rcaron': '\\u0159', 'Rcaron': '\\u0158', 'rcedil': '\\u0157', 'Rcedil': '\\u0156', 'rceil': '\\u2309', 'rcub': '}', 'rcy': '\\u0440', 'Rcy': '\\u0420', 'rdca': '\\u2937', 'rdldhar': '\\u2969', 'rdquo': '\\u201D', 'rdquor': '\\u201D', 'rdsh': '\\u21B3', 'Re': '\\u211C', 'real': '\\u211C', 'realine': '\\u211B', 'realpart': '\\u211C', 'reals': '\\u211D', 'rect': '\\u25AD', 'reg': '\\xAE', 'REG': '\\xAE', 'ReverseElement': '\\u220B', 'ReverseEquilibrium': '\\u21CB', 'ReverseUpEquilibrium': '\\u296F', 'rfisht': '\\u297D', 'rfloor': '\\u230B', 'rfr': '\\uD835\\uDD2F', 'Rfr': '\\u211C', 'rHar': '\\u2964', 'rhard': '\\u21C1', 'rharu': '\\u21C0', 'rharul': '\\u296C', 'rho': '\\u03C1', 'Rho': '\\u03A1', 'rhov': '\\u03F1', 'RightAngleBracket': '\\u27E9', 'rightarrow': '\\u2192', 'Rightarrow': '\\u21D2', 'RightArrow': '\\u2192', 'RightArrowBar': '\\u21E5', 'RightArrowLeftArrow': '\\u21C4', 'rightarrowtail': '\\u21A3', 'RightCeiling': '\\u2309', 'RightDoubleBracket': '\\u27E7', 'RightDownTeeVector': '\\u295D', 'RightDownVector': '\\u21C2', 'RightDownVectorBar': '\\u2955', 'RightFloor': '\\u230B', 'rightharpoondown': '\\u21C1', 'rightharpoonup': '\\u21C0', 'rightleftarrows': '\\u21C4', 'rightleftharpoons': '\\u21CC', 'rightrightarrows': '\\u21C9', 'rightsquigarrow': '\\u219D', 'RightTee': '\\u22A2', 'RightTeeArrow': '\\u21A6', 'RightTeeVector': '\\u295B', 'rightthreetimes': '\\u22CC', 'RightTriangle': '\\u22B3', 'RightTriangleBar': '\\u29D0', 'RightTriangleEqual': '\\u22B5', 'RightUpDownVector': '\\u294F', 'RightUpTeeVector': '\\u295C', 'RightUpVector': '\\u21BE', 'RightUpVectorBar': '\\u2954', 'RightVector': '\\u21C0', 'RightVectorBar': '\\u2953', 'ring': '\\u02DA', 'risingdotseq': '\\u2253', 'rlarr': '\\u21C4', 'rlhar': '\\u21CC', 'rlm': '\\u200F', 'rmoust': '\\u23B1', 'rmoustache': '\\u23B1', 'rnmid': '\\u2AEE', 'roang': '\\u27ED', 'roarr': '\\u21FE', 'robrk': '\\u27E7', 'ropar': '\\u2986', 'ropf': '\\uD835\\uDD63', 'Ropf': '\\u211D', 'roplus': '\\u2A2E', 'rotimes': '\\u2A35', 'RoundImplies': '\\u2970', 'rpar': ')', 'rpargt': '\\u2994', 'rppolint': '\\u2A12', 'rrarr': '\\u21C9', 'Rrightarrow': '\\u21DB', 'rsaquo': '\\u203A', 'rscr': '\\uD835\\uDCC7', 'Rscr': '\\u211B', 'rsh': '\\u21B1', 'Rsh': '\\u21B1', 'rsqb': ']', 'rsquo': '\\u2019', 'rsquor': '\\u2019', 'rthree': '\\u22CC', 'rtimes': '\\u22CA', 'rtri': '\\u25B9', 'rtrie': '\\u22B5', 'rtrif': '\\u25B8', 'rtriltri': '\\u29CE', 'RuleDelayed': '\\u29F4', 'ruluhar': '\\u2968', 'rx': '\\u211E', 'sacute': '\\u015B', 'Sacute': '\\u015A', 'sbquo': '\\u201A', 'sc': '\\u227B', 'Sc': '\\u2ABC', 'scap': '\\u2AB8', 'scaron': '\\u0161', 'Scaron': '\\u0160', 'sccue': '\\u227D', 'sce': '\\u2AB0', 'scE': '\\u2AB4', 'scedil': '\\u015F', 'Scedil': '\\u015E', 'scirc': '\\u015D', 'Scirc': '\\u015C', 'scnap': '\\u2ABA', 'scnE': '\\u2AB6', 'scnsim': '\\u22E9', 'scpolint': '\\u2A13', 'scsim': '\\u227F', 'scy': '\\u0441', 'Scy': '\\u0421', 'sdot': '\\u22C5', 'sdotb': '\\u22A1', 'sdote': '\\u2A66', 'searhk': '\\u2925', 'searr': '\\u2198', 'seArr': '\\u21D8', 'searrow': '\\u2198', 'sect': '\\xA7', 'semi': ';', 'seswar': '\\u2929', 'setminus': '\\u2216', 'setmn': '\\u2216', 'sext': '\\u2736', 'sfr': '\\uD835\\uDD30', 'Sfr': '\\uD835\\uDD16', 'sfrown': '\\u2322', 'sharp': '\\u266F', 'shchcy': '\\u0449', 'SHCHcy': '\\u0429', 'shcy': '\\u0448', 'SHcy': '\\u0428', 'ShortDownArrow': '\\u2193', 'ShortLeftArrow': '\\u2190', 'shortmid': '\\u2223', 'shortparallel': '\\u2225', 'ShortRightArrow': '\\u2192', 'ShortUpArrow': '\\u2191', 'shy': '\\xAD', 'sigma': '\\u03C3', 'Sigma': '\\u03A3', 'sigmaf': '\\u03C2', 'sigmav': '\\u03C2', 'sim': '\\u223C', 'simdot': '\\u2A6A', 'sime': '\\u2243', 'simeq': '\\u2243', 'simg': '\\u2A9E', 'simgE': '\\u2AA0', 'siml': '\\u2A9D', 'simlE': '\\u2A9F', 'simne': '\\u2246', 'simplus': '\\u2A24', 'simrarr': '\\u2972', 'slarr': '\\u2190', 'SmallCircle': '\\u2218', 'smallsetminus': '\\u2216', 'smashp': '\\u2A33', 'smeparsl': '\\u29E4', 'smid': '\\u2223', 'smile': '\\u2323', 'smt': '\\u2AAA', 'smte': '\\u2AAC', 'smtes': '\\u2AAC\\uFE00', 'softcy': '\\u044C', 'SOFTcy': '\\u042C', 'sol': '/', 'solb': '\\u29C4', 'solbar': '\\u233F', 'sopf': '\\uD835\\uDD64', 'Sopf': '\\uD835\\uDD4A', 'spades': '\\u2660', 'spadesuit': '\\u2660', 'spar': '\\u2225', 'sqcap': '\\u2293', 'sqcaps': '\\u2293\\uFE00', 'sqcup': '\\u2294', 'sqcups': '\\u2294\\uFE00', 'Sqrt': '\\u221A', 'sqsub': '\\u228F', 'sqsube': '\\u2291', 'sqsubset': '\\u228F', 'sqsubseteq': '\\u2291', 'sqsup': '\\u2290', 'sqsupe': '\\u2292', 'sqsupset': '\\u2290', 'sqsupseteq': '\\u2292', 'squ': '\\u25A1', 'square': '\\u25A1', 'Square': '\\u25A1', 'SquareIntersection': '\\u2293', 'SquareSubset': '\\u228F', 'SquareSubsetEqual': '\\u2291', 'SquareSuperset': '\\u2290', 'SquareSupersetEqual': '\\u2292', 'SquareUnion': '\\u2294', 'squarf': '\\u25AA', 'squf': '\\u25AA', 'srarr': '\\u2192', 'sscr': '\\uD835\\uDCC8', 'Sscr': '\\uD835\\uDCAE', 'ssetmn': '\\u2216', 'ssmile': '\\u2323', 'sstarf': '\\u22C6', 'star': '\\u2606', 'Star': '\\u22C6', 'starf': '\\u2605', 'straightepsilon': '\\u03F5', 'straightphi': '\\u03D5', 'strns': '\\xAF', 'sub': '\\u2282', 'Sub': '\\u22D0', 'subdot': '\\u2ABD', 'sube': '\\u2286', 'subE': '\\u2AC5', 'subedot': '\\u2AC3', 'submult': '\\u2AC1', 'subne': '\\u228A', 'subnE': '\\u2ACB', 'subplus': '\\u2ABF', 'subrarr': '\\u2979', 'subset': '\\u2282', 'Subset': '\\u22D0', 'subseteq': '\\u2286', 'subseteqq': '\\u2AC5', 'SubsetEqual': '\\u2286', 'subsetneq': '\\u228A', 'subsetneqq': '\\u2ACB', 'subsim': '\\u2AC7', 'subsub': '\\u2AD5', 'subsup': '\\u2AD3', 'succ': '\\u227B', 'succapprox': '\\u2AB8', 'succcurlyeq': '\\u227D', 'Succeeds': '\\u227B', 'SucceedsEqual': '\\u2AB0', 'SucceedsSlantEqual': '\\u227D', 'SucceedsTilde': '\\u227F', 'succeq': '\\u2AB0', 'succnapprox': '\\u2ABA', 'succneqq': '\\u2AB6', 'succnsim': '\\u22E9', 'succsim': '\\u227F', 'SuchThat': '\\u220B', 'sum': '\\u2211', 'Sum': '\\u2211', 'sung': '\\u266A', 'sup': '\\u2283', 'Sup': '\\u22D1', 'sup1': '\\xB9', 'sup2': '\\xB2', 'sup3': '\\xB3', 'supdot': '\\u2ABE', 'supdsub': '\\u2AD8', 'supe': '\\u2287', 'supE': '\\u2AC6', 'supedot': '\\u2AC4', 'Superset': '\\u2283', 'SupersetEqual': '\\u2287', 'suphsol': '\\u27C9', 'suphsub': '\\u2AD7', 'suplarr': '\\u297B', 'supmult': '\\u2AC2', 'supne': '\\u228B', 'supnE': '\\u2ACC', 'supplus': '\\u2AC0', 'supset': '\\u2283', 'Supset': '\\u22D1', 'supseteq': '\\u2287', 'supseteqq': '\\u2AC6', 'supsetneq': '\\u228B', 'supsetneqq': '\\u2ACC', 'supsim': '\\u2AC8', 'supsub': '\\u2AD4', 'supsup': '\\u2AD6', 'swarhk': '\\u2926', 'swarr': '\\u2199', 'swArr': '\\u21D9', 'swarrow': '\\u2199', 'swnwar': '\\u292A', 'szlig': '\\xDF', 'Tab': '\\t', 'target': '\\u2316', 'tau': '\\u03C4', 'Tau': '\\u03A4', 'tbrk': '\\u23B4', 'tcaron': '\\u0165', 'Tcaron': '\\u0164', 'tcedil': '\\u0163', 'Tcedil': '\\u0162', 'tcy': '\\u0442', 'Tcy': '\\u0422', 'tdot': '\\u20DB', 'telrec': '\\u2315', 'tfr': '\\uD835\\uDD31', 'Tfr': '\\uD835\\uDD17', 'there4': '\\u2234', 'therefore': '\\u2234', 'Therefore': '\\u2234', 'theta': '\\u03B8', 'Theta': '\\u0398', 'thetasym': '\\u03D1', 'thetav': '\\u03D1', 'thickapprox': '\\u2248', 'thicksim': '\\u223C', 'ThickSpace': '\\u205F\\u200A', 'thinsp': '\\u2009', 'ThinSpace': '\\u2009', 'thkap': '\\u2248', 'thksim': '\\u223C', 'thorn': '\\xFE', 'THORN': '\\xDE', 'tilde': '\\u02DC', 'Tilde': '\\u223C', 'TildeEqual': '\\u2243', 'TildeFullEqual': '\\u2245', 'TildeTilde': '\\u2248', 'times': '\\xD7', 'timesb': '\\u22A0', 'timesbar': '\\u2A31', 'timesd': '\\u2A30', 'tint': '\\u222D', 'toea': '\\u2928', 'top': '\\u22A4', 'topbot': '\\u2336', 'topcir': '\\u2AF1', 'topf': '\\uD835\\uDD65', 'Topf': '\\uD835\\uDD4B', 'topfork': '\\u2ADA', 'tosa': '\\u2929', 'tprime': '\\u2034', 'trade': '\\u2122', 'TRADE': '\\u2122', 'triangle': '\\u25B5', 'triangledown': '\\u25BF', 'triangleleft': '\\u25C3', 'trianglelefteq': '\\u22B4', 'triangleq': '\\u225C', 'triangleright': '\\u25B9', 'trianglerighteq': '\\u22B5', 'tridot': '\\u25EC', 'trie': '\\u225C', 'triminus': '\\u2A3A', 'TripleDot': '\\u20DB', 'triplus': '\\u2A39', 'trisb': '\\u29CD', 'tritime': '\\u2A3B', 'trpezium': '\\u23E2', 'tscr': '\\uD835\\uDCC9', 'Tscr': '\\uD835\\uDCAF', 'tscy': '\\u0446', 'TScy': '\\u0426', 'tshcy': '\\u045B', 'TSHcy': '\\u040B', 'tstrok': '\\u0167', 'Tstrok': '\\u0166', 'twixt': '\\u226C', 'twoheadleftarrow': '\\u219E', 'twoheadrightarrow': '\\u21A0', 'uacute': '\\xFA', 'Uacute': '\\xDA', 'uarr': '\\u2191', 'uArr': '\\u21D1', 'Uarr': '\\u219F', 'Uarrocir': '\\u2949', 'ubrcy': '\\u045E', 'Ubrcy': '\\u040E', 'ubreve': '\\u016D', 'Ubreve': '\\u016C', 'ucirc': '\\xFB', 'Ucirc': '\\xDB', 'ucy': '\\u0443', 'Ucy': '\\u0423', 'udarr': '\\u21C5', 'udblac': '\\u0171', 'Udblac': '\\u0170', 'udhar': '\\u296E', 'ufisht': '\\u297E', 'ufr': '\\uD835\\uDD32', 'Ufr': '\\uD835\\uDD18', 'ugrave': '\\xF9', 'Ugrave': '\\xD9', 'uHar': '\\u2963', 'uharl': '\\u21BF', 'uharr': '\\u21BE', 'uhblk': '\\u2580', 'ulcorn': '\\u231C', 'ulcorner': '\\u231C', 'ulcrop': '\\u230F', 'ultri': '\\u25F8', 'umacr': '\\u016B', 'Umacr': '\\u016A', 'uml': '\\xA8', 'UnderBar': '_', 'UnderBrace': '\\u23DF', 'UnderBracket': '\\u23B5', 'UnderParenthesis': '\\u23DD', 'Union': '\\u22C3', 'UnionPlus': '\\u228E', 'uogon': '\\u0173', 'Uogon': '\\u0172', 'uopf': '\\uD835\\uDD66', 'Uopf': '\\uD835\\uDD4C', 'uparrow': '\\u2191', 'Uparrow': '\\u21D1', 'UpArrow': '\\u2191', 'UpArrowBar': '\\u2912', 'UpArrowDownArrow': '\\u21C5', 'updownarrow': '\\u2195', 'Updownarrow': '\\u21D5', 'UpDownArrow': '\\u2195', 'UpEquilibrium': '\\u296E', 'upharpoonleft': '\\u21BF', 'upharpoonright': '\\u21BE', 'uplus': '\\u228E', 'UpperLeftArrow': '\\u2196', 'UpperRightArrow': '\\u2197', 'upsi': '\\u03C5', 'Upsi': '\\u03D2', 'upsih': '\\u03D2', 'upsilon': '\\u03C5', 'Upsilon': '\\u03A5', 'UpTee': '\\u22A5', 'UpTeeArrow': '\\u21A5', 'upuparrows': '\\u21C8', 'urcorn': '\\u231D', 'urcorner': '\\u231D', 'urcrop': '\\u230E', 'uring': '\\u016F', 'Uring': '\\u016E', 'urtri': '\\u25F9', 'uscr': '\\uD835\\uDCCA', 'Uscr': '\\uD835\\uDCB0', 'utdot': '\\u22F0', 'utilde': '\\u0169', 'Utilde': '\\u0168', 'utri': '\\u25B5', 'utrif': '\\u25B4', 'uuarr': '\\u21C8', 'uuml': '\\xFC', 'Uuml': '\\xDC', 'uwangle': '\\u29A7', 'vangrt': '\\u299C', 'varepsilon': '\\u03F5', 'varkappa': '\\u03F0', 'varnothing': '\\u2205', 'varphi': '\\u03D5', 'varpi': '\\u03D6', 'varpropto': '\\u221D', 'varr': '\\u2195', 'vArr': '\\u21D5', 'varrho': '\\u03F1', 'varsigma': '\\u03C2', 'varsubsetneq': '\\u228A\\uFE00', 'varsubsetneqq': '\\u2ACB\\uFE00', 'varsupsetneq': '\\u228B\\uFE00', 'varsupsetneqq': '\\u2ACC\\uFE00', 'vartheta': '\\u03D1', 'vartriangleleft': '\\u22B2', 'vartriangleright': '\\u22B3', 'vBar': '\\u2AE8', 'Vbar': '\\u2AEB', 'vBarv': '\\u2AE9', 'vcy': '\\u0432', 'Vcy': '\\u0412', 'vdash': '\\u22A2', 'vDash': '\\u22A8', 'Vdash': '\\u22A9', 'VDash': '\\u22AB', 'Vdashl': '\\u2AE6', 'vee': '\\u2228', 'Vee': '\\u22C1', 'veebar': '\\u22BB', 'veeeq': '\\u225A', 'vellip': '\\u22EE', 'verbar': '|', 'Verbar': '\\u2016', 'vert': '|', 'Vert': '\\u2016', 'VerticalBar': '\\u2223', 'VerticalLine': '|', 'VerticalSeparator': '\\u2758', 'VerticalTilde': '\\u2240', 'VeryThinSpace': '\\u200A', 'vfr': '\\uD835\\uDD33', 'Vfr': '\\uD835\\uDD19', 'vltri': '\\u22B2', 'vnsub': '\\u2282\\u20D2', 'vnsup': '\\u2283\\u20D2', 'vopf': '\\uD835\\uDD67', 'Vopf': '\\uD835\\uDD4D', 'vprop': '\\u221D', 'vrtri': '\\u22B3', 'vscr': '\\uD835\\uDCCB', 'Vscr': '\\uD835\\uDCB1', 'vsubne': '\\u228A\\uFE00', 'vsubnE': '\\u2ACB\\uFE00', 'vsupne': '\\u228B\\uFE00', 'vsupnE': '\\u2ACC\\uFE00', 'Vvdash': '\\u22AA', 'vzigzag': '\\u299A', 'wcirc': '\\u0175', 'Wcirc': '\\u0174', 'wedbar': '\\u2A5F', 'wedge': '\\u2227', 'Wedge': '\\u22C0', 'wedgeq': '\\u2259', 'weierp': '\\u2118', 'wfr': '\\uD835\\uDD34', 'Wfr': '\\uD835\\uDD1A', 'wopf': '\\uD835\\uDD68', 'Wopf': '\\uD835\\uDD4E', 'wp': '\\u2118', 'wr': '\\u2240', 'wreath': '\\u2240', 'wscr': '\\uD835\\uDCCC', 'Wscr': '\\uD835\\uDCB2', 'xcap': '\\u22C2', 'xcirc': '\\u25EF', 'xcup': '\\u22C3', 'xdtri': '\\u25BD', 'xfr': '\\uD835\\uDD35', 'Xfr': '\\uD835\\uDD1B', 'xharr': '\\u27F7', 'xhArr': '\\u27FA', 'xi': '\\u03BE', 'Xi': '\\u039E', 'xlarr': '\\u27F5', 'xlArr': '\\u27F8', 'xmap': '\\u27FC', 'xnis': '\\u22FB', 'xodot': '\\u2A00', 'xopf': '\\uD835\\uDD69', 'Xopf': '\\uD835\\uDD4F', 'xoplus': '\\u2A01', 'xotime': '\\u2A02', 'xrarr': '\\u27F6', 'xrArr': '\\u27F9', 'xscr': '\\uD835\\uDCCD', 'Xscr': '\\uD835\\uDCB3', 'xsqcup': '\\u2A06', 'xuplus': '\\u2A04', 'xutri': '\\u25B3', 'xvee': '\\u22C1', 'xwedge': '\\u22C0', 'yacute': '\\xFD', 'Yacute': '\\xDD', 'yacy': '\\u044F', 'YAcy': '\\u042F', 'ycirc': '\\u0177', 'Ycirc': '\\u0176', 'ycy': '\\u044B', 'Ycy': '\\u042B', 'yen': '\\xA5', 'yfr': '\\uD835\\uDD36', 'Yfr': '\\uD835\\uDD1C', 'yicy': '\\u0457', 'YIcy': '\\u0407', 'yopf': '\\uD835\\uDD6A', 'Yopf': '\\uD835\\uDD50', 'yscr': '\\uD835\\uDCCE', 'Yscr': '\\uD835\\uDCB4', 'yucy': '\\u044E', 'YUcy': '\\u042E', 'yuml': '\\xFF', 'Yuml': '\\u0178', 'zacute': '\\u017A', 'Zacute': '\\u0179', 'zcaron': '\\u017E', 'Zcaron': '\\u017D', 'zcy': '\\u0437', 'Zcy': '\\u0417', 'zdot': '\\u017C', 'Zdot': '\\u017B', 'zeetrf': '\\u2128', 'ZeroWidthSpace': '\\u200B', 'zeta': '\\u03B6', 'Zeta': '\\u0396', 'zfr': '\\uD835\\uDD37', 'Zfr': '\\u2128', 'zhcy': '\\u0436', 'ZHcy': '\\u0416', 'zigrarr': '\\u21DD', 'zopf': '\\uD835\\uDD6B', 'Zopf': '\\u2124', 'zscr': '\\uD835\\uDCCF', 'Zscr': '\\uD835\\uDCB5', 'zwj': '\\u200D', 'zwnj': '\\u200C' };\n\tvar decodeMapLegacy = { 'aacute': '\\xE1', 'Aacute': '\\xC1', 'acirc': '\\xE2', 'Acirc': '\\xC2', 'acute': '\\xB4', 'aelig': '\\xE6', 'AElig': '\\xC6', 'agrave': '\\xE0', 'Agrave': '\\xC0', 'amp': '&', 'AMP': '&', 'aring': '\\xE5', 'Aring': '\\xC5', 'atilde': '\\xE3', 'Atilde': '\\xC3', 'auml': '\\xE4', 'Auml': '\\xC4', 'brvbar': '\\xA6', 'ccedil': '\\xE7', 'Ccedil': '\\xC7', 'cedil': '\\xB8', 'cent': '\\xA2', 'copy': '\\xA9', 'COPY': '\\xA9', 'curren': '\\xA4', 'deg': '\\xB0', 'divide': '\\xF7', 'eacute': '\\xE9', 'Eacute': '\\xC9', 'ecirc': '\\xEA', 'Ecirc': '\\xCA', 'egrave': '\\xE8', 'Egrave': '\\xC8', 'eth': '\\xF0', 'ETH': '\\xD0', 'euml': '\\xEB', 'Euml': '\\xCB', 'frac12': '\\xBD', 'frac14': '\\xBC', 'frac34': '\\xBE', 'gt': '>', 'GT': '>', 'iacute': '\\xED', 'Iacute': '\\xCD', 'icirc': '\\xEE', 'Icirc': '\\xCE', 'iexcl': '\\xA1', 'igrave': '\\xEC', 'Igrave': '\\xCC', 'iquest': '\\xBF', 'iuml': '\\xEF', 'Iuml': '\\xCF', 'laquo': '\\xAB', 'lt': '<', 'LT': '<', 'macr': '\\xAF', 'micro': '\\xB5', 'middot': '\\xB7', 'nbsp': '\\xA0', 'not': '\\xAC', 'ntilde': '\\xF1', 'Ntilde': '\\xD1', 'oacute': '\\xF3', 'Oacute': '\\xD3', 'ocirc': '\\xF4', 'Ocirc': '\\xD4', 'ograve': '\\xF2', 'Ograve': '\\xD2', 'ordf': '\\xAA', 'ordm': '\\xBA', 'oslash': '\\xF8', 'Oslash': '\\xD8', 'otilde': '\\xF5', 'Otilde': '\\xD5', 'ouml': '\\xF6', 'Ouml': '\\xD6', 'para': '\\xB6', 'plusmn': '\\xB1', 'pound': '\\xA3', 'quot': '\"', 'QUOT': '\"', 'raquo': '\\xBB', 'reg': '\\xAE', 'REG': '\\xAE', 'sect': '\\xA7', 'shy': '\\xAD', 'sup1': '\\xB9', 'sup2': '\\xB2', 'sup3': '\\xB3', 'szlig': '\\xDF', 'thorn': '\\xFE', 'THORN': '\\xDE', 'times': '\\xD7', 'uacute': '\\xFA', 'Uacute': '\\xDA', 'ucirc': '\\xFB', 'Ucirc': '\\xDB', 'ugrave': '\\xF9', 'Ugrave': '\\xD9', 'uml': '\\xA8', 'uuml': '\\xFC', 'Uuml': '\\xDC', 'yacute': '\\xFD', 'Yacute': '\\xDD', 'yen': '\\xA5', 'yuml': '\\xFF' };\n\tvar decodeMapNumeric = { '0': '\\uFFFD', '128': '\\u20AC', '130': '\\u201A', '131': '\\u0192', '132': '\\u201E', '133': '\\u2026', '134': '\\u2020', '135': '\\u2021', '136': '\\u02C6', '137': '\\u2030', '138': '\\u0160', '139': '\\u2039', '140': '\\u0152', '142': '\\u017D', '145': '\\u2018', '146': '\\u2019', '147': '\\u201C', '148': '\\u201D', '149': '\\u2022', '150': '\\u2013', '151': '\\u2014', '152': '\\u02DC', '153': '\\u2122', '154': '\\u0161', '155': '\\u203A', '156': '\\u0153', '158': '\\u017E', '159': '\\u0178' };\n\tvar invalidReferenceCodePoints = [1, 2, 3, 4, 5, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 64976, 64977, 64978, 64979, 64980, 64981, 64982, 64983, 64984, 64985, 64986, 64987, 64988, 64989, 64990, 64991, 64992, 64993, 64994, 64995, 64996, 64997, 64998, 64999, 65000, 65001, 65002, 65003, 65004, 65005, 65006, 65007, 65534, 65535, 131070, 131071, 196606, 196607, 262142, 262143, 327678, 327679, 393214, 393215, 458750, 458751, 524286, 524287, 589822, 589823, 655358, 655359, 720894, 720895, 786430, 786431, 851966, 851967, 917502, 917503, 983038, 983039, 1048574, 1048575, 1114110, 1114111];\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\tvar object = {};\n\tvar hasOwnProperty = object.hasOwnProperty;\n\tvar has = function has(object, propertyName) {\n\t\treturn hasOwnProperty.call(object, propertyName);\n\t};\n\n\tvar contains = function contains(array, value) {\n\t\tvar index = -1;\n\t\tvar length = array.length;\n\t\twhile (++index < length) {\n\t\t\tif (array[index] == value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tvar merge = function merge(options, defaults) {\n\t\tif (!options) {\n\t\t\treturn defaults;\n\t\t}\n\t\tvar result = {};\n\t\tvar key;\n\t\tfor (key in defaults) {\n\t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\n\t\t\t// option names are used anyway. Any others are ignored.\n\t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\n\t\t}\n\t\treturn result;\n\t};\n\n\t// Modified version of `ucs2encode`; see https://mths.be/punycode.\n\tvar codePointToSymbol = function codePointToSymbol(codePoint, strict) {\n\t\tvar output = '';\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF || codePoint > 0x10FFFF) {\n\t\t\t// See issue #4:\n\t\t\t// “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is\n\t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\n\t\t\t// REPLACEMENT CHARACTER.”\n\t\t\tif (strict) {\n\t\t\t\tparseError('character reference outside the permissible Unicode range');\n\t\t\t}\n\t\t\treturn '\\uFFFD';\n\t\t}\n\t\tif (has(decodeMapNumeric, codePoint)) {\n\t\t\tif (strict) {\n\t\t\t\tparseError('disallowed character reference');\n\t\t\t}\n\t\t\treturn decodeMapNumeric[codePoint];\n\t\t}\n\t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\n\t\t\tparseError('disallowed character reference');\n\t\t}\n\t\tif (codePoint > 0xFFFF) {\n\t\t\tcodePoint -= 0x10000;\n\t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(codePoint);\n\t\treturn output;\n\t};\n\n\tvar hexEscape = function hexEscape(codePoint) {\n\t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\n\t};\n\n\tvar decEscape = function decEscape(codePoint) {\n\t\treturn '&#' + codePoint + ';';\n\t};\n\n\tvar parseError = function parseError(message) {\n\t\tthrow Error('Parse error: ' + message);\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar encode = function encode(string, options) {\n\t\toptions = merge(options, encode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidRawCodePoint.test(string)) {\n\t\t\tparseError('forbidden code point');\n\t\t}\n\t\tvar encodeEverything = options.encodeEverything;\n\t\tvar useNamedReferences = options.useNamedReferences;\n\t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\n\t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\n\n\t\tvar escapeBmpSymbol = function escapeBmpSymbol(symbol) {\n\t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\n\t\t};\n\n\t\tif (encodeEverything) {\n\t\t\t// Encode ASCII symbols.\n\t\t\tstring = string.replace(regexAsciiWhitelist, function (symbol) {\n\t\t\t\t// Use named references if requested & possible.\n\t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\n\t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\n\t\t\t\t}\n\t\t\t\treturn escapeBmpSymbol(symbol);\n\t\t\t});\n\t\t\t// Shorten a few escapes that represent two symbols, of which at least one\n\t\t\t// is within the ASCII range.\n\t\t\tif (useNamedReferences) {\n\t\t\t\tstring = string.replace(/>\\u20D2/g, '>⃒').replace(/<\\u20D2/g, '<⃒').replace(/fj/g, 'fj');\n\t\t\t}\n\t\t\t// Encode non-ASCII symbols.\n\t\t\tif (useNamedReferences) {\n\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\t\tstring = string.replace(regexEncodeNonAscii, function (string) {\n\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\n\t\t} else if (useNamedReferences) {\n\t\t\t// Apply named character references.\n\t\t\t// Encode `<>\"'&` using named character references.\n\t\t\tif (!allowUnsafeSymbols) {\n\t\t\t\tstring = string.replace(regexEscape, function (string) {\n\t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Shorten escapes that represent two symbols, of which at least one is\n\t\t\t// `<>\"'&`.\n\t\t\tstring = string.replace(/>\\u20D2/g, '>⃒').replace(/<\\u20D2/g, '<⃒');\n\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\tstring = string.replace(regexEncodeNonAscii, function (string) {\n\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t});\n\t\t} else if (!allowUnsafeSymbols) {\n\t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they’re not handled\n\t\t\t// using named character references.\n\t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\n\t\t}\n\t\treturn string\n\t\t// Encode astral symbols.\n\t\t.replace(regexAstralSymbols, function ($0) {\n\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\tvar high = $0.charCodeAt(0);\n\t\t\tvar low = $0.charCodeAt(1);\n\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\n\t\t\treturn escapeCodePoint(codePoint);\n\t\t})\n\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\n\t\t// using a hexadecimal escape.\n\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tencode.options = {\n\t\t'allowUnsafeSymbols': false,\n\t\t'encodeEverything': false,\n\t\t'strict': false,\n\t\t'useNamedReferences': false,\n\t\t'decimal': false\n\t};\n\n\tvar decode = function decode(html, options) {\n\t\toptions = merge(options, decode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidEntity.test(html)) {\n\t\t\tparseError('malformed character reference');\n\t\t}\n\t\treturn html.replace(regexDecode, function ($0, $1, $2, $3, $4, $5, $6, $7, $8) {\n\t\t\tvar codePoint;\n\t\t\tvar semicolon;\n\t\t\tvar decDigits;\n\t\t\tvar hexDigits;\n\t\t\tvar reference;\n\t\t\tvar next;\n\n\t\t\tif ($1) {\n\t\t\t\treference = $1;\n\t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\n\t\t\t\treturn decodeMap[reference];\n\t\t\t}\n\n\t\t\tif ($2) {\n\t\t\t\t// Decode named character references without trailing `;`, e.g. `&`.\n\t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\n\t\t\t\t// followed by `=` in an attribute context.\n\t\t\t\treference = $2;\n\t\t\t\tnext = $3;\n\t\t\t\tif (next && options.isAttributeValue) {\n\t\t\t\t\tif (strict && next == '=') {\n\t\t\t\t\t\tparseError('`&` did not start a character reference');\n\t\t\t\t\t}\n\t\t\t\t\treturn $0;\n\t\t\t\t} else {\n\t\t\t\t\tif (strict) {\n\t\t\t\t\t\tparseError('named character reference was not terminated by a semicolon');\n\t\t\t\t\t}\n\t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\n\t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($4) {\n\t\t\t\t// Decode decimal escapes, e.g. `𝌆`.\n\t\t\t\tdecDigits = $4;\n\t\t\t\tsemicolon = $5;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(decDigits, 10);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\tif ($6) {\n\t\t\t\t// Decode hexadecimal escapes, e.g. `𝌆`.\n\t\t\t\thexDigits = $6;\n\t\t\t\tsemicolon = $7;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(hexDigits, 16);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\t// If we’re still here, `if ($7)` is implied; it’s an ambiguous\n\t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\n\t\t\tif (strict) {\n\t\t\t\tparseError('named character reference was not terminated by a semicolon');\n\t\t\t}\n\t\t\treturn $0;\n\t\t});\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tdecode.options = {\n\t\t'isAttributeValue': false,\n\t\t'strict': false\n\t};\n\n\tvar escape = function escape(string) {\n\t\treturn string.replace(regexEscape, function ($0) {\n\t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\n\t\t\treturn escapeMap[$0];\n\t\t});\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar he = {\n\t\t'version': '1.2.0',\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'escape': escape,\n\t\t'unescape': decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif ( true && _typeof(__webpack_require__(/*! !webpack amd options */ \"./node_modules/webpack/buildin/amd-options.js\")) == 'object' && __webpack_require__(/*! !webpack amd options */ \"./node_modules/webpack/buildin/amd-options.js\")) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn he;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = he;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in he) {\n\t\t\t\thas(he, key) && (freeExports[key] = he[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.he = he;\n\t}\n})(undefined);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module), __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack://Contentstack/./node_modules/he/he.js?"); + +/***/ }), + /***/ "./node_modules/localStorage/lib/localStorage.js": /*!*******************************************************!*\ !*** ./node_modules/localStorage/lib/localStorage.js ***! @@ -111,6 +135,102 @@ eval("/* WEBPACK VAR INJECTION */(function(global) {\n\n// http://www.rajdeepd.c /***/ }), +/***/ "./node_modules/node-html-parser/dist/esm/back.js": +/*!********************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/back.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = arr_back;\nfunction arr_back(arr) {\n return arr[arr.length - 1];\n}\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/back.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/index.js": +/*!*********************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/index.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _comment = __webpack_require__(/*! ./nodes/comment */ \"./node_modules/node-html-parser/dist/esm/nodes/comment.js\");\n\nObject.defineProperty(exports, 'CommentNode', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_comment).default;\n }\n});\n\nvar _html = __webpack_require__(/*! ./nodes/html */ \"./node_modules/node-html-parser/dist/esm/nodes/html.js\");\n\nObject.defineProperty(exports, 'HTMLElement', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_html).default;\n }\n});\nObject.defineProperty(exports, 'parse', {\n enumerable: true,\n get: function get() {\n return _html.parse;\n }\n});\nObject.defineProperty(exports, 'default', {\n enumerable: true,\n get: function get() {\n return _html.parse;\n }\n});\n\nvar _node = __webpack_require__(/*! ./nodes/node */ \"./node_modules/node-html-parser/dist/esm/nodes/node.js\");\n\nObject.defineProperty(exports, 'Node', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_node).default;\n }\n});\n\nvar _text = __webpack_require__(/*! ./nodes/text */ \"./node_modules/node-html-parser/dist/esm/nodes/text.js\");\n\nObject.defineProperty(exports, 'TextNode', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_text).default;\n }\n});\n\nvar _type = __webpack_require__(/*! ./nodes/type */ \"./node_modules/node-html-parser/dist/esm/nodes/type.js\");\n\nObject.defineProperty(exports, 'NodeType', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_type).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/index.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/matcher.js": +/*!***********************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/matcher.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Cache to store generated match functions\n * @type {Object}\n */\nvar pMatchFunctionCache = {};\nfunction compare_tagname(tag1, tag2) {\n if (!tag1) {\n return !tag2;\n }\n if (!tag2) {\n return !tag1;\n }\n return tag1.toLowerCase() === tag2.toLowerCase();\n}\n/**\n * Function cache\n */\nvar functionCache = {\n f145: function f145(el, tagName, classes) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n if (el.id !== tagName.substr(1)) {\n return false;\n }\n for (var cls = classes, i = 0; i < cls.length; i++) {\n if (el.classNames.indexOf(cls[i]) === -1) {\n return false;\n }\n }\n return true;\n },\n f45: function f45(el, tagName, classes) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n for (var cls = classes, i = 0; i < cls.length; i++) {\n if (el.classNames.indexOf(cls[i]) === -1) {\n return false;\n }\n }\n return true;\n },\n f15: function f15(el, tagName) {\n 'use strict';\n\n tagName = tagName || '';\n if (el.id !== tagName.substr(1)) {\n return false;\n }\n return true;\n },\n f1: function f1(el, tagName) {\n 'use strict';\n\n tagName = tagName || '';\n if (el.id !== tagName.substr(1)) {\n return false;\n }\n },\n f5: function f5() {\n 'use strict';\n\n return true;\n },\n f55: function f55(el, tagName, classes, attr_key) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n attr_key = attr_key || '';\n var attrs = el.attributes;\n return attrs.hasOwnProperty(attr_key);\n },\n f245: function f245(el, tagName, classes, attr_key, value) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n attr_key = (attr_key || '').toLowerCase();\n value = value || '';\n var attrs = el.attributes;\n return Object.keys(attrs).some(function (key) {\n var val = attrs[key];\n return key.toLowerCase() === attr_key && val === value;\n });\n // for (let cls = classes, i = 0; i < cls.length; i++) {if (el.classNames.indexOf(cls[i]) === -1){ return false;}}\n // return true;\n },\n f25: function f25(el, tagName, classes, attr_key, value) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n attr_key = (attr_key || '').toLowerCase();\n value = value || '';\n var attrs = el.attributes;\n return Object.keys(attrs).some(function (key) {\n var val = attrs[key];\n return key.toLowerCase() === attr_key && val === value;\n });\n // return true;\n },\n f2: function f2(el, tagName, classes, attr_key, value) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n attr_key = (attr_key || '').toLowerCase();\n value = value || '';\n var attrs = el.attributes;\n return Object.keys(attrs).some(function (key) {\n var val = attrs[key];\n return key.toLowerCase() === attr_key && val === value;\n });\n },\n f345: function f345(el, tagName, classes) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n if (!compare_tagname(el.tagName, tagName)) {\n return false;\n }\n for (var cls = classes, i = 0; i < cls.length; i++) {\n if (el.classNames.indexOf(cls[i]) === -1) {\n return false;\n }\n }\n return true;\n },\n f35: function f35(el, tagName) {\n 'use strict';\n\n tagName = tagName || '';\n return compare_tagname(el.tagName, tagName);\n },\n f3: function f3(el, tagName) {\n 'use strict';\n\n tagName = tagName || '';\n // if (el.tagName !== tagName) {\n // \treturn false;\n // }\n return compare_tagname(el.tagName, tagName);\n }\n};\n/**\n * Matcher class to make CSS match\n *\n * @class Matcher\n */\n\nvar Matcher = function () {\n /**\n * Creates an instance of Matcher.\n * @param {string} selector\n *\n * @memberof Matcher\n */\n function Matcher(selector) {\n _classCallCheck(this, Matcher);\n\n this.nextMatch = 0;\n this.matchers = selector.split(' ').map(function (matcher) {\n if (pMatchFunctionCache[matcher]) {\n return pMatchFunctionCache[matcher];\n }\n var parts = matcher.split('.');\n var tagName = parts[0];\n var classes = parts.slice(1).sort();\n // let source = '\"use strict\";';\n var function_name = 'f';\n var attr_key = '';\n var value = '';\n if (tagName && tagName !== '*') {\n if (tagName.startsWith('#')) {\n // source += 'if (el.id != ' + JSON.stringify(tagName.substr(1)) + ') return false;';// 1\n function_name += '1';\n } else {\n // https://github.com/taoqf/node-html-parser/issues/86\n // const reg = /\\[\\s*([\\w-]+)(\\s*=\\s*(((?'|\")\\s*(.*)(\\k))|(\\S*)))?\\s*\\]/.exec(tagName);\n // `[a-b]`,`[ a-b ]`,`[a-b=c]`, `[a-b=c'd]`,`[a-b='c\\' d\"e ']`,`[ a-b = 'c\\' d\"e ' ]`,`[a-b=\"c' d\\\"e \" ]`,`[ a-b = \"c' d\\\"e \" ]`\n var reg = /\\[\\s*([\\w-]+)(\\s*=\\s*(('\\s*(.*)'|\"\\s*(.*)\")|(\\S*)))?\\s*\\]/.exec(tagName);\n if (reg) {\n attr_key = reg[1];\n value = reg[5] || reg[6] || reg[7];\n // source += `let attrs = el.attributes;for (let key in attrs){const val = attrs[key]; if (key == \"${attr_key}\" && val == \"${value}\"){return true;}} return false;`;// 2\n function_name += '2';\n } else {\n // source += 'if (el.tagName != ' + JSON.stringify(tagName) + ') return false;';// 3\n function_name += '3';\n }\n }\n }\n if (classes.length > 0) {\n // source += 'for (let cls = ' + JSON.stringify(classes) + ', i = 0; i < cls.length; i++) if (el.classNames.indexOf(cls[i]) === -1) return false;';// 4\n function_name += '4';\n }\n // source += 'return true;';// 5\n function_name += '5';\n var obj = {\n func: functionCache[function_name],\n tagName: tagName || '',\n classes: classes || '',\n attr_key: attr_key || '',\n value: value || ''\n };\n // source = source || '';\n return pMatchFunctionCache[matcher] = obj;\n });\n }\n /**\n * Trying to advance match pointer\n * @param {HTMLElement} el element to make the match\n * @return {bool} true when pointer advanced.\n */\n\n\n _createClass(Matcher, [{\n key: 'advance',\n value: function advance(el) {\n if (this.nextMatch < this.matchers.length && this.matchers[this.nextMatch].func(el, this.matchers[this.nextMatch].tagName, this.matchers[this.nextMatch].classes, this.matchers[this.nextMatch].attr_key, this.matchers[this.nextMatch].value)) {\n this.nextMatch++;\n return true;\n }\n return false;\n }\n /**\n * Rewind the match pointer\n */\n\n }, {\n key: 'rewind',\n value: function rewind() {\n this.nextMatch--;\n }\n /**\n * Trying to determine if match made.\n * @return {bool} true when the match is made\n */\n\n }, {\n key: 'reset',\n\n /**\n * Rest match pointer.\n * @return {[type]} [description]\n */\n value: function reset() {\n this.nextMatch = 0;\n }\n /**\n * flush cache to free memory\n */\n\n }, {\n key: 'flushCache',\n value: function flushCache() {\n pMatchFunctionCache = {};\n }\n }, {\n key: 'matched',\n get: function get() {\n return this.nextMatch === this.matchers.length;\n }\n }]);\n\n return Matcher;\n}();\n\nexports.default = Matcher;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/matcher.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/nodes/comment.js": +/*!*****************************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/nodes/comment.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _node = __webpack_require__(/*! ./node */ \"./node_modules/node-html-parser/dist/esm/nodes/node.js\");\n\nvar _node2 = _interopRequireDefault(_node);\n\nvar _type = __webpack_require__(/*! ./type */ \"./node_modules/node-html-parser/dist/esm/nodes/type.js\");\n\nvar _type2 = _interopRequireDefault(_type);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CommentNode = function (_Node) {\n _inherits(CommentNode, _Node);\n\n function CommentNode(rawText) {\n _classCallCheck(this, CommentNode);\n\n var _this = _possibleConstructorReturn(this, (CommentNode.__proto__ || Object.getPrototypeOf(CommentNode)).call(this));\n\n _this.rawText = rawText;\n /**\n * Node Type declaration.\n * @type {Number}\n */\n _this.nodeType = _type2.default.COMMENT_NODE;\n return _this;\n }\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n\n\n _createClass(CommentNode, [{\n key: 'toString',\n value: function toString() {\n return '';\n }\n }, {\n key: 'text',\n get: function get() {\n return this.rawText;\n }\n }]);\n\n return CommentNode;\n}(_node2.default);\n\nexports.default = CommentNode;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/comment.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/nodes/html.js": +/*!**************************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/nodes/html.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.parse = parse;\n\nvar _he = __webpack_require__(/*! he */ \"./node_modules/he/he.js\");\n\nvar _node = __webpack_require__(/*! ./node */ \"./node_modules/node-html-parser/dist/esm/nodes/node.js\");\n\nvar _node2 = _interopRequireDefault(_node);\n\nvar _type = __webpack_require__(/*! ./type */ \"./node_modules/node-html-parser/dist/esm/nodes/type.js\");\n\nvar _type2 = _interopRequireDefault(_type);\n\nvar _text3 = __webpack_require__(/*! ./text */ \"./node_modules/node-html-parser/dist/esm/nodes/text.js\");\n\nvar _text4 = _interopRequireDefault(_text3);\n\nvar _matcher = __webpack_require__(/*! ../matcher */ \"./node_modules/node-html-parser/dist/esm/matcher.js\");\n\nvar _matcher2 = _interopRequireDefault(_matcher);\n\nvar _back = __webpack_require__(/*! ../back */ \"./node_modules/node-html-parser/dist/esm/back.js\");\n\nvar _back2 = _interopRequireDefault(_back);\n\nvar _comment = __webpack_require__(/*! ./comment */ \"./node_modules/node-html-parser/dist/esm/nodes/comment.js\");\n\nvar _comment2 = _interopRequireDefault(_comment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar kBlockElements = new Map();\nkBlockElements.set('DIV', true);\nkBlockElements.set('div', true);\nkBlockElements.set('P', true);\nkBlockElements.set('p', true);\n// ul: true,\n// ol: true,\nkBlockElements.set('LI', true);\nkBlockElements.set('li', true);\n// table: true,\n// tr: true,\nkBlockElements.set('TD', true);\nkBlockElements.set('td', true);\nkBlockElements.set('SECTION', true);\nkBlockElements.set('section', true);\nkBlockElements.set('BR', true);\nkBlockElements.set('br', true);\n/**\n * HTMLElement, which contains a set of children.\n *\n * Note: this is a minimalist implementation, no complete tree\n * structure provided (no parentNode, nextSibling,\n * previousSibling etc).\n * @class HTMLElement\n * @extends {Node}\n */\n\nvar HTMLElement = function (_Node) {\n _inherits(HTMLElement, _Node);\n\n /**\n * Creates an instance of HTMLElement.\n * @param keyAttrs\tid and class attribute\n * @param [rawAttrs]\tattributes in string\n *\n * @memberof HTMLElement\n */\n function HTMLElement(tagName, keyAttrs) {\n var rawAttrs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n var parentNode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, HTMLElement);\n\n var _this = _possibleConstructorReturn(this, (HTMLElement.__proto__ || Object.getPrototypeOf(HTMLElement)).call(this));\n\n _this.rawAttrs = rawAttrs;\n _this.parentNode = parentNode;\n _this.classNames = [];\n /**\n * Node Type declaration.\n */\n _this.nodeType = _type2.default.ELEMENT_NODE;\n _this.rawTagName = tagName;\n _this.rawAttrs = rawAttrs || '';\n _this.parentNode = parentNode || null;\n _this.childNodes = [];\n if (keyAttrs.id) {\n _this.id = keyAttrs.id;\n if (!rawAttrs) {\n _this.rawAttrs = 'id=\"' + keyAttrs.id + '\"';\n }\n }\n if (keyAttrs.class) {\n _this.classNames = keyAttrs.class.split(/\\s+/);\n if (!rawAttrs) {\n var cls = 'class=\"' + _this.classNames.join(' ') + '\"';\n if (_this.rawAttrs) {\n _this.rawAttrs += ' ' + cls;\n } else {\n _this.rawAttrs = cls;\n }\n }\n }\n return _this;\n }\n /**\n * Remove current element\n */\n\n\n _createClass(HTMLElement, [{\n key: 'remove',\n value: function remove() {\n var _this2 = this;\n\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n this.parentNode.childNodes = children.filter(function (child) {\n return _this2 !== child;\n });\n }\n }\n /**\n * Remove Child element from childNodes array\n * @param {HTMLElement} node node to remove\n */\n\n }, {\n key: 'removeChild',\n value: function removeChild(node) {\n this.childNodes = this.childNodes.filter(function (child) {\n return child !== node;\n });\n }\n /**\n * Exchanges given child with new child\n * @param {HTMLElement} oldNode node to exchange\n * @param {HTMLElement} newNode new node\n */\n\n }, {\n key: 'exchangeChild',\n value: function exchangeChild(oldNode, newNode) {\n var children = this.childNodes;\n this.childNodes = children.map(function (child) {\n if (child === oldNode) {\n return newNode;\n }\n return child;\n });\n }\n }, {\n key: 'toString',\n value: function toString() {\n var tag = this.rawTagName;\n if (tag) {\n var is_void = /^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/i.test(tag);\n var attrs = this.rawAttrs ? ' ' + this.rawAttrs : '';\n if (is_void) {\n return '<' + tag + attrs + '>';\n }\n return '<' + tag + attrs + '>' + this.innerHTML + '';\n }\n return this.innerHTML;\n }\n }, {\n key: 'set_content',\n value: function set_content(content) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (content instanceof _node2.default) {\n content = [content];\n } else if (typeof content == 'string') {\n var r = parse(content, options);\n content = r.childNodes.length ? r.childNodes : [new _text4.default(content)];\n }\n this.childNodes = content;\n }\n }, {\n key: 'trimRight',\n\n /**\n * Trim element from right (in block) after seeing pattern in a TextNode.\n * @param {RegExp} pattern pattern to find\n * @return {HTMLElement} reference to current node\n */\n value: function trimRight(pattern) {\n for (var i = 0; i < this.childNodes.length; i++) {\n var childNode = this.childNodes[i];\n if (childNode.nodeType === _type2.default.ELEMENT_NODE) {\n childNode.trimRight(pattern);\n } else {\n var index = childNode.rawText.search(pattern);\n if (index > -1) {\n childNode.rawText = childNode.rawText.substr(0, index);\n // trim all following nodes.\n this.childNodes.length = i + 1;\n }\n }\n }\n return this;\n }\n /**\n * Get DOM structure\n * @return {string} strucutre\n */\n\n }, {\n key: 'removeWhitespace',\n\n /**\n * Remove whitespaces in this sub tree.\n * @return {HTMLElement} pointer to this\n */\n value: function removeWhitespace() {\n var _this3 = this;\n\n var o = 0;\n this.childNodes.forEach(function (node) {\n if (node.nodeType === _type2.default.TEXT_NODE) {\n if (node.isWhitespace) {\n return;\n }\n node.rawText = node.rawText.trim();\n } else if (node.nodeType === _type2.default.ELEMENT_NODE) {\n node.removeWhitespace();\n }\n _this3.childNodes[o++] = node;\n });\n this.childNodes.length = o;\n return this;\n }\n /**\n * Query CSS selector to find matching nodes.\n * @param {string} selector Simplified CSS selector\n * @param {Matcher} selector A Matcher instance\n * @return {HTMLElement[]} matching elements\n */\n\n }, {\n key: 'querySelectorAll',\n value: function querySelectorAll(selector) {\n var _this4 = this;\n\n var matcher = void 0;\n if (selector instanceof _matcher2.default) {\n matcher = selector;\n matcher.reset();\n } else {\n if (selector.includes(',')) {\n var selectors = selector.split(',');\n return Array.from(selectors.reduce(function (pre, cur) {\n var result = _this4.querySelectorAll(cur.trim());\n return result.reduce(function (p, c) {\n return p.add(c);\n }, pre);\n }, new Set()));\n }\n matcher = new _matcher2.default(selector);\n }\n var stack = [];\n return this.childNodes.reduce(function (res, cur) {\n stack.push([cur, 0, false]);\n while (stack.length) {\n var state = (0, _back2.default)(stack); // get last element\n var el = state[0];\n if (state[1] === 0) {\n // Seen for first time.\n if (el.nodeType !== _type2.default.ELEMENT_NODE) {\n stack.pop();\n continue;\n }\n var html_el = el;\n state[2] = matcher.advance(html_el);\n if (state[2]) {\n if (matcher.matched) {\n res.push(html_el);\n res.push.apply(res, _toConsumableArray(html_el.querySelectorAll(selector)));\n // no need to go further.\n matcher.rewind();\n stack.pop();\n continue;\n }\n }\n }\n if (state[1] < el.childNodes.length) {\n stack.push([el.childNodes[state[1]++], 0, false]);\n } else {\n if (state[2]) {\n matcher.rewind();\n }\n stack.pop();\n }\n }\n return res;\n }, []);\n }\n /**\n * Query CSS Selector to find matching node.\n * @param {string} selector Simplified CSS selector\n * @param {Matcher} selector A Matcher instance\n * @return {HTMLElement} matching node\n */\n\n }, {\n key: 'querySelector',\n value: function querySelector(selector) {\n var matcher = void 0;\n if (selector instanceof _matcher2.default) {\n matcher = selector;\n matcher.reset();\n } else {\n matcher = new _matcher2.default(selector);\n }\n var stack = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.childNodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var node = _step.value;\n\n stack.push([node, 0, false]);\n while (stack.length) {\n var state = (0, _back2.default)(stack);\n var el = state[0];\n if (state[1] === 0) {\n // Seen for first time.\n if (el.nodeType !== _type2.default.ELEMENT_NODE) {\n stack.pop();\n continue;\n }\n state[2] = matcher.advance(el);\n if (state[2]) {\n if (matcher.matched) {\n return el;\n }\n }\n }\n if (state[1] < el.childNodes.length) {\n stack.push([el.childNodes[state[1]++], 0, false]);\n } else {\n if (state[2]) {\n matcher.rewind();\n }\n stack.pop();\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return null;\n }\n /**\n * Append a child node to childNodes\n * @param {Node} node node to append\n * @return {Node} node appended\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n // node.parentNode = this;\n this.childNodes.push(node);\n if (node instanceof HTMLElement) {\n node.parentNode = this;\n }\n return node;\n }\n /**\n * Get first child node\n * @return {Node} first child node\n */\n\n }, {\n key: 'removeAttribute',\n value: function removeAttribute(key) {\n var attrs = this.rawAttributes;\n delete attrs[key];\n // Update this.attribute\n if (this._attrs) {\n delete this._attrs[key];\n }\n // Update rawString\n this.rawAttrs = Object.keys(attrs).map(function (name) {\n var val = JSON.stringify(attrs[name]);\n if (val === undefined || val === 'null') {\n return name;\n }\n return name + '=' + val;\n }).join(' ');\n }\n }, {\n key: 'hasAttribute',\n value: function hasAttribute(key) {\n return key in this.attributes;\n }\n /**\n * Get an attribute\n * @return {string} value of the attribute\n */\n\n }, {\n key: 'getAttribute',\n value: function getAttribute(key) {\n return this.attributes[key];\n }\n /**\n * Set an attribute value to the HTMLElement\n * @param {string} key The attribute name\n * @param {string} value The value to set, or null / undefined to remove an attribute\n */\n\n }, {\n key: 'setAttribute',\n value: function setAttribute(key, value) {\n if (arguments.length < 2) {\n throw new Error('Failed to execute \\'setAttribute\\' on \\'Element\\'');\n }\n var attrs = this.rawAttributes;\n attrs[key] = String(value);\n if (this._attrs) {\n this._attrs[key] = (0, _he.decode)(attrs[key]);\n }\n // Update rawString\n this.rawAttrs = Object.keys(attrs).map(function (name) {\n var val = JSON.stringify(attrs[name]);\n if (val === 'null' || val === '\"\"') {\n return name;\n }\n return name + '=' + val;\n }).join(' ');\n }\n /**\n * Replace all the attributes of the HTMLElement by the provided attributes\n * @param {Attributes} attributes the new attribute set\n */\n\n }, {\n key: 'setAttributes',\n value: function setAttributes(attributes) {\n // Invalidate current this.attributes\n if (this._attrs) {\n delete this._attrs;\n }\n // Invalidate current this.rawAttributes\n if (this._rawAttrs) {\n delete this._rawAttrs;\n }\n // Update rawString\n this.rawAttrs = Object.keys(attributes).map(function (name) {\n var val = attributes[name];\n if (val === 'null' || val === '\"\"') {\n return name;\n }\n return name + '=' + JSON.stringify(String(val));\n }).join(' ');\n }\n }, {\n key: 'insertAdjacentHTML',\n value: function insertAdjacentHTML(where, html) {\n var _this5 = this;\n\n if (arguments.length < 2) {\n throw new Error('2 arguments required');\n }\n var p = parse(html);\n if (where === 'afterend') {\n var _parentNode$childNode;\n\n var idx = this.parentNode.childNodes.findIndex(function (child) {\n return child === _this5;\n });\n (_parentNode$childNode = this.parentNode.childNodes).splice.apply(_parentNode$childNode, [idx + 1, 0].concat(_toConsumableArray(p.childNodes)));\n p.childNodes.forEach(function (n) {\n if (n instanceof HTMLElement) {\n n.parentNode = _this5.parentNode;\n }\n });\n } else if (where === 'afterbegin') {\n var _childNodes;\n\n (_childNodes = this.childNodes).unshift.apply(_childNodes, _toConsumableArray(p.childNodes));\n } else if (where === 'beforeend') {\n p.childNodes.forEach(function (n) {\n _this5.appendChild(n);\n });\n } else if (where === 'beforebegin') {\n var _parentNode$childNode2;\n\n var _idx = this.parentNode.childNodes.findIndex(function (child) {\n return child === _this5;\n });\n (_parentNode$childNode2 = this.parentNode.childNodes).splice.apply(_parentNode$childNode2, [_idx, 0].concat(_toConsumableArray(p.childNodes)));\n p.childNodes.forEach(function (n) {\n if (n instanceof HTMLElement) {\n n.parentNode = _this5.parentNode;\n }\n });\n } else {\n throw new Error('The value provided (\\'' + where + '\\') is not one of \\'beforebegin\\', \\'afterbegin\\', \\'beforeend\\', or \\'afterend\\'');\n }\n // if (!where || html === undefined || html === null) {\n // \treturn;\n // }\n }\n }, {\n key: 'tagName',\n get: function get() {\n return this.rawTagName ? this.rawTagName.toUpperCase() : this.rawTagName;\n }\n /**\n * Get escpaed (as-it) text value of current node and its children.\n * @return {string} text content\n */\n\n }, {\n key: 'rawText',\n get: function get() {\n return this.childNodes.reduce(function (pre, cur) {\n return pre += cur.rawText;\n }, '');\n }\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n\n }, {\n key: 'text',\n get: function get() {\n return (0, _he.decode)(this.rawText);\n }\n /**\n * Get structured Text (with '\\n' etc.)\n * @return {string} structured text\n */\n\n }, {\n key: 'structuredText',\n get: function get() {\n var currentBlock = [];\n var blocks = [currentBlock];\n function dfs(node) {\n if (node.nodeType === _type2.default.ELEMENT_NODE) {\n if (kBlockElements.get(node.rawTagName)) {\n if (currentBlock.length > 0) {\n blocks.push(currentBlock = []);\n }\n node.childNodes.forEach(dfs);\n if (currentBlock.length > 0) {\n blocks.push(currentBlock = []);\n }\n } else {\n node.childNodes.forEach(dfs);\n }\n } else if (node.nodeType === _type2.default.TEXT_NODE) {\n if (node.isWhitespace) {\n // Whitespace node, postponed output\n currentBlock.prependWhitespace = true;\n } else {\n var text = node.text;\n if (currentBlock.prependWhitespace) {\n text = ' ' + text;\n currentBlock.prependWhitespace = false;\n }\n currentBlock.push(text);\n }\n }\n }\n dfs(this);\n return blocks.map(function (block) {\n // Normalize each line's whitespace\n return block.join('').trim().replace(/\\s{2,}/g, ' ');\n }).join('\\n').replace(/\\s+$/, ''); // trimRight;\n }\n }, {\n key: 'innerHTML',\n get: function get() {\n return this.childNodes.map(function (child) {\n return child.toString();\n }).join('');\n }\n }, {\n key: 'outerHTML',\n get: function get() {\n return this.toString();\n }\n }, {\n key: 'structure',\n get: function get() {\n var res = [];\n var indention = 0;\n function write(str) {\n res.push(' '.repeat(indention) + str);\n }\n function dfs(node) {\n var idStr = node.id ? '#' + node.id : '';\n var classStr = node.classNames.length ? '.' + node.classNames.join('.') : '';\n write(node.rawTagName + idStr + classStr);\n indention++;\n node.childNodes.forEach(function (childNode) {\n if (childNode.nodeType === _type2.default.ELEMENT_NODE) {\n dfs(childNode);\n } else if (childNode.nodeType === _type2.default.TEXT_NODE) {\n if (!childNode.isWhitespace) {\n write('#text');\n }\n }\n });\n indention--;\n }\n dfs(this);\n return res.join('\\n');\n }\n }, {\n key: 'firstChild',\n get: function get() {\n return this.childNodes[0];\n }\n /**\n * Get last child node\n * @return {Node} last child node\n */\n\n }, {\n key: 'lastChild',\n get: function get() {\n return (0, _back2.default)(this.childNodes);\n }\n /**\n * Get attributes\n * @return {Object} parsed and unescaped attributes\n */\n\n }, {\n key: 'attributes',\n get: function get() {\n if (this._attrs) {\n return this._attrs;\n }\n this._attrs = {};\n var attrs = this.rawAttributes;\n for (var key in attrs) {\n var val = attrs[key] || '';\n this._attrs[key] = (0, _he.decode)(val);\n }\n return this._attrs;\n }\n /**\n * Get escaped (as-it) attributes\n * @return {Object} parsed attributes\n */\n\n }, {\n key: 'rawAttributes',\n get: function get() {\n if (this._rawAttrs) {\n return this._rawAttrs;\n }\n var attrs = {};\n if (this.rawAttrs) {\n var re = /\\b([a-z][a-z0-9-]*)(?:\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|(\\S+)))?/ig;\n var match = void 0;\n while (match = re.exec(this.rawAttrs)) {\n attrs[match[1]] = match[2] || match[3] || match[4] || null;\n }\n }\n this._rawAttrs = attrs;\n return attrs;\n }\n }, {\n key: 'nextSibling',\n get: function get() {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = 0;\n while (i < children.length) {\n var child = children[i++];\n if (this === child) {\n return children[i] || null;\n }\n }\n return null;\n }\n }\n }, {\n key: 'nextElementSibling',\n get: function get() {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = 0;\n var find = false;\n while (i < children.length) {\n var child = children[i++];\n if (find) {\n if (child instanceof HTMLElement) {\n return child || null;\n }\n } else if (this === child) {\n find = true;\n }\n }\n return null;\n }\n }\n }]);\n\n return HTMLElement;\n}(_node2.default);\n// https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n\n\nexports.default = HTMLElement;\nvar kMarkupPattern = /)-->|<(\\/?)([a-z][-.:0-9_a-z]*)\\s*([^>]*?)(\\/?)>/ig;\n// <(?[^\\s]*)(.*)>(.*)>\n// <([a-z][-.:0-9_a-z]*)\\s*\\/>\n// <(area|base|br|col|hr|img|input|link|meta|source)\\s*(.*)\\/?>\n// <(area|base|br|col|hr|img|input|link|meta|source)\\s*(.*)\\/?>|<(?[^\\s]*)(.*)>(.*)>\nvar kAttributePattern = /(^|\\s)(id|class)\\s*=\\s*(\"([^\"]+)\"|'([^']+)'|(\\S+))/ig;\nvar kSelfClosingElements = {\n area: true,\n AREA: true,\n base: true,\n BASE: true,\n br: true,\n BR: true,\n col: true,\n COL: true,\n hr: true,\n HR: true,\n img: true,\n IMG: true,\n input: true,\n INPUT: true,\n link: true,\n LINK: true,\n meta: true,\n META: true,\n source: true,\n SOURCE: true,\n embed: true,\n EMBED: true,\n param: true,\n PARAM: true,\n track: true,\n TRACK: true,\n wbr: true,\n WBR: true\n};\nvar kElementsClosedByOpening = {\n li: { li: true, LI: true },\n LI: { li: true, LI: true },\n p: { p: true, div: true, P: true, DIV: true },\n P: { p: true, div: true, P: true, DIV: true },\n b: { div: true, DIV: true },\n B: { div: true, DIV: true },\n td: { td: true, th: true, TD: true, TH: true },\n TD: { td: true, th: true, TD: true, TH: true },\n th: { td: true, th: true, TD: true, TH: true },\n TH: { td: true, th: true, TD: true, TH: true },\n h1: { h1: true, H1: true },\n H1: { h1: true, H1: true },\n h2: { h2: true, H2: true },\n H2: { h2: true, H2: true },\n h3: { h3: true, H3: true },\n H3: { h3: true, H3: true },\n h4: { h4: true, H4: true },\n H4: { h4: true, H4: true },\n h5: { h5: true, H5: true },\n H5: { h5: true, H5: true },\n h6: { h6: true, H6: true },\n H6: { h6: true, H6: true }\n};\nvar kElementsClosedByClosing = {\n li: { ul: true, ol: true, UL: true, OL: true },\n LI: { ul: true, ol: true, UL: true, OL: true },\n a: { div: true, DIV: true },\n A: { div: true, DIV: true },\n b: { div: true, DIV: true },\n B: { div: true, DIV: true },\n i: { div: true, DIV: true },\n I: { div: true, DIV: true },\n p: { div: true, DIV: true },\n P: { div: true, DIV: true },\n td: { tr: true, table: true, TR: true, TABLE: true },\n TD: { tr: true, table: true, TR: true, TABLE: true },\n th: { tr: true, table: true, TR: true, TABLE: true },\n TH: { tr: true, table: true, TR: true, TABLE: true }\n};\nvar frameflag = 'documentfragmentcontainer';\nfunction parse(data) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { lowerCaseTagName: false, comment: false };\n\n var elements = options.blockTextElements || {\n script: true,\n noscript: true,\n style: true,\n pre: true\n };\n var element_names = Object.keys(elements);\n var kBlockTextElements = element_names.map(function (it) {\n return new RegExp(it, 'i');\n });\n var kIgnoreElements = element_names.filter(function (it) {\n return elements[it];\n }).map(function (it) {\n return new RegExp(it, 'i');\n });\n function element_should_be_ignore(tag) {\n return kIgnoreElements.some(function (it) {\n return it.test(tag);\n });\n }\n function is_block_text_element(tag) {\n return kBlockTextElements.some(function (it) {\n return it.test(tag);\n });\n }\n var root = new HTMLElement(null, {});\n var currentParent = root;\n var stack = [root];\n var lastTextPos = -1;\n var match = void 0;\n // https://github.com/taoqf/node-html-parser/issues/38\n data = '<' + frameflag + '>' + data + '';\n while (match = kMarkupPattern.exec(data)) {\n if (lastTextPos > -1) {\n if (lastTextPos + match[0].length < kMarkupPattern.lastIndex) {\n // if has content\n var text = data.substring(lastTextPos, kMarkupPattern.lastIndex - match[0].length);\n currentParent.appendChild(new _text4.default(text));\n }\n }\n lastTextPos = kMarkupPattern.lastIndex;\n if (match[2] === frameflag) {\n continue;\n }\n if (match[0][1] === '!') {\n // this is a comment\n if (options.comment) {\n // Only keep what is in between \n var _text = data.substring(lastTextPos - 3, lastTextPos - match[0].length + 4);\n currentParent.appendChild(new _comment2.default(_text));\n }\n continue;\n }\n if (options.lowerCaseTagName) {\n match[2] = match[2].toLowerCase();\n }\n if (!match[1]) {\n // not or ...\n var closeMarkup = '';\n var index = function () {\n if (options.lowerCaseTagName) {\n return data.toLocaleLowerCase().indexOf(closeMarkup, kMarkupPattern.lastIndex);\n }\n return data.indexOf(closeMarkup, kMarkupPattern.lastIndex);\n }();\n if (element_should_be_ignore(match[2])) {\n var _text2 = void 0;\n if (index === -1) {\n // there is no matching ending for the text element.\n _text2 = data.substr(kMarkupPattern.lastIndex);\n } else {\n _text2 = data.substring(kMarkupPattern.lastIndex, index);\n }\n if (_text2.length > 0) {\n currentParent.appendChild(new _text4.default(_text2));\n }\n }\n if (index === -1) {\n lastTextPos = kMarkupPattern.lastIndex = data.length + 1;\n } else {\n lastTextPos = kMarkupPattern.lastIndex = index + closeMarkup.length;\n match[1] = 'true';\n }\n })();\n }\n }\n if (match[1] || match[4] || kSelfClosingElements[match[2]]) {\n // or
etc.\n while (true) {\n if (currentParent.rawTagName === match[2]) {\n stack.pop();\n currentParent = (0, _back2.default)(stack);\n break;\n } else {\n var _tagName = currentParent.tagName;\n // Trying to close current tag, and move on\n if (kElementsClosedByClosing[_tagName]) {\n if (kElementsClosedByClosing[_tagName][match[2]]) {\n stack.pop();\n currentParent = (0, _back2.default)(stack);\n continue;\n }\n }\n // Use aggressive strategy to handle unmatching markups.\n break;\n }\n }\n }\n }\n var valid = Boolean(stack.length === 1);\n if (!options.noFix) {\n var _response = root;\n _response.valid = valid;\n\n var _loop = function _loop() {\n // Handle each error elements.\n var last = stack.pop();\n var oneBefore = (0, _back2.default)(stack);\n if (last.parentNode && last.parentNode.parentNode) {\n if (last.parentNode === oneBefore && last.tagName === oneBefore.tagName) {\n // Pair error case

handle : Fixes to

\n oneBefore.removeChild(last);\n last.childNodes.forEach(function (child) {\n oneBefore.parentNode.appendChild(child);\n });\n stack.pop();\n } else {\n // Single error

handle: Just removes

\n oneBefore.removeChild(last);\n last.childNodes.forEach(function (child) {\n oneBefore.appendChild(child);\n });\n }\n } else {\n // If it's final element just skip.\n }\n };\n\n while (stack.length > 1) {\n _loop();\n }\n _response.childNodes.forEach(function (node) {\n if (node instanceof HTMLElement) {\n node.parentNode = null;\n }\n });\n return _response;\n }\n var response = new _text4.default(data);\n response.valid = valid;\n return response;\n}\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/html.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/nodes/node.js": +/*!**************************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/nodes/node.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Node Class as base class for TextNode and HTMLElement.\n */\nvar Node = function () {\n function Node() {\n _classCallCheck(this, Node);\n\n this.childNodes = [];\n }\n\n _createClass(Node, [{\n key: \"innerText\",\n get: function get() {\n return this.rawText;\n }\n }]);\n\n return Node;\n}();\n\nexports.default = Node;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/node.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/nodes/text.js": +/*!**************************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/nodes/text.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _type = __webpack_require__(/*! ./type */ \"./node_modules/node-html-parser/dist/esm/nodes/type.js\");\n\nvar _type2 = _interopRequireDefault(_type);\n\nvar _node = __webpack_require__(/*! ./node */ \"./node_modules/node-html-parser/dist/esm/nodes/node.js\");\n\nvar _node2 = _interopRequireDefault(_node);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * TextNode to contain a text element in DOM tree.\n * @param {string} value [description]\n */\nvar TextNode = function (_Node) {\n _inherits(TextNode, _Node);\n\n function TextNode(rawText) {\n _classCallCheck(this, TextNode);\n\n var _this = _possibleConstructorReturn(this, (TextNode.__proto__ || Object.getPrototypeOf(TextNode)).call(this));\n\n _this.rawText = rawText;\n /**\n * Node Type declaration.\n * @type {Number}\n */\n _this.nodeType = _type2.default.TEXT_NODE;\n return _this;\n }\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n\n\n _createClass(TextNode, [{\n key: 'toString',\n value: function toString() {\n return this.text;\n }\n }, {\n key: 'text',\n get: function get() {\n return this.rawText;\n }\n /**\n * Detect if the node contains only white space.\n * @return {bool}\n */\n\n }, {\n key: 'isWhitespace',\n get: function get() {\n return (/^(\\s| )*$/.test(this.rawText)\n );\n }\n }]);\n\n return TextNode;\n}(_node2.default);\n\nexports.default = TextNode;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/text.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/nodes/type.js": +/*!**************************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/nodes/type.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType[NodeType[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType[NodeType[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n})(NodeType || (NodeType = {}));\nexports.default = NodeType;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/type.js?"); + +/***/ }), + /***/ "./node_modules/process/browser.js": /*!*****************************************!*\ !*** ./node_modules/process/browser.js ***! @@ -123,6 +243,17 @@ eval("\n\n// shim for using process in browser\nvar process = module.exports = { /***/ }), +/***/ "./node_modules/webpack/buildin/amd-options.js": +/*!****************************************!*\ + !*** (webpack)/buildin/amd-options.js ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n\n/* WEBPACK VAR INJECTION */}.call(this, {}))\n\n//# sourceURL=webpack://Contentstack/(webpack)/buildin/amd-options.js?"); + +/***/ }), + /***/ "./node_modules/webpack/buildin/global.js": /*!***********************************!*\ !*** (webpack)/buildin/global.js ***! @@ -135,6 +266,18 @@ eval("\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator /***/ }), +/***/ "./node_modules/webpack/buildin/module.js": +/*!***********************************!*\ + !*** (webpack)/buildin/module.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nmodule.exports = function (module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function () {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function get() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function get() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n//# sourceURL=webpack://Contentstack/(webpack)/buildin/module.js?"); + +/***/ }), + /***/ "./src/core/cache-provider/index.js": /*!******************************************!*\ !*** ./src/core/cache-provider/index.js ***! @@ -179,7 +322,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _stack = __webpack_require__(/*! ./stack */ \"./src/core/stack.js\");\n\nvar _stack2 = _interopRequireDefault(_stack);\n\nvar _index = __webpack_require__(/*! ./cache-provider/index */ \"./src/core/cache-provider/index.js\");\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _contentstackregion = __webpack_require__(/*! ./contentstackregion */ \"./src/core/contentstackregion.js\");\n\nvar _contentstackregion2 = _interopRequireDefault(_contentstackregion);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n* @class \n Contentstack \n* @description Creates an instance of `Contentstack`.\n* @instance\n*/\n\nvar Contentstack = function () {\n\tfunction Contentstack() {\n\t\t_classCallCheck(this, Contentstack);\n\n\t\t/**\n * @memberOf Contentstack\n * @description CachePolicy contains different cache policies constants.\n * @example\n * Contentstack.CachePolicy.IGNORE_CACHE\n * Contentstack.CachePolicy.ONLY_NETWORK\n * Contentstack.CachePolicy.CACHE_ELSE_NETWORK\n * Contentstack.CachePolicy.NETWORK_ELSE_CACHE\n * Contentstack.CachePolicy.CACHE_THEN_NETWORK\n */\n\t\tthis.CachePolicy = _index2.default.policies;\n\t\tthis.Region = _contentstackregion2.default;\n\t}\n\t/**\n \n * @memberOf Contentstack\n */\n\n\n\t_createClass(Contentstack, [{\n\t\tkey: \"Stack\",\n\t\tvalue: function Stack() {\n\t\t\tfor (var _len = arguments.length, stack_arguments = Array(_len), _key = 0; _key < _len; _key++) {\n\t\t\t\tstack_arguments[_key] = arguments[_key];\n\t\t\t}\n\n\t\t\treturn new (Function.prototype.bind.apply(_stack2.default, [null].concat(stack_arguments)))();\n\t\t}\n\t}]);\n\n\treturn Contentstack;\n}();\n\nmodule.exports = new Contentstack();\n\n//# sourceURL=webpack://Contentstack/./src/core/contentstack.js?"); +eval("\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _stack = __webpack_require__(/*! ./stack */ \"./src/core/stack.js\");\n\nvar _stack2 = _interopRequireDefault(_stack);\n\nvar _index = __webpack_require__(/*! ./cache-provider/index */ \"./src/core/cache-provider/index.js\");\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _contentstackregion = __webpack_require__(/*! ./contentstackregion */ \"./src/core/contentstackregion.js\");\n\nvar _contentstackregion2 = _interopRequireDefault(_contentstackregion);\n\nvar _utils = __webpack_require__(/*! @contentstack/utils */ \"./node_modules/@contentstack/utils/dist/index.es.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n* @class \n Contentstack \n* @description Creates an instance of `Contentstack`.\n* @instance\n*/\n\nvar Contentstack = function () {\n\tfunction Contentstack() {\n\t\t_classCallCheck(this, Contentstack);\n\n\t\t/**\n * @memberOf Contentstack\n * @description CachePolicy contains different cache policies constants.\n * @example\n * Contentstack.CachePolicy.IGNORE_CACHE\n * Contentstack.CachePolicy.ONLY_NETWORK\n * Contentstack.CachePolicy.CACHE_ELSE_NETWORK\n * Contentstack.CachePolicy.NETWORK_ELSE_CACHE\n * Contentstack.CachePolicy.CACHE_THEN_NETWORK\n */\n\t\tthis.CachePolicy = _index2.default.policies;\n\t\tthis.Region = _contentstackregion2.default;\n\n\t\tthis.Utils = {\n\t\t\t/**\n * @memberof Contentstack\n * @description Renders embedded objects in Rich text from Entry or Multiple Entry Object.\n * \n * @param {EntryEmbedable| EntryEmbedable[]} entry - Objects that contains RTE with embedded objects\n * @param {string[]} keyPaths - Key paths for RTE contents in Entry object\n * @param {RenderOption?} renderOption - Optional render options to render content\n */\n\t\t\trender: _utils.render,\n\t\t\t/**\n * @memberof Contentstack\n * @description Renders embedded objects in Rich text from String or String of array.\n * @param {string | string[]} content - RTE content to render \n * @param {EntryEmbedable} options.entry - Entry object containing embedded objects\n * @param {RenderOption?} options.renderOption - Optional render options to render content\n */\n\t\t\trenderContent: _utils.renderContent\n\t\t};\n\t}\n\t/**\n \n * @memberOf Contentstack\n */\n\n\n\t_createClass(Contentstack, [{\n\t\tkey: \"Stack\",\n\t\tvalue: function Stack() {\n\t\t\tfor (var _len = arguments.length, stack_arguments = Array(_len), _key = 0; _key < _len; _key++) {\n\t\t\t\tstack_arguments[_key] = arguments[_key];\n\t\t\t}\n\n\t\t\treturn new (Function.prototype.bind.apply(_stack2.default, [null].concat(stack_arguments)))();\n\t\t}\n\t}]);\n\n\treturn Contentstack;\n}();\n\nmodule.exports = new Contentstack();\n\n//# sourceURL=webpack://Contentstack/./src/core/contentstack.js?"); /***/ }), @@ -203,7 +346,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = Request;\n\nvar _utils = __webpack_require__(/*! ./utils.js */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _http = __webpack_require__(/*! runtime/http.js */ \"./src/runtime/nativescript/http.js\");\n\nvar _http2 = _interopRequireDefault(_http);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n//JS SDK version\nvar version = '3.12.2';\nvar environment = void 0,\n api_key = void 0;\nfunction Request(options, fetchOptions) {\n return new Promise(function (resolve, reject) {\n var queryParams = void 0;\n var serialize = function serialize(obj, prefix) {\n\n var str = [],\n p = void 0;\n if ((typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj)) === \"object\" && obj.length !== undefined) {\n for (var i = 0, _i = obj.length; i < _i; i++) {\n str.push(prefix + '[]=' + obj[i]);\n }\n } else {\n for (p in obj) {\n var k = prefix ? prefix + \"[\" + p + \"]\" : p,\n v = obj[p];\n str.push(v !== null && (typeof v === \"undefined\" ? \"undefined\" : _typeof(v)) === \"object\" && p !== 'query' ? serialize(v, k) : k + \"=\" + encodeURIComponent(p !== 'query' ? v : JSON.stringify(v)));\n }\n }\n return str.join(\"&\");\n };\n\n var url = options.url,\n headers = options.headers;\n\n // setting headers\n headers['Content-Type'] = 'application/json; charset=UTF-8';\n headers['X-User-Agent'] = 'contentstack-react-native/' + version;\n\n if (options.body && _typeof(options.body) === 'object') {\n delete options.body._method;\n if (_typeof(options.body.query) === \"object\" && Object.keys(options.body.query).length === 0) delete options.body.query;\n queryParams = serialize(options.body);\n }\n\n return fetchRetry(url + '?' + queryParams, headers, fetchOptions.retryDelay, fetchOptions.retryLimit, fetchOptions, resolve, reject);\n });\n}\n\nfunction wait(retryDelay) {\n return new Promise(function (resolve) {\n setTimeout(resolve, retryDelay);\n });\n}\nasync function safeParseJSON(response) {\n var body = await response.text();\n}\nfunction fetchRetry(url, headers) {\n var retryDelay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var retryLimit = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 5;\n var fetchOptions = arguments[4];\n var resolve = arguments[5];\n var reject = arguments[6];\n\n var option = Object.assign({\n method: 'GET',\n headers: headers,\n timeout: 30000\n }, fetchOptions);\n\n function onError(error) {\n if (retryLimit === 0) {\n reject(error);\n } else {\n var msDelay = retryDelay;\n retryLimit = retryLimit - 1;\n var retryCount = fetchOptions.retryLimit - retryLimit;\n if (fetchOptions.retryDelayOptions) {\n if (fetchOptions.retryDelayOptions.base) {\n msDelay = fetchOptions.retryDelayOptions.base * retryCount;\n } else if (fetchOptions.retryDelayOptions.customBackoff) {\n msDelay = fetchOptions.retryDelayOptions.customBackoff(retryCount, error);\n }\n }\n wait(msDelay).then(function () {\n return fetchRetry(url, headers, retryDelay, retryLimit, fetchOptions, resolve, reject);\n });\n }\n }\n (0, _http2.default)(url, option).then(function (response) {\n var data = response.json();\n if (response.ok && response.status === 200) {\n resolve(data);\n } else {\n data.then(function (json) {\n if (fetchOptions.retryCondition && fetchOptions.retryCondition(response)) {\n onError(json);\n } else {\n reject(json);\n }\n }).catch(function () {\n reject({ status: response.status, statusText: response.statusText });\n });\n }\n }).catch(function (error) {\n reject(error);\n });\n}\n\n//# sourceURL=webpack://Contentstack/./src/core/lib/request.js?"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = Request;\n\nvar _utils = __webpack_require__(/*! ./utils.js */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _http = __webpack_require__(/*! runtime/http.js */ \"./src/runtime/nativescript/http.js\");\n\nvar _http2 = _interopRequireDefault(_http);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n//JS SDK version\nvar version = '3.13.0';\nvar environment = void 0,\n api_key = void 0;\nfunction Request(options, fetchOptions) {\n return new Promise(function (resolve, reject) {\n var queryParams = void 0;\n var serialize = function serialize(obj, prefix) {\n\n var str = [],\n p = void 0;\n if ((typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj)) === \"object\" && obj.length !== undefined) {\n for (var i = 0, _i = obj.length; i < _i; i++) {\n str.push(prefix + '[]=' + obj[i]);\n }\n } else {\n for (p in obj) {\n var k = prefix ? prefix + \"[\" + p + \"]\" : p,\n v = obj[p];\n str.push(v !== null && (typeof v === \"undefined\" ? \"undefined\" : _typeof(v)) === \"object\" && p !== 'query' ? serialize(v, k) : k + \"=\" + encodeURIComponent(p !== 'query' ? v : JSON.stringify(v)));\n }\n }\n return str.join(\"&\");\n };\n\n var url = options.url,\n headers = options.headers;\n\n // setting headers\n headers['Content-Type'] = 'application/json; charset=UTF-8';\n headers['X-User-Agent'] = 'contentstack-react-native/' + version;\n\n if (options.body && _typeof(options.body) === 'object') {\n delete options.body._method;\n if (_typeof(options.body.query) === \"object\" && Object.keys(options.body.query).length === 0) delete options.body.query;\n queryParams = serialize(options.body);\n }\n\n return fetchRetry(url + '?' + queryParams, headers, fetchOptions.retryDelay, fetchOptions.retryLimit, fetchOptions, resolve, reject);\n });\n}\n\nfunction wait(retryDelay) {\n return new Promise(function (resolve) {\n setTimeout(resolve, retryDelay);\n });\n}\nasync function safeParseJSON(response) {\n var body = await response.text();\n}\nfunction fetchRetry(url, headers) {\n var retryDelay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var retryLimit = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 5;\n var fetchOptions = arguments[4];\n var resolve = arguments[5];\n var reject = arguments[6];\n\n var option = Object.assign({\n method: 'GET',\n headers: headers,\n timeout: 30000\n }, fetchOptions);\n\n function onError(error) {\n if (retryLimit === 0) {\n reject(error);\n } else {\n var msDelay = retryDelay;\n retryLimit = retryLimit - 1;\n var retryCount = fetchOptions.retryLimit - retryLimit;\n if (fetchOptions.retryDelayOptions) {\n if (fetchOptions.retryDelayOptions.base) {\n msDelay = fetchOptions.retryDelayOptions.base * retryCount;\n } else if (fetchOptions.retryDelayOptions.customBackoff) {\n msDelay = fetchOptions.retryDelayOptions.customBackoff(retryCount, error);\n }\n }\n wait(msDelay).then(function () {\n return fetchRetry(url, headers, retryDelay, retryLimit, fetchOptions, resolve, reject);\n });\n }\n }\n (0, _http2.default)(url, option).then(function (response) {\n var data = response.json();\n if (response.ok && response.status === 200) {\n resolve(data);\n } else {\n data.then(function (json) {\n if (fetchOptions.retryCondition && fetchOptions.retryCondition(response)) {\n onError(json);\n } else {\n reject(json);\n }\n }).catch(function () {\n reject({ status: response.status, statusText: response.statusText });\n });\n }\n }).catch(function (error) {\n reject(error);\n });\n}\n\n//# sourceURL=webpack://Contentstack/./src/core/lib/request.js?"); /***/ }), @@ -215,7 +358,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof2 = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.transform = transform;\nexports._type = _type;\nexports.mergeDeep = mergeDeep;\nexports.merge = merge;\nexports.isBrowser = isBrowser;\nexports.parseQueryFromParams = parseQueryFromParams;\nexports.getHash = getHash;\nexports.generateHash = generateHash;\nexports.resultWrapper = resultWrapper;\nexports.spreadResult = spreadResult;\nexports.sendRequest = sendRequest;\n\nvar _request = __webpack_require__(/*! ./request */ \"./src/core/lib/request.js\");\n\nvar _request2 = _interopRequireDefault(_request);\n\nvar _result = __webpack_require__(/*! ../modules/result */ \"./src/core/modules/result.js\");\n\nvar _result2 = _interopRequireDefault(_result);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @method addSpread\n * @description method to add the spread.\n */\n(function addSpread() {\n if (Promise.prototype.spread) return;\n Promise.prototype.spread = function (fn, errFunc) {\n errFunc = errFunc || function (err) {};\n return this.then(function (args) {\n return fn.apply(fn, args);\n }).catch(function (err) {\n errFunc(err);\n });\n };\n})();\n\nfunction transform(type) {\n return function () {\n this._query[type] = this._query[type] || {};\n switch (arguments.length) {\n case 1:\n if (Array.isArray(arguments[0]) || typeof arguments[0] === \"string\") {\n var query = this._query[type]['BASE'] || [];\n query = query.concat(arguments[0]);\n this._query[type]['BASE'] = query;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters\");\n }\n break;\n case 2:\n if (typeof arguments[0] === \"string\" && (Array.isArray(arguments[1]) || typeof arguments[1] === \"string\")) {\n var _query2 = this._query[type][arguments[0]] || [];\n _query2 = _query2.concat(arguments[1]);\n this._query[type][arguments[0]] = _query2;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters\");\n }\n break;\n default:\n console.error(\"Kindly provide valid parameters\");\n }\n };\n}\n\nfunction _type(val) {\n var _typeof = void 0,\n __typeof = typeof val === 'undefined' ? 'undefined' : _typeof2(val);\n switch (__typeof) {\n case 'object':\n _typeof = __typeof;\n if (Array.isArray(val)) {\n __typeof = 'array';\n }\n break;\n default:\n _typeof = __typeof;\n }\n return __typeof;\n};\n\n// merge two objects\nfunction mergeDeep(target, source) {\n var self = this;\n var _merge_recursive = function _merge_recursive(target, source) {\n for (var key in source) {\n if (self._type(source[key]) == 'object' && self._type(target[key]) == self._type(source[key])) {\n _merge_recursive(target[key], source[key]);\n } else if (self._type(source[key]) == 'array' && self._type(target[key]) == self._type(source[key])) {\n target[key] = target[key].concat(source[key]);\n } else {\n target[key] = source[key];\n }\n }\n };\n _merge_recursive(target, source);\n return target;\n};\n\n// merge two objects\nfunction merge(target, source) {\n if (target && source) {\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target;\n};\n\n// return true if process is running in browser else false\nfunction isBrowser() {\n return typeof window !== \"undefined\" && (typeof process === 'undefined' ? 'undefined' : _typeof2(process)) === \"object\" && process.title === \"browser\";\n};\n\n// return the query from the params\nfunction parseQueryFromParams(queryObject, single, toJSON) {\n if (queryObject && queryObject.requestParams) {\n var _query = merge({}, queryObject.requestParams.body ? queryObject.requestParams.body.query || {} : {});\n if (_query.environment_uid) {\n delete _query.environment_uid;\n _query.environment = queryObject.environment;\n }\n _query.environment = queryObject.environment;\n return {\n content_type_uid: queryObject.content_type_uid,\n locale: _query.locale || 'en-us',\n query: _query,\n entry_uid: queryObject.entry_uid,\n asset_uid: queryObject.asset_uid,\n single: single || \"false\",\n toJSON: toJSON || \"false\",\n api_key: queryObject.requestParams.headers ? queryObject.requestParams.headers.api_key : \"\"\n };\n }\n};\n\n// returrn the hash value of the query\nfunction getHash(query) {\n try {\n var hashValue = generateHash(JSON.stringify(query)),\n keyArray = [];\n keyArray.push(query.content_type_uid);\n keyArray.push(query.locale);\n if (query.entry_uid) keyArray.push(query.entry_uid);\n if (query.asset_uid) keyArray.push(query.asset_uid);\n keyArray.push(hashValue);\n return keyArray.join('.');\n } catch (e) {}\n};\n\n// return the hash value of the string\nfunction generateHash(str) {\n var hash = 0,\n i = void 0,\n chr = void 0,\n len = void 0;\n if (str.length === 0) return hash;\n for (i = 0, len = str.length; i < len; i++) {\n chr = str.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0; // Convert to 32bit integer\n }\n return hash < -1 ? hash * -1 : hash;\n};\n\n// generate the Result object\nfunction resultWrapper(result) {\n if (result && typeof result.entries !== 'undefined') {\n if (result.entries && result.entries.length) {\n for (var i = 0, _i = result.entries.length; i < _i; i++) {\n result.entries[i] = (0, _result2.default)(result.entries[i]);\n }\n } else {\n result.entries = [];\n }\n } else if (result && result.assets && typeof result.assets !== 'undefined') {\n if (result.assets && result.assets.length) {\n for (var j = 0, _j = result.assets.length; j < _j; j++) {\n result.assets[j] = (0, _result2.default)(result.assets[j]);\n }\n } else {\n result.assets = [];\n }\n } else if (result && typeof result.entry !== 'undefined') {\n result.entry = (0, _result2.default)(result.entry);\n } else if (result && typeof result.asset !== 'undefined') {\n result.asset = (0, _result2.default)(result.asset);\n } else if (result && typeof result.items !== 'undefined') {\n result.items = (0, _result2.default)(result.items).toJSON();\n }\n\n return result;\n};\n\n// // spread the result object\n// export function spreadResult(result) {\n// let _results = [];\n// if (result && Object.keys(result).length) {\n// if (typeof result.entries !== 'undefined') _results.push(result.entries);\n// if (typeof result.assets !== 'undefined') _results.push(result.assets);\n// if (typeof result.content_type !== 'undefined' || typeof result.schema !== 'undefined') _results.push(result.content_type || result.schema);\n// if (typeof result.count !== 'undefined') _results.push(result.count);\n// if (typeof result.entry !== 'undefined') _results = result.entry;\n// if (typeof result.asset !== 'undefined') _results = result.asset;\n// if (typeof result.items !== 'undefined') _results.push(result);\n// }\n// return _results;\n// };\n\n// spread the result object\nfunction spreadResult(result) {\n var _results = [];\n if (result && Object.keys(result).length) {\n if (typeof result.entries !== 'undefined') {\n _results.push(result.entries);\n if (result.content_type) {\n _results['schema'] = result.content_type;\n }\n }\n if (typeof result.assets !== 'undefined') _results.push(result.assets);\n if (typeof result.content_type !== 'undefined' || typeof result.schema !== 'undefined') _results.push(result.content_type || result.schema);\n if (typeof result.count !== 'undefined') _results.push(result.count);\n if (typeof result.entry !== 'undefined') {\n _results = result.entry;\n if (result.schema) {\n _results['schema'] = result.schema;\n }\n if (result.content_type) {\n _results['content_type'] = result.content_type;\n }\n }\n if (typeof result.asset !== 'undefined') _results = result.asset;\n if (typeof result.items !== 'undefined') _results.push(result);\n }\n return _results;\n};\n\nfunction sendRequest(queryObject, options) {\n\n var env_uid = queryObject.environment_uid;\n if (env_uid) {\n queryObject._query.environment_uid = env_uid;\n } else {\n if (queryObject._query) {\n queryObject._query.environment = queryObject.environment;\n } else {\n queryObject['_query'] = {};\n queryObject._query['environment'] = queryObject.environment;\n }\n }\n\n var self = queryObject;\n var continueFlag = false;\n var cachePolicy = typeof self.queryCachePolicy !== 'undefined' ? self.queryCachePolicy : self.cachePolicy;\n var tojson = typeof self.tojson !== 'undefined' ? self.tojson : false;\n var isSingle = self.entry_uid || self.singleEntry || self.asset_uid ? true : false;\n var hashQuery = getHash(parseQueryFromParams(self, isSingle, tojson));\n\n /**\n for new api v3\n */\n if (queryObject && queryObject.requestParams && queryObject.requestParams.body && queryObject.requestParams.body.query) {\n var cloneQueryObj = JSON.parse(JSON.stringify(queryObject.requestParams.body.query));\n if ((typeof cloneQueryObj === 'undefined' ? 'undefined' : _typeof2(cloneQueryObj)) !== 'object') {\n cloneQueryObj = JSON.parse(cloneQueryObj);\n }\n delete queryObject.requestParams.body.query;\n queryObject.requestParams.body = merge(queryObject.requestParams.body, cloneQueryObj);\n }\n\n var getCacheCallback = function getCacheCallback() {\n return function (err, entries) {\n return new Promise(function (resolve, reject) {\n try {\n if (err) throw err;\n if (!tojson) entries = resultWrapper(entries);\n resolve(spreadResult(entries));\n } catch (e) {\n reject(e);\n }\n });\n };\n };\n\n var callback = function callback(continueFlag, resolve, reject) {\n if (continueFlag) {\n (0, _request2.default)(queryObject.requestParams, options).then(function (data) {\n try {\n self.entry_uid = self.asset_uid = self.tojson = self.queryCachePolicy = undefined;\n var entries = {};\n var syncstack = {};\n if (queryObject.singleEntry) {\n queryObject.singleEntry = false;\n if (data.schema) entries.schema = data.schema;\n if (data.content_type) {\n entries.content_type = data.content_type;\n delete entries.schema;\n }\n if (data.entries && data.entries.length) {\n entries.entry = data.entries[0];\n } else if (data.assets && data.assets.length) {\n entries.assets = data.assets[0];\n } else {\n if (cachePolicy === 2 && self.provider !== null) {\n self.provider.get(hashQuery, getCacheCallback());\n } else {\n return reject({ error_code: 141, error_message: 'The requested entry doesn\\'t exist.' });\n }\n return;\n }\n } else if (data.items) {\n syncstack = {\n items: data.items,\n pagination_token: data.pagination_token,\n sync_token: data.sync_token,\n total_count: data.total_count\n };\n } else {\n entries = data;\n }\n\n if (cachePolicy !== -1 && self.provider !== null) {\n self.provider.set(hashQuery, entries, function (err) {\n try {\n if (err) throw err;\n if (!tojson) entries = resultWrapper(entries);\n return resolve(spreadResult(entries));\n } catch (e) {\n return reject(e);\n }\n });\n return resolve(spreadResult(entries));\n }\n\n if (Object.keys(syncstack).length) {\n return resolve(syncstack);\n }\n\n if (!tojson) entries = resultWrapper(entries);\n return resolve(spreadResult(entries));\n } catch (e) {\n return reject({\n message: e.message\n });\n }\n }.bind(self)).catch(function (error) {\n if (cachePolicy === 2 && self.provider !== null) {\n self.provider.get(hashQuery, getCacheCallback());\n } else {\n return reject(error);\n }\n });\n }\n };\n switch (cachePolicy) {\n case 1:\n return new Promise(function (resolve, reject) {\n if (self.provider !== null) {\n self.provider.get(hashQuery, function (err, _data) {\n try {\n if (err || !_data) {\n callback(true, resolve, reject);\n } else {\n if (!tojson) _data = resultWrapper(_data);\n return resolve(spreadResult(_data));\n }\n } catch (e) {\n return reject(e);\n }\n });\n } else {\n callback(true, resolve, reject);\n }\n });\n break;\n case 2:\n case 0:\n case undefined:\n case -1:\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n };\n\n if (cachePolicy === 3) {\n\n var promise = new Promise(function (resolve, reject) {\n if (self.provider !== null) {\n self.provider.get(hashQuery, function (err, _data) {\n try {\n if (err || !_data) {\n reject(err);\n //reject(Error(\"It broke\"));\n } else {\n if (!tojson) _data = resultWrapper(_data);\n resolve(spreadResult(_data));\n }\n } catch (e) {\n reject(e);\n }\n });\n }\n });\n\n return promise.then(function () {\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n }).catch(function (error) {\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n console.error(error);\n });\n }\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../node_modules/process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://Contentstack/./src/core/lib/utils.js?"); +eval("/* WEBPACK VAR INJECTION */(function(process) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof2 = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.transform = transform;\nexports._type = _type;\nexports.mergeDeep = mergeDeep;\nexports.merge = merge;\nexports.isBrowser = isBrowser;\nexports.parseQueryFromParams = parseQueryFromParams;\nexports.getHash = getHash;\nexports.generateHash = generateHash;\nexports.resultWrapper = resultWrapper;\nexports.spreadResult = spreadResult;\nexports.sendRequest = sendRequest;\n\nvar _request = __webpack_require__(/*! ./request */ \"./src/core/lib/request.js\");\n\nvar _request2 = _interopRequireDefault(_request);\n\nvar _result = __webpack_require__(/*! ../modules/result */ \"./src/core/modules/result.js\");\n\nvar _result2 = _interopRequireDefault(_result);\n\nvar _config = __webpack_require__(/*! ../../../config */ \"./config.js\");\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @method addSpread\n * @description method to add the spread.\n */\n(function addSpread() {\n if (Promise.prototype.spread) return;\n Promise.prototype.spread = function (fn, errFunc) {\n errFunc = errFunc || function (err) {};\n return this.then(function (args) {\n return fn.apply(fn, args);\n }).catch(function (err) {\n errFunc(err);\n });\n };\n})();\n\nfunction transform(type) {\n return function () {\n this._query[type] = this._query[type] || {};\n switch (arguments.length) {\n case 1:\n if (Array.isArray(arguments[0]) || typeof arguments[0] === \"string\") {\n var query = this._query[type]['BASE'] || [];\n query = query.concat(arguments[0]);\n this._query[type]['BASE'] = query;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters\");\n }\n break;\n case 2:\n if (typeof arguments[0] === \"string\" && (Array.isArray(arguments[1]) || typeof arguments[1] === \"string\")) {\n var _query2 = this._query[type][arguments[0]] || [];\n _query2 = _query2.concat(arguments[1]);\n this._query[type][arguments[0]] = _query2;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters\");\n }\n break;\n default:\n console.error(\"Kindly provide valid parameters\");\n }\n };\n}\n\nfunction _type(val) {\n var _typeof = void 0,\n __typeof = typeof val === 'undefined' ? 'undefined' : _typeof2(val);\n switch (__typeof) {\n case 'object':\n _typeof = __typeof;\n if (Array.isArray(val)) {\n __typeof = 'array';\n }\n break;\n default:\n _typeof = __typeof;\n }\n return __typeof;\n};\n\n// merge two objects\nfunction mergeDeep(target, source) {\n var self = this;\n var _merge_recursive = function _merge_recursive(target, source) {\n for (var key in source) {\n if (self._type(source[key]) == 'object' && self._type(target[key]) == self._type(source[key])) {\n _merge_recursive(target[key], source[key]);\n } else if (self._type(source[key]) == 'array' && self._type(target[key]) == self._type(source[key])) {\n target[key] = target[key].concat(source[key]);\n } else {\n target[key] = source[key];\n }\n }\n };\n _merge_recursive(target, source);\n return target;\n};\n\n// merge two objects\nfunction merge(target, source) {\n if (target && source) {\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target;\n};\n\n// return true if process is running in browser else false\nfunction isBrowser() {\n return typeof window !== \"undefined\" && (typeof process === 'undefined' ? 'undefined' : _typeof2(process)) === \"object\" && process.title === \"browser\";\n};\n\n// return the query from the params\nfunction parseQueryFromParams(queryObject, single, toJSON) {\n if (queryObject && queryObject.requestParams) {\n var _query = merge({}, queryObject.requestParams.body ? queryObject.requestParams.body.query || {} : {});\n if (_query.environment_uid) {\n delete _query.environment_uid;\n _query.environment = queryObject.environment;\n }\n _query.environment = queryObject.environment;\n return {\n content_type_uid: queryObject.content_type_uid,\n locale: _query.locale || 'en-us',\n query: _query,\n entry_uid: queryObject.entry_uid,\n asset_uid: queryObject.asset_uid,\n single: single || \"false\",\n toJSON: toJSON || \"false\",\n api_key: queryObject.requestParams.headers ? queryObject.requestParams.headers.api_key : \"\"\n };\n }\n};\n\n// returrn the hash value of the query\nfunction getHash(query) {\n try {\n var hashValue = generateHash(JSON.stringify(query)),\n keyArray = [];\n keyArray.push(query.content_type_uid);\n keyArray.push(query.locale);\n if (query.entry_uid) keyArray.push(query.entry_uid);\n if (query.asset_uid) keyArray.push(query.asset_uid);\n keyArray.push(hashValue);\n return keyArray.join('.');\n } catch (e) {}\n};\n\n// return the hash value of the string\nfunction generateHash(str) {\n var hash = 0,\n i = void 0,\n chr = void 0,\n len = void 0;\n if (str.length === 0) return hash;\n for (i = 0, len = str.length; i < len; i++) {\n chr = str.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0; // Convert to 32bit integer\n }\n return hash < -1 ? hash * -1 : hash;\n};\n\n// generate the Result object\nfunction resultWrapper(result) {\n if (result && typeof result.entries !== 'undefined') {\n if (result.entries && result.entries.length) {\n for (var i = 0, _i = result.entries.length; i < _i; i++) {\n result.entries[i] = (0, _result2.default)(result.entries[i]);\n }\n } else {\n result.entries = [];\n }\n } else if (result && result.assets && typeof result.assets !== 'undefined') {\n if (result.assets && result.assets.length) {\n for (var j = 0, _j = result.assets.length; j < _j; j++) {\n result.assets[j] = (0, _result2.default)(result.assets[j]);\n }\n } else {\n result.assets = [];\n }\n } else if (result && typeof result.entry !== 'undefined') {\n result.entry = (0, _result2.default)(result.entry);\n } else if (result && typeof result.asset !== 'undefined') {\n result.asset = (0, _result2.default)(result.asset);\n } else if (result && typeof result.items !== 'undefined') {\n result.items = (0, _result2.default)(result.items).toJSON();\n }\n\n return result;\n};\n\n// // spread the result object\n// export function spreadResult(result) {\n// let _results = [];\n// if (result && Object.keys(result).length) {\n// if (typeof result.entries !== 'undefined') _results.push(result.entries);\n// if (typeof result.assets !== 'undefined') _results.push(result.assets);\n// if (typeof result.content_type !== 'undefined' || typeof result.schema !== 'undefined') _results.push(result.content_type || result.schema);\n// if (typeof result.count !== 'undefined') _results.push(result.count);\n// if (typeof result.entry !== 'undefined') _results = result.entry;\n// if (typeof result.asset !== 'undefined') _results = result.asset;\n// if (typeof result.items !== 'undefined') _results.push(result);\n// }\n// return _results;\n// };\n\n// spread the result object\nfunction spreadResult(result) {\n var _results = [];\n if (result && Object.keys(result).length) {\n if (typeof result.entries !== 'undefined') {\n _results.push(result.entries);\n if (result.content_type) {\n _results['schema'] = result.content_type;\n }\n }\n if (typeof result.assets !== 'undefined') _results.push(result.assets);\n if (typeof result.content_type !== 'undefined' || typeof result.schema !== 'undefined') _results.push(result.content_type || result.schema);\n if (typeof result.count !== 'undefined') _results.push(result.count);\n if (typeof result.entry !== 'undefined') {\n _results = result.entry;\n if (result.schema) {\n _results['schema'] = result.schema;\n }\n if (result.content_type) {\n _results['content_type'] = result.content_type;\n }\n }\n if (typeof result.asset !== 'undefined') _results = result.asset;\n if (typeof result.items !== 'undefined') _results.push(result);\n }\n return _results;\n};\n\nfunction sendRequest(queryObject, options) {\n\n var env_uid = queryObject.environment_uid;\n if (env_uid) {\n queryObject._query.environment_uid = env_uid;\n } else {\n if (queryObject._query) {\n queryObject._query.environment = queryObject.environment;\n } else {\n queryObject['_query'] = {};\n queryObject._query['environment'] = queryObject.environment;\n }\n }\n\n var self = queryObject;\n var continueFlag = false;\n var cachePolicy = typeof self.queryCachePolicy !== 'undefined' ? self.queryCachePolicy : self.cachePolicy;\n var tojson = typeof self.tojson !== 'undefined' ? self.tojson : false;\n var isSingle = self.entry_uid || self.singleEntry || self.asset_uid ? true : false;\n var hashQuery = getHash(parseQueryFromParams(self, isSingle, tojson));\n if (queryObject.requestParams.url.includes(_config2.default.urls.sync)) {\n cachePolicy = -1;\n }\n /**\n for new api v3\n */\n if (queryObject && queryObject.requestParams && queryObject.requestParams.body && queryObject.requestParams.body.query) {\n var cloneQueryObj = JSON.parse(JSON.stringify(queryObject.requestParams.body.query));\n if ((typeof cloneQueryObj === 'undefined' ? 'undefined' : _typeof2(cloneQueryObj)) !== 'object') {\n cloneQueryObj = JSON.parse(cloneQueryObj);\n }\n delete queryObject.requestParams.body.query;\n queryObject.requestParams.body = merge(queryObject.requestParams.body, cloneQueryObj);\n }\n\n var getCacheCallback = function getCacheCallback() {\n return function (err, entries) {\n return new Promise(function (resolve, reject) {\n try {\n if (err) throw err;\n if (!tojson) entries = resultWrapper(entries);\n resolve(spreadResult(entries));\n } catch (e) {\n reject(e);\n }\n });\n };\n };\n\n var callback = function callback(continueFlag, resolve, reject) {\n if (continueFlag) {\n (0, _request2.default)(queryObject.requestParams, options).then(function (data) {\n try {\n self.entry_uid = self.asset_uid = self.tojson = self.queryCachePolicy = undefined;\n var entries = {};\n var syncstack = {};\n if (queryObject.singleEntry) {\n queryObject.singleEntry = false;\n if (data.schema) entries.schema = data.schema;\n if (data.content_type) {\n entries.content_type = data.content_type;\n delete entries.schema;\n }\n if (data.entries && data.entries.length) {\n entries.entry = data.entries[0];\n } else if (data.assets && data.assets.length) {\n entries.assets = data.assets[0];\n } else {\n if (cachePolicy === 2 && self.provider !== null) {\n self.provider.get(hashQuery, getCacheCallback());\n } else {\n return reject({ error_code: 141, error_message: 'The requested entry doesn\\'t exist.' });\n }\n return;\n }\n } else if (data.items) {\n syncstack = {\n items: data.items,\n pagination_token: data.pagination_token,\n sync_token: data.sync_token,\n total_count: data.total_count\n };\n } else {\n entries = data;\n }\n\n if (cachePolicy !== -1 && self.provider !== null) {\n self.provider.set(hashQuery, entries, function (err) {\n try {\n if (err) throw err;\n if (!tojson) entries = resultWrapper(entries);\n return resolve(spreadResult(entries));\n } catch (e) {\n return reject(e);\n }\n });\n return resolve(spreadResult(entries));\n }\n\n if (Object.keys(syncstack).length) {\n return resolve(syncstack);\n }\n\n if (!tojson) entries = resultWrapper(entries);\n return resolve(spreadResult(entries));\n } catch (e) {\n return reject({\n message: e.message\n });\n }\n }.bind(self)).catch(function (error) {\n if (cachePolicy === 2 && self.provider !== null) {\n self.provider.get(hashQuery, getCacheCallback());\n } else {\n return reject(error);\n }\n });\n }\n };\n switch (cachePolicy) {\n case 1:\n return new Promise(function (resolve, reject) {\n if (self.provider !== null) {\n self.provider.get(hashQuery, function (err, _data) {\n try {\n if (err || !_data) {\n callback(true, resolve, reject);\n } else {\n if (!tojson) _data = resultWrapper(_data);\n return resolve(spreadResult(_data));\n }\n } catch (e) {\n return reject(e);\n }\n });\n } else {\n callback(true, resolve, reject);\n }\n });\n break;\n case 2:\n case 0:\n case undefined:\n case -1:\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n };\n\n if (cachePolicy === 3) {\n\n var promise = new Promise(function (resolve, reject) {\n if (self.provider !== null) {\n self.provider.get(hashQuery, function (err, _data) {\n try {\n if (err || !_data) {\n reject(err);\n //reject(Error(\"It broke\"));\n } else {\n if (!tojson) _data = resultWrapper(_data);\n resolve(spreadResult(_data));\n }\n } catch (e) {\n reject(e);\n }\n });\n }\n });\n\n return promise.then(function () {\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n }).catch(function (error) {\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n console.error(error);\n });\n }\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../node_modules/process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://Contentstack/./src/core/lib/utils.js?"); /***/ }), @@ -239,7 +382,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _utils = __webpack_require__(/*! ../lib/utils */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _stack = __webpack_require__(/*! ../stack */ \"./src/core/stack.js\");\n\nvar _stack2 = _interopRequireDefault(_stack);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * @class \n Entry \n* @summary Creates an instance of `Entry`. \n* @description An initializer is responsible for creating Entry object.\n* @param {String} uid - uid of the entry\n* @example\n* let Entry = Stack.ContentType('example').Entry('entry_uid');\n* @returns {Entry}\n* @instance\n*/\n\nvar Entry = function () {\n function Entry() {\n _classCallCheck(this, Entry);\n\n this._query = {};\n /**\n * @method only\n * @memberOf Entry\n * @description Displays values of only the specified fields of entries or assets in the response\n * @param {String} [key=BASE] - Assets:
\n *

Retrieves specified field of asset

\n * @param {String} - Entries:
\n *

- retrieves default fields of the schema.

\n *

- referenced_content-type-uid : retrieves fields of the referred content type.

\n * @param {Array} values - array of fields that you want to display in the response\n * @example\n * The only function with field_uid will include the data of only the specified fields for each entry and exclude the data of all other fields. \n * Stack.ContentType('contentTypeUid').Query().only('title').toJSON().find()\n * @example\n * The only function with an array of field_uids will include multiple fields for each entry and exclude the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().only(['title','description']).toJSON().find()\n * @example\n * In only, we have the only with a reference parameter, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter to include the data of only the specified field_uid for each entry and exclude the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').only('reference_field_uid','title').toJSON().find()\n * @example\n * In only, we have the only with a reference parameter with an array, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter with an array of fields to include the data of only the specified array of field_uids for each entry and exclude the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').only('reference_field_uid', ['title', 'description']).toJSON().find()\n * \n * @returns {Entry}\n * @instance\n */\n this.only = Utils.transform('only');\n /**\n * @method except\n * @memberOf Entry\n * @description Displays all data of an entries or assets excluding the data of the specified fields.\n * @param {String} [key=BASE] - BASE (default value) - retrieves default fields of the schema.\n - referenced_content-type-uid - retrieves fields of the referred content type.\n * @param {Array} values - array of fields that you want to skip in the response\n * @example\n * The except function with field_uid will exclude the data of only the specified fields for each entry and includes the data of all other fields. \n * Stack.ContentType('contentTypeUid').Query().except('title').toJSON().find()\n * @example\n * The except function with an array of field_uids will except multiple fields for each entry and include the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().except(['title','description']).toJSON().find()\n * @example\n * In except, we have the only with a reference parameter, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter to except the data of only the specified field_uid for each entry and include the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').except('reference_field_uid','title').toJSON().find()\n * @example\n * In except, we have the only with a reference parameter with an array, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter with an array of fields to except the data of only the specified array of field_uids for each entry and include the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').except('reference_field_uid', ['title', 'description']).toJSON().find()\n * @returns {Entry}\n * @instance \n */\n this.except = Utils.transform('except');\n return this;\n }\n\n _createClass(Entry, [{\n key: \"setCacheProvider\",\n value: function setCacheProvider(provider) {\n if (provider && (typeof provider === \"undefined\" ? \"undefined\" : _typeof(provider)) === 'object') {\n this.provider = provider;\n }\n return this;\n }\n }, {\n key: \"setCachePolicy\",\n value: function setCachePolicy(policy) {\n if (typeof policy === 'number' && policy >= -1 && policy < 4) {\n if (!this._query) {\n this.cachePolicy = policy;\n } else {\n this.queryCachePolicy = policy;\n }\n } else {\n console.error(\"Kindly provide the valid policy\");\n }\n return this;\n }\n\n /**\n * @method includeReference\n * @memberOf Entry\n * @description Fetches the entire content of referenced entry(ies). Read More\n * @example\n * .includeReference with reference_field_uids as array \n * var Query = Stack.ContentType(contentTypes.source).Query();\n Query\n .includeReference(['reference_field_uid', 'other_reference_field_uid'])\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including reference entries.\n })\n * @example\n * .includeReference with reference_field_uids and its children reference \n * var Query = Stack.ContentType(contentTypes.source).Query();\n Query\n .includeReference(['reference_field_uid', 'reference_field_uid.child_reference_field_uid'])\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including reference entries.\n })\n * @example\n * .includeReference with reference_field_uids \n * var Query = Stack.ContentType(contentTypes.source).Query(); \n Query\n .includeReference('reference_field_uid')\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including particular reference using reference_uid.\n })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeReference\",\n value: function includeReference() {\n for (var _len = arguments.length, val = Array(_len), _key = 0; _key < _len; _key++) {\n val[_key] = arguments[_key];\n }\n\n if (Array.isArray(val) || typeof val === \"string\") {\n if (arguments.length) {\n for (var i = 0; i < arguments.length; i++) {\n this._query['include'] = this._query['include'] || [];\n this._query['include'] = this._query['include'].concat(arguments[i]);\n }\n }\n return this;\n } else {\n console.error(\"Argument should be a String or an Array.\");\n }\n }\n\n /**\n * Sets the language code of which you want to retrieve data.\n * @param {String} language_code - language code. e.g. 'en-us', 'ja-jp', etc.\n * @memberOf Entry\n * @example \n * let data = Stack.ContentType(contentTypeUid).Entry(entryUid).language('ja-jp').fetch()\n * data\n * .then(function(result) {\n * // 'result' is an object used to retrieve data of ja-jp language.\n * }, function(error) {\n * // error function\n * })\n * \n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"language\",\n value: function language(language_code) {\n if (language_code && typeof language_code === 'string') {\n this._query['locale'] = language_code;\n return this;\n } else {\n console.error(\"Argument should be a String.\");\n }\n }\n\n /**\n * @method addQuery\n * @memberOf Entry\n * @description Adds query to Entry object\n * @param {String} key - key of the query\n * @param {String} value - value of the query\n * @example Stack.ContentType(contentTypeUid).Entry(entry_uid).addQuery('include_schema',true)\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"addQuery\",\n value: function addQuery(key, value) {\n if (key && value && typeof key === 'string') {\n this._query[key] = value;\n return this;\n } else {\n console.error(\"First argument should be a String.\");\n }\n }\n\n /**\n * @method includeSchema\n * @memberOf Entry\n * @deprecated since verion 3.3.0\n * @description Include schema of the current content type along with entry/entries details.\n * @example Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeSchema().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeSchema\",\n value: function includeSchema() {\n this._query['include_schema'] = true;\n return this;\n }\n\n /**\n * @method includeReferenceContentTypeUid\n * @memberOf Entry\n * @description This method also includes the content type UIDs of the referenced entries returned in the response.\n * @example Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeReferenceContentTypeUID().fetch()\n * @example \n * Query = Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeReferenceContentTypeUID().fetch()\n * Query\n * .toJSON()\n * .then(function (result) {\n * let value = result.get(field_uid)\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeReferenceContentTypeUID\",\n value: function includeReferenceContentTypeUID() {\n this._query['include_reference_content_type_uid'] = true;\n return this;\n }\n\n /**\n * @method includeFallback\n * @memberOf Entry\n * @description Include the fallback locale publish content, if specified locale content is not publish.\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeFallback().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeFallback\",\n value: function includeFallback() {\n this._query['include_fallback'] = true;\n return this;\n }\n\n /**\n * @method includeContentType\n * @memberOf Entry\n * @description Include the details of the content type along with the entry/entries details.\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeContentType().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeContentType\",\n value: function includeContentType() {\n this._query['include_content_type'] = true;\n return this;\n }\n\n /**\n * @method includeOwner\n * @memberOf Entry \n * @description Includes the owner details of the entry/entries\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeOwner().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeOwner\",\n value: function includeOwner() {\n this._query['include_owner'] = true;\n return this;\n }\n\n /**\n * @method toJSON\n * @memberOf Entry \n * @description Converts your response into plain JavasScript object.Supports both entry and asset queries.\n * @example\n * Query = Stack.ContentType(contentTypeUid).Entry(entryUid).fetch()\n * Query\n * .toJSON()\n * .then(function (result) {\n * let value = result.get(field_uid)\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n this.tojson = true;\n return this;\n }\n\n /**\n * @method addParam\n * @memberOf Entry \n * @description Includes query parameters in your queries.\n * @example var data = Stack.ContentType(contentTypeUid).Entry(entryUid).addParam('include_count', 'true').fetch()\n * data.then(function (result) {\n * // 'result' is an object which content the data including count in json object form\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"addParam\",\n value: function addParam(key, value) {\n if (key && value && typeof key === 'string' && typeof value === 'string') {\n this._query[key] = value;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters.\");\n }\n }\n\n /**\n * @method fetch\n * @memberOf Entry \n * @description Fetches a particular entry based on the provided entry UID.\n * @example\n * Stack.ContentType(contentTypeUid).Entry(entryUid).toJSON().fetch()\n * \n * @example\n * Stack.ContentType(contentTypeUid).Entry(entryUid).toJSON().fetch({\n * \n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: \"fetch\",\n value: function fetch(fetchOptions) {\n if (this.entry_uid) {\n this.requestParams = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types + this.content_type_uid + this.config.urls.entries + this.entry_uid,\n body: {\n _method: 'GET',\n query: this._query\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return Utils.sendRequest(this, options);\n } else {\n console.error(\"Kindly provide an entry uid. e.g. .Entry('bltsomething123')\");\n }\n }\n }]);\n\n return Entry;\n}();\n\nexports.default = Entry;\n\n//# sourceURL=webpack://Contentstack/./src/core/modules/entry.js?"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _utils = __webpack_require__(/*! ../lib/utils */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _stack = __webpack_require__(/*! ../stack */ \"./src/core/stack.js\");\n\nvar _stack2 = _interopRequireDefault(_stack);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * @class \n Entry \n* @summary Creates an instance of `Entry`. \n* @description An initializer is responsible for creating Entry object.\n* @param {String} uid - uid of the entry\n* @example\n* let Entry = Stack.ContentType('example').Entry('entry_uid');\n* @returns {Entry}\n* @instance\n*/\n\nvar Entry = function () {\n function Entry() {\n _classCallCheck(this, Entry);\n\n this._query = {};\n /**\n * @method only\n * @memberOf Entry\n * @description Displays values of only the specified fields of entries or assets in the response\n * @param {String} [key=BASE] - Assets:
\n *

Retrieves specified field of asset

\n * @param {String} - Entries:
\n *

- retrieves default fields of the schema.

\n *

- referenced_content-type-uid : retrieves fields of the referred content type.

\n * @param {Array} values - array of fields that you want to display in the response\n * @example\n * The only function with field_uid will include the data of only the specified fields for each entry and exclude the data of all other fields. \n * Stack.ContentType('contentTypeUid').Query().only('title').toJSON().find()\n * @example\n * The only function with an array of field_uids will include multiple fields for each entry and exclude the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().only(['title','description']).toJSON().find()\n * @example\n * In only, we have the only with a reference parameter, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter to include the data of only the specified field_uid for each entry and exclude the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').only('reference_field_uid','title').toJSON().find()\n * @example\n * In only, we have the only with a reference parameter with an array, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter with an array of fields to include the data of only the specified array of field_uids for each entry and exclude the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').only('reference_field_uid', ['title', 'description']).toJSON().find()\n * \n * @returns {Entry}\n * @instance\n */\n this.only = Utils.transform('only');\n /**\n * @method except\n * @memberOf Entry\n * @description Displays all data of an entries or assets excluding the data of the specified fields.\n * @param {String} [key=BASE] - BASE (default value) - retrieves default fields of the schema.\n - referenced_content-type-uid - retrieves fields of the referred content type.\n * @param {Array} values - array of fields that you want to skip in the response\n * @example\n * The except function with field_uid will exclude the data of only the specified fields for each entry and includes the data of all other fields. \n * Stack.ContentType('contentTypeUid').Query().except('title').toJSON().find()\n * @example\n * The except function with an array of field_uids will except multiple fields for each entry and include the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().except(['title','description']).toJSON().find()\n * @example\n * In except, we have the only with a reference parameter, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter to except the data of only the specified field_uid for each entry and include the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').except('reference_field_uid','title').toJSON().find()\n * @example\n * In except, we have the only with a reference parameter with an array, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter with an array of fields to except the data of only the specified array of field_uids for each entry and include the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').except('reference_field_uid', ['title', 'description']).toJSON().find()\n * @returns {Entry}\n * @instance \n */\n this.except = Utils.transform('except');\n return this;\n }\n\n _createClass(Entry, [{\n key: \"setCacheProvider\",\n value: function setCacheProvider(provider) {\n if (provider && (typeof provider === \"undefined\" ? \"undefined\" : _typeof(provider)) === 'object') {\n this.provider = provider;\n }\n return this;\n }\n }, {\n key: \"setCachePolicy\",\n value: function setCachePolicy(policy) {\n if (typeof policy === 'number' && policy >= -1 && policy < 4) {\n if (!this._query) {\n this.cachePolicy = policy;\n } else {\n this.queryCachePolicy = policy;\n }\n } else {\n console.error(\"Kindly provide the valid policy\");\n }\n return this;\n }\n\n /**\n * @method includeReference\n * @memberOf Entry\n * @description Fetches the entire content of referenced entry(ies). Read More\n * @example\n * .includeReference with reference_field_uids as array \n * var Query = Stack.ContentType(contentTypes.source).Query();\n Query\n .includeReference(['reference_field_uid', 'other_reference_field_uid'])\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including reference entries.\n })\n * @example\n * .includeReference with reference_field_uids and its children reference \n * var Query = Stack.ContentType(contentTypes.source).Query();\n Query\n .includeReference(['reference_field_uid', 'reference_field_uid.child_reference_field_uid'])\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including reference entries.\n })\n * @example\n * .includeReference with reference_field_uids \n * var Query = Stack.ContentType(contentTypes.source).Query(); \n Query\n .includeReference('reference_field_uid')\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including particular reference using reference_uid.\n })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeReference\",\n value: function includeReference() {\n for (var _len = arguments.length, val = Array(_len), _key = 0; _key < _len; _key++) {\n val[_key] = arguments[_key];\n }\n\n if (Array.isArray(val) || typeof val === \"string\") {\n if (arguments.length) {\n for (var i = 0; i < arguments.length; i++) {\n this._query['include'] = this._query['include'] || [];\n this._query['include'] = this._query['include'].concat(arguments[i]);\n }\n }\n return this;\n } else {\n console.error(\"Argument should be a String or an Array.\");\n }\n }\n\n /**\n * Sets the language code of which you want to retrieve data.\n * @param {String} language_code - language code. e.g. 'en-us', 'ja-jp', etc.\n * @memberOf Entry\n * @example \n * let data = Stack.ContentType(contentTypeUid).Entry(entryUid).language('ja-jp').fetch()\n * data\n * .then(function(result) {\n * // 'result' is an object used to retrieve data of ja-jp language.\n * }, function(error) {\n * // error function\n * })\n * \n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"language\",\n value: function language(language_code) {\n if (language_code && typeof language_code === 'string') {\n this._query['locale'] = language_code;\n return this;\n } else {\n console.error(\"Argument should be a String.\");\n }\n }\n\n /**\n * @method addQuery\n * @memberOf Entry\n * @description Adds query to Entry object\n * @param {String} key - key of the query\n * @param {String} value - value of the query\n * @example Stack.ContentType(contentTypeUid).Entry(entry_uid).addQuery('include_schema',true)\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"addQuery\",\n value: function addQuery(key, value) {\n if (key && value && typeof key === 'string') {\n this._query[key] = value;\n return this;\n } else {\n console.error(\"First argument should be a String.\");\n }\n }\n\n /**\n * @method includeEmbeddedObjects\n * @memberOf Entry\n * @description Include Embedded Objects (Entries and Assets) along with entry/entries details.\n * @example Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeEmbeddedObjects().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeEmbeddedItems\",\n value: function includeEmbeddedItems() {\n this._query['include_embedded_items'] = [\"BASE\"];\n return this;\n }\n\n /**\n * @method includeSchema\n * @memberOf Entry\n * @deprecated since verion 3.3.0\n * @description Include schema of the current content type along with entry/entries details.\n * @example Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeSchema().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeSchema\",\n value: function includeSchema() {\n this._query['include_schema'] = true;\n return this;\n }\n\n /**\n * @method includeReferenceContentTypeUid\n * @memberOf Entry\n * @description This method also includes the content type UIDs of the referenced entries returned in the response.\n * @example Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeReferenceContentTypeUID().fetch()\n * @example \n * Query = Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeReferenceContentTypeUID().fetch()\n * Query\n * .toJSON()\n * .then(function (result) {\n * let value = result.get(field_uid)\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeReferenceContentTypeUID\",\n value: function includeReferenceContentTypeUID() {\n this._query['include_reference_content_type_uid'] = true;\n return this;\n }\n\n /**\n * @method includeFallback\n * @memberOf Entry\n * @description Include the fallback locale publish content, if specified locale content is not publish.\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeFallback().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeFallback\",\n value: function includeFallback() {\n this._query['include_fallback'] = true;\n return this;\n }\n\n /**\n * @method includeContentType\n * @memberOf Entry\n * @description Include the details of the content type along with the entry/entries details.\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeContentType().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeContentType\",\n value: function includeContentType() {\n this._query['include_content_type'] = true;\n return this;\n }\n\n /**\n * @method includeOwner\n * @memberOf Entry \n * @description Includes the owner details of the entry/entries\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeOwner().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeOwner\",\n value: function includeOwner() {\n this._query['include_owner'] = true;\n return this;\n }\n\n /**\n * @method toJSON\n * @memberOf Entry \n * @description Converts your response into plain JavasScript object.Supports both entry and asset queries.\n * @example\n * Query = Stack.ContentType(contentTypeUid).Entry(entryUid).fetch()\n * Query\n * .toJSON()\n * .then(function (result) {\n * let value = result.get(field_uid)\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n this.tojson = true;\n return this;\n }\n\n /**\n * @method addParam\n * @memberOf Entry \n * @description Includes query parameters in your queries.\n * @example var data = Stack.ContentType(contentTypeUid).Entry(entryUid).addParam('include_count', 'true').fetch()\n * data.then(function (result) {\n * // 'result' is an object which content the data including count in json object form\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"addParam\",\n value: function addParam(key, value) {\n if (key && value && typeof key === 'string' && typeof value === 'string') {\n this._query[key] = value;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters.\");\n }\n }\n\n /**\n * @method fetch\n * @memberOf Entry \n * @description Fetches a particular entry based on the provided entry UID.\n * @example\n * Stack.ContentType(contentTypeUid).Entry(entryUid).toJSON().fetch()\n * \n * @example\n * Stack.ContentType(contentTypeUid).Entry(entryUid).toJSON().fetch({\n * \n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: \"fetch\",\n value: function fetch(fetchOptions) {\n if (this.entry_uid) {\n this.requestParams = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types + this.content_type_uid + this.config.urls.entries + this.entry_uid,\n body: {\n _method: 'GET',\n query: this._query\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return Utils.sendRequest(this, options);\n } else {\n console.error(\"Kindly provide an entry uid. e.g. .Entry('bltsomething123')\");\n }\n }\n }]);\n\n return Entry;\n}();\n\nexports.default = Entry;\n\n//# sourceURL=webpack://Contentstack/./src/core/modules/entry.js?"); /***/ }), @@ -275,7 +418,7 @@ eval("\n\nvar _createClass = function () { function defineProperties(target, pro /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _config = __webpack_require__(/*! ../../config */ \"./config.js\");\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _utils = __webpack_require__(/*! ./lib/utils */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _entry = __webpack_require__(/*! ./modules/entry */ \"./src/core/modules/entry.js\");\n\nvar _entry2 = _interopRequireDefault(_entry);\n\nvar _assets = __webpack_require__(/*! ./modules/assets */ \"./src/core/modules/assets.js\");\n\nvar _assets2 = _interopRequireDefault(_assets);\n\nvar _query = __webpack_require__(/*! ./modules/query */ \"./src/core/modules/query.js\");\n\nvar _query2 = _interopRequireDefault(_query);\n\nvar _request = __webpack_require__(/*! ./lib/request */ \"./src/core/lib/request.js\");\n\nvar _request2 = _interopRequireDefault(_request);\n\nvar _cache = __webpack_require__(/*! ./cache */ \"./src/core/cache.js\");\n\nvar cache = _interopRequireWildcard(_cache);\n\nvar _index = __webpack_require__(/*! ./cache-provider/index */ \"./src/core/cache-provider/index.js\");\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar errorRetry = [408, 429];\n\n/**\n * @class \n Stack \n * @description Initialize an instance of ‘Stack’\n * @param api_key - Stack API Key.\n * @param delivery_token - Stack Delivery token.\n * @param environment - Stack Environment name.\n * @param region - DB region for Stack.\n * @param fetchOptions - Custom setting for the request.\n * @param fetchOptions.timeout - Set timeout for the request.\n * @param fetchOptions.retryLimit - The number of retries before failure. Default is 5\n * @param fetchOptions.retryDelay - The number of ms to use for operation retries. Default is 300ms\n * @param fetchOptions.retryCondition - A function to determine if the error can be retried. Default retry is on status codes 408, 429, and greter than equal to 500.\n * @param fetchOptions.retryDelayOptions.base - The base number of milliseconds to use in the exponential backoff for operation retries.\n * @param fetchOptions.retryDelayOptions.customBackoff - A custom function that accepts a retry count and error and returns the amount of time to delay in milliseconds.\n * @example\n * var Stack = Contentstack.Stack({\n * 'api_key':'api_key',\n * 'delivery_token':'delivery_token',\n * 'environment':'environment_name',\n * 'region': 'us',\n * 'fetchOptions': {\n * \n * }\n * });\n * \n * @example\n * var Stack = Contentstack.Stack('api_key', 'access_token', 'environment', {\n * \n * });\n * \n * @example\n * // For Setting the European Region:\n * // If you want to set and use European region, refer to the code below:\n * const Stack = Contentstack.Stack(\"api_key\", \"delivery_token\", \"environment_name\", Contentstack.Region.EU);\n * \n * @returns {Stack}\n * @instance\n */\n\nvar Stack = function () {\n function Stack() {\n _classCallCheck(this, Stack);\n\n this.fetchOptions = {\n retryLimit: 5,\n retryCondition: function retryCondition(error) {\n if (errorRetry.includes(error.status)) {\n return true;\n }\n return false;\n }\n };\n this.config = Object.assign({}, _config2.default);\n\n for (var _len = arguments.length, stack_arguments = Array(_len), _key = 0; _key < _len; _key++) {\n stack_arguments[_key] = arguments[_key];\n }\n\n if (stack_arguments[0].region && stack_arguments[0].region !== undefined && stack_arguments[0].region !== \"us\") {\n this.config['host'] = stack_arguments[0].region + \"-\" + \"cdn.contentstack.com\";\n }\n\n if (stack_arguments[0].fetchOptions && stack_arguments[0].fetchOptions !== undefined) {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[0].fetchOptions);\n }\n\n this.cachePolicy = _index2.default.policies.IGNORE_CACHE;\n this.provider = _index2.default.providers('localstorage');\n\n switch (stack_arguments.length) {\n case 1:\n if (_typeof(stack_arguments[0]) === \"object\" && typeof stack_arguments[0].api_key === \"string\" && typeof stack_arguments[0].delivery_token === \"string\" && typeof stack_arguments[0].environment === \"string\") {\n this.headers = {\n api_key: stack_arguments[0].api_key,\n access_token: stack_arguments[0].delivery_token\n };\n this.environment = stack_arguments[0].environment;\n return this;\n } else {\n console.error(\"Kindly provide valid object parameters. The specified API Key, Delivery Token, or Environment Name is invalid.\");\n }\n case 3:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n return this;\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n case 4:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n if (stack_arguments[3]) {\n if (typeof stack_arguments[3] === \"string\" && stack_arguments[3] !== undefined && stack_arguments[3] !== \"us\") {\n this.config['host'] = stack_arguments[3] + \"-\" + \"cdn.contentstack.com\";\n } else if (_typeof(stack_arguments[3]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[3]);\n }\n }\n return this;\n case 5:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n\n if (stack_arguments[3]) {\n if (typeof stack_arguments[3] === \"string\" && stack_arguments[3] !== undefined && stack_arguments[3] !== \"us\") {\n this.config['host'] = stack_arguments[3] + \"-\" + \"cdn.contentstack.com\";\n } else if (_typeof(stack_arguments[3]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[3]);\n }\n }\n if (stack_arguments[4] && _typeof(stack_arguments[4]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[4]);\n }\n return this;\n default:\n console.error(\"Kindly provide valid parameters to initialize the Contentstack javascript-SDK Stack.\");\n }\n }\n\n /**\n * @method setPort\n * @memberOf Stack\n * @description Sets the port of the host\n * @param {Number} port - Port Number\n * @return {Stack}\n * @instance\n * */\n\n\n _createClass(Stack, [{\n key: 'setPort',\n value: function setPort(port) {\n if (typeof port === \"number\") this.config.port = port;\n return this;\n }\n\n /**\n * @method setProtocol\n * @memberOf Stack\n * @description Sets the protocol for the host\n * @param {String} protocol - http/https protocol\n * @return {Stack}\n * @instance\n * */\n\n }, {\n key: 'setProtocol',\n value: function setProtocol(protocol) {\n if (typeof protocol === \"string\" && ~[\"https\", \"http\"].indexOf(protocol)) this.config.protocol = protocol;\n return this;\n }\n\n /**\n * @method setHost\n * @memberOf Stack\n * @description Sets the host of the API server\n * @param {String} host - valid ip or host\n * @return {Stack}\n * @instance\n * */\n\n }, {\n key: 'setHost',\n value: function setHost(host) {\n if (typeof host === \"string\" && host) this.config.host = host;\n return this;\n }\n\n /**\n * @method setCachePolicy\n * @memberOf Stack\n * @description Allows you to set cache policies\n * @param {Constant} [key=ONLY_NETWORK] - Cache policy to be applied on Stack or Query.\n * @example\n * Stack.setCachePolicy(Contentstack.CachePolicy.IGNORE_CACHE)\n * Stack.setCachePolicy(Contentstack.CachePolicy.ONLY_NETWORK)\n * Stack.setCachePolicy(Contentstack.CachePolicy.CACHE_ELSE_NETWORK)\n * Stack.setCachePolicy(Contentstack.CachePolicy.NETWORK_ELSE_CACHE)\n * Stack.setCachePolicy(Contentstack.CachePolicy.CACHE_THEN_NETWORK)\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'setCachePolicy',\n value: function setCachePolicy(policy) {\n if (typeof policy === 'number' && policy >= -1 && policy < 4) {\n if (!this._query) {\n this.cachePolicy = policy;\n } else {\n this.queryCachePolicy = policy;\n }\n } else {\n console.error(\"Kindly provide the valid policy\");\n }\n return this;\n }\n\n /**\n * @method setCacheProvider\n * @memberOf Stack\n * @description Allows you to set an object of the cache provider\n * @example\n * Stack\n * .setCacheProvider({\n * get: function (key, callback) {\n * // custom logic\n * },\n * set: function (key, value, callback) {\n * // custom logic\n * }\n * });\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'setCacheProvider',\n value: function setCacheProvider(provider) {\n if (provider && (typeof provider === 'undefined' ? 'undefined' : _typeof(provider)) === 'object') {\n this.provider = provider;\n }\n return this;\n }\n\n /**\n * @method clearByQuery\n * @memberOf Stack\n * @description 'clearByQuery' function to clear the query from the cache.\n * @example\n * Stack.clearQuery(query, callback);\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'clearByQuery',\n value: function clearByQuery() {\n if (this.provider && typeof this.provider.clearByQuery === 'function') {\n return this.provider.clearByQuery.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method clearByContentType\n * @memberOf Stack\n * @description 'clearByContentType' function to clear the query from the cache by specified content type.\n * @example\n * Stack.clearByContentType(content_type_uid, callback);\n * Stack.clearByContentType(content_type_uid, language_uid, callback);\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'clearByContentType',\n value: function clearByContentType() {\n if (this.provider && typeof this.provider.clearByContentType === 'function') {\n return this.provider.clearByContentType.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method clearAll\n * @memberOf Stack\n * @description 'clearAll' function to clear all the queries from cache.\n * @example\n * Stack.clearAll(callback);\n * @returns {Stack}\n * @instance \n */\n\n }, {\n key: 'clearAll',\n value: function clearAll() {\n if (this.provider && typeof this.provider.clearAll === 'function') {\n return this.provider.clearAll.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method getCacheProvider\n * @memberOf Stack\n * @description Returns the currently set object of 'CacheProvider'\n * @example Stack.getCacheProvider();\n * @returns {object}\n * @instance\n */\n\n }, {\n key: 'getCacheProvider',\n value: function getCacheProvider() {\n return this.provider;\n }\n\n /**\n * @method ContentType\n * @memberOf Stack\n * @description Set the content type of which you want to retrieve the entries\n * @param {String} [content_type_uid] - uid of the existing content type\n * @example \n * let data = Stack.ContentType('blog').Query().toJSON().find()\n * data\n * .then(function(result) {\n * // 'result' content the list of entries of particular content type blog. \n * }, function(error) {\n * // error function\n * })\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'ContentType',\n value: function ContentType(uid) {\n if (uid && typeof uid === 'string') {\n this.content_type_uid = uid;\n this.type = \"contentType\";\n }\n return this;\n }\n\n /**\n * @method Entry\n * @memberOf ContentType\n * @param {String} uid - uid of the entry \n * @description An initializer is responsible for creating Entry object\n * @returns {Entry}\n * @instance \n */\n\n }, {\n key: 'Entry',\n value: function Entry(uid) {\n var entry = new _entry2.default();\n if (uid && typeof uid === \"string\") {\n entry.entry_uid = uid;\n }\n return Utils.merge(entry, this);\n }\n\n /**\n * @method fetch\n * @memberOf ContentType\n * @description This method returns the complete information of a specific content type.\n * @example\n * let single_contenttype = Stack.ContentType(content_type_uid).fetch()\n * single_contenttype\n * .then(function(result) {\n * // 'result' is a single contentType information. \n * }).catch((error) => {\n * console.log(error)\n * });\n * @returns {promise}\n * @instance \n */\n\n }, {\n key: 'fetch',\n value: function fetch(fetchOptions) {\n var result = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types + this.content_type_uid,\n body: {\n _method: 'GET',\n environment: this.environment\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return (0, _request2.default)(result, options);\n }\n\n /**\n * @method Assets\n * @memberOf Stack\n * @param {String} uid - uid of the asset \n * @description Retrieves all assets of a stack by default. To retrieve a single asset, specify its UID.\n * @example \n * // Retrieves all assets\n * let data = Stack.Assets().Query().toJSON().find()\n * data\n * .then(function(result) {\n * // All the asset with limit of 100\n * // Use skip and limit functions to paginate\n * // ‘result’ will display all assets present in stack \n * }, function(error) {\n * // error function\n * })\n * \n * @example \n * let data = Stack.Assets('bltsomething123').toJSON().fetch()\n * data\n * .then(function(result) {\n * // ‘result’ is a single asset object of specified uid \n * }, function(error) {\n * // error function\n * })\n * \n * @returns {Assets}\n * @instance \n */\n\n }, {\n key: 'Assets',\n value: function Assets(uid) {\n this.type = 'asset';\n if (uid && typeof uid === \"string\") {\n var asset = new _assets2.default();\n asset.asset_uid = uid;\n return Utils.merge(asset, this);\n }\n return this;\n }\n\n /**\n * @method Query\n * @memberOf Stack\n * @description An initializer is responsible for creating Query object.Provides support for all search queries\n * @returns {Query}\n * @instance \n */\n\n }, {\n key: 'Query',\n value: function Query() {\n var query = new _query2.default();\n return Utils.merge(query, this);\n }\n\n /**\n * @method getLastActivites\n * @memberOf Stack\n * @description getLastActivites get all the ContentTypes whose last activity updated.\n * @example Stack.getLastActivites()\n * @example \n * let data = Stack.getLastActivites().toJSON().fetch()\n * data\n * .then(function(result) {\n * // 'result' is list of contentTypes whose last activity updated. \n * }, function(error) {\n * // error function\n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'getLastActivities',\n value: function getLastActivities() {\n var query = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types,\n body: {\n _method: 'GET',\n only_last_activity: true,\n environment: this.environment\n }\n };\n return (0, _request2.default)(query, this.fetchOptions);\n }\n\n /**\n * @method getContentTypes\n * @memberOf Stack\n * @param {String} param - Query on contentTypes\n * @description This method returns comprehensive information of all the content types of a particular stack in your account.\n * @example \n * let data = Stack.getContentTypes({\"include_global_field_schema\": true})\n * data\n * .then(function(result) {\n * // 'result' is list of contentTypes. \n * }, function(error) {\n * // error function\n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'getContentTypes',\n value: function getContentTypes() {\n var param = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var query = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types,\n body: {\n _method: 'GET',\n environment: this.environment\n }\n };\n if (param && param !== undefined) {\n for (var key in param) {\n query.body[key] = param[key];\n }\n }\n return (0, _request2.default)(query, this.fetchOptions);\n }\n\n /**\n * @method sync\n * @memberOf Stack\n * @description Syncs your Contentstack data with your app and ensures that the data is always up-to-date by providing delta updates\n * @param {object} params - params is an object that supports ‘locale’, ‘start_date’, ‘content_type_uid’, and ‘type’ queries.\n * @example \n * Stack.sync({'init': true}) // For initializing sync\n * @example \n * Stack.sync({'init': true, 'locale': 'en-us'}) //For initializing sync with entries of a specific locale\n * @example \n * Stack.sync({'init': true, 'start_date': '2018-10-22'}) //For initializing sync with entries published after a specific date\n * @example \n * Stack.sync({'init': true, 'content_type_uid': 'session'}) //For initializing sync with entries of a specific content type\n * @example \n * Stack.sync({'init': true, 'type': 'entry_published'}) //Use the type parameter to get a specific type of content.Supports 'asset_published', 'entry_published', 'asset_unpublished', 'entry_unpublished', 'asset_deleted', 'entry_deleted', 'content_type_deleted'.\n * @example \n * Stack.sync({'pagination_token': ''}) // For fetching the next batch of entries using pagination token\n * @example \n * Stack.sync({'sync_token': ''}) // For performing subsequent sync after initial sync\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'sync',\n value: function sync(params, fetchOptions) {\n this._query = {};\n this._query = Object.assign(this._query, params);\n this.requestParams = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.sync,\n body: {\n _method: 'GET',\n query: this._query\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return Utils.sendRequest(this, options);\n }\n\n /**\n * @method imageTransform\n * @memberOf Stack\n * @description Performs transformations on images of mentioned url based on transformation parameters \n * @param {String} url - Image url on which transformations need to be applied.\n * @param {String} params - Object with transformation parameters\n * @example\n * Stack.imageTransform(imageURL, {height: 100, width: 200, disable: \"upscale\"});\n * @example\n * Stack.imageTransform(imageURL, {crop: \"150,100\"});\n * @example\n * Stack.imageTransform(imageURL, {format: \"png\", crop: \"150,100\"});\n * @returns {string} [Image url with transformation parameters.]\n * @instance\n */\n\n }, {\n key: 'imageTransform',\n value: function imageTransform(url, params) {\n if (url && typeof url === \"string\" && (typeof params === 'undefined' ? 'undefined' : _typeof(params)) === \"object\" && params.length === undefined) {\n var queryParams = [];\n for (var operation in params) {\n queryParams.push(operation + '=' + params[operation]);\n }\n url += url.indexOf(\"?\") <= -1 ? \"?\" + queryParams.join('&') : \"&\" + queryParams.join('&');\n }\n\n return url;\n }\n }]);\n\n return Stack;\n}();\n\nexports.default = Stack;\n\n//# sourceURL=webpack://Contentstack/./src/core/stack.js?"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _config = __webpack_require__(/*! ../../config */ \"./config.js\");\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _utils = __webpack_require__(/*! ./lib/utils */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _entry = __webpack_require__(/*! ./modules/entry */ \"./src/core/modules/entry.js\");\n\nvar _entry2 = _interopRequireDefault(_entry);\n\nvar _assets = __webpack_require__(/*! ./modules/assets */ \"./src/core/modules/assets.js\");\n\nvar _assets2 = _interopRequireDefault(_assets);\n\nvar _query = __webpack_require__(/*! ./modules/query */ \"./src/core/modules/query.js\");\n\nvar _query2 = _interopRequireDefault(_query);\n\nvar _request = __webpack_require__(/*! ./lib/request */ \"./src/core/lib/request.js\");\n\nvar _request2 = _interopRequireDefault(_request);\n\nvar _index = __webpack_require__(/*! ./cache-provider/index */ \"./src/core/cache-provider/index.js\");\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar errorRetry = [408, 429];\n\n/**\n * @class \n Stack \n * @description Initialize an instance of ‘Stack’\n * @param api_key - Stack API Key.\n * @param delivery_token - Stack Delivery token.\n * @param environment - Stack Environment name.\n * @param region - DB region for Stack.\n * @param fetchOptions - Custom setting for the request.\n * @param fetchOptions.timeout - Set timeout for the request.\n * @param fetchOptions.retryLimit - The number of retries before failure. Default is 5\n * @param fetchOptions.retryDelay - The number of ms to use for operation retries. Default is 300ms\n * @param fetchOptions.retryCondition - A function to determine if the error can be retried. Default retry is on status codes 408, 429.\n * @param fetchOptions.retryDelayOptions.base - The base number of milliseconds to use in the exponential backoff for operation retries.\n * @param fetchOptions.retryDelayOptions.customBackoff - A custom function that accepts a retry count and error and returns the amount of time to delay in milliseconds.\n * @example\n * var Stack = Contentstack.Stack({\n * 'api_key':'api_key',\n * 'delivery_token':'delivery_token',\n * 'environment':'environment_name',\n * 'region': 'us',\n * 'fetchOptions': {\n * \n * }\n * });\n * \n * @example\n * var Stack = Contentstack.Stack('api_key', 'access_token', 'environment', {\n * \n * });\n * \n * @example\n * // For Setting the European Region:\n * // If you want to set and use European region, refer to the code below:\n * const Stack = Contentstack.Stack(\"api_key\", \"delivery_token\", \"environment_name\", Contentstack.Region.EU);\n * \n * @returns {Stack}\n * @instance\n */\n\nvar Stack = function () {\n function Stack() {\n _classCallCheck(this, Stack);\n\n this.fetchOptions = {\n retryLimit: 5,\n retryCondition: function retryCondition(error) {\n if (errorRetry.includes(error.status)) {\n return true;\n }\n return false;\n }\n };\n this.config = Object.assign({}, _config2.default);\n\n for (var _len = arguments.length, stack_arguments = Array(_len), _key = 0; _key < _len; _key++) {\n stack_arguments[_key] = arguments[_key];\n }\n\n if (stack_arguments[0].region && stack_arguments[0].region !== undefined && stack_arguments[0].region !== \"us\") {\n this.config['host'] = stack_arguments[0].region + \"-\" + \"cdn.contentstack.com\";\n }\n\n if (stack_arguments[0].fetchOptions && stack_arguments[0].fetchOptions !== undefined) {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[0].fetchOptions);\n }\n\n this.cachePolicy = _index2.default.policies.IGNORE_CACHE;\n this.provider = _index2.default.providers('localstorage');\n\n switch (stack_arguments.length) {\n case 1:\n if (_typeof(stack_arguments[0]) === \"object\" && typeof stack_arguments[0].api_key === \"string\" && typeof stack_arguments[0].delivery_token === \"string\" && typeof stack_arguments[0].environment === \"string\") {\n this.headers = {\n api_key: stack_arguments[0].api_key,\n access_token: stack_arguments[0].delivery_token\n };\n this.environment = stack_arguments[0].environment;\n return this;\n } else {\n console.error(\"Kindly provide valid object parameters. The specified API Key, Delivery Token, or Environment Name is invalid.\");\n }\n case 3:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n return this;\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n case 4:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n if (stack_arguments[3]) {\n if (typeof stack_arguments[3] === \"string\" && stack_arguments[3] !== undefined && stack_arguments[3] !== \"us\") {\n this.config['host'] = stack_arguments[3] + \"-\" + \"cdn.contentstack.com\";\n } else if (_typeof(stack_arguments[3]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[3]);\n }\n }\n return this;\n case 5:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n\n if (stack_arguments[3]) {\n if (typeof stack_arguments[3] === \"string\" && stack_arguments[3] !== undefined && stack_arguments[3] !== \"us\") {\n this.config['host'] = stack_arguments[3] + \"-\" + \"cdn.contentstack.com\";\n } else if (_typeof(stack_arguments[3]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[3]);\n }\n }\n if (stack_arguments[4] && _typeof(stack_arguments[4]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[4]);\n }\n return this;\n default:\n console.error(\"Kindly provide valid parameters to initialize the Contentstack javascript-SDK Stack.\");\n }\n }\n\n /**\n * @method setPort\n * @memberOf Stack\n * @description Sets the port of the host\n * @param {Number} port - Port Number\n * @return {Stack}\n * @instance\n * */\n\n\n _createClass(Stack, [{\n key: 'setPort',\n value: function setPort(port) {\n if (typeof port === \"number\") this.config.port = port;\n return this;\n }\n\n /**\n * @method setProtocol\n * @memberOf Stack\n * @description Sets the protocol for the host\n * @param {String} protocol - http/https protocol\n * @return {Stack}\n * @instance\n * */\n\n }, {\n key: 'setProtocol',\n value: function setProtocol(protocol) {\n if (typeof protocol === \"string\" && ~[\"https\", \"http\"].indexOf(protocol)) this.config.protocol = protocol;\n return this;\n }\n\n /**\n * @method setHost\n * @memberOf Stack\n * @description Sets the host of the API server\n * @param {String} host - valid ip or host\n * @return {Stack}\n * @instance\n * */\n\n }, {\n key: 'setHost',\n value: function setHost(host) {\n if (typeof host === \"string\" && host) this.config.host = host;\n return this;\n }\n\n /**\n * @method setCachePolicy\n * @memberOf Stack\n * @description Allows you to set cache policies\n * @param {Constant} [key=ONLY_NETWORK] - Cache policy to be applied on Stack or Query.\n * @example\n * Stack.setCachePolicy(Contentstack.CachePolicy.IGNORE_CACHE)\n * Stack.setCachePolicy(Contentstack.CachePolicy.ONLY_NETWORK)\n * Stack.setCachePolicy(Contentstack.CachePolicy.CACHE_ELSE_NETWORK)\n * Stack.setCachePolicy(Contentstack.CachePolicy.NETWORK_ELSE_CACHE)\n * Stack.setCachePolicy(Contentstack.CachePolicy.CACHE_THEN_NETWORK)\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'setCachePolicy',\n value: function setCachePolicy(policy) {\n if (typeof policy === 'number' && policy >= -1 && policy < 4) {\n if (!this._query) {\n this.cachePolicy = policy;\n } else {\n this.queryCachePolicy = policy;\n }\n } else {\n console.error(\"Kindly provide the valid policy\");\n }\n return this;\n }\n\n /**\n * @method setCacheProvider\n * @memberOf Stack\n * @description Allows you to set an object of the cache provider\n * @example\n * Stack\n * .setCacheProvider({\n * get: function (key, callback) {\n * // custom logic\n * },\n * set: function (key, value, callback) {\n * // custom logic\n * }\n * });\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'setCacheProvider',\n value: function setCacheProvider(provider) {\n if (provider && (typeof provider === 'undefined' ? 'undefined' : _typeof(provider)) === 'object') {\n this.provider = provider;\n }\n return this;\n }\n\n /**\n * @method clearByQuery\n * @memberOf Stack\n * @description 'clearByQuery' function to clear the query from the cache.\n * @example\n * Stack.clearQuery(query, callback);\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'clearByQuery',\n value: function clearByQuery() {\n if (this.provider && typeof this.provider.clearByQuery === 'function') {\n return this.provider.clearByQuery.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method clearByContentType\n * @memberOf Stack\n * @description 'clearByContentType' function to clear the query from the cache by specified content type.\n * @example\n * Stack.clearByContentType(content_type_uid, callback);\n * Stack.clearByContentType(content_type_uid, language_uid, callback);\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'clearByContentType',\n value: function clearByContentType() {\n if (this.provider && typeof this.provider.clearByContentType === 'function') {\n return this.provider.clearByContentType.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method clearAll\n * @memberOf Stack\n * @description 'clearAll' function to clear all the queries from cache.\n * @example\n * Stack.clearAll(callback);\n * @returns {Stack}\n * @instance \n */\n\n }, {\n key: 'clearAll',\n value: function clearAll() {\n if (this.provider && typeof this.provider.clearAll === 'function') {\n return this.provider.clearAll.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method getCacheProvider\n * @memberOf Stack\n * @description Returns the currently set object of 'CacheProvider'\n * @example Stack.getCacheProvider();\n * @returns {object}\n * @instance\n */\n\n }, {\n key: 'getCacheProvider',\n value: function getCacheProvider() {\n return this.provider;\n }\n\n /**\n * @method ContentType\n * @memberOf Stack\n * @description Set the content type of which you want to retrieve the entries\n * @param {String} [content_type_uid] - uid of the existing content type\n * @example \n * let data = Stack.ContentType('blog').Query().toJSON().find()\n * data\n * .then(function(result) {\n * // 'result' content the list of entries of particular content type blog. \n * }, function(error) {\n * // error function\n * })\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'ContentType',\n value: function ContentType(uid) {\n if (uid && typeof uid === 'string') {\n this.content_type_uid = uid;\n this.type = \"contentType\";\n }\n return this;\n }\n\n /**\n * @method Entry\n * @memberOf ContentType\n * @param {String} uid - uid of the entry \n * @description An initializer is responsible for creating Entry object\n * @returns {Entry}\n * @instance \n */\n\n }, {\n key: 'Entry',\n value: function Entry(uid) {\n var entry = new _entry2.default();\n if (uid && typeof uid === \"string\") {\n entry.entry_uid = uid;\n }\n return Utils.merge(entry, this);\n }\n\n /**\n * @method fetch\n * @memberOf ContentType\n * @description This method returns the complete information of a specific content type.\n * @example\n * let single_contenttype = Stack.ContentType(content_type_uid).fetch()\n * single_contenttype\n * .then(function(result) {\n * // 'result' is a single contentType information. \n * }).catch((error) => {\n * console.log(error)\n * });\n * @returns {promise}\n * @instance \n */\n\n }, {\n key: 'fetch',\n value: function fetch(fetchOptions) {\n var result = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types + this.content_type_uid,\n body: {\n _method: 'GET',\n environment: this.environment\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return (0, _request2.default)(result, options);\n }\n\n /**\n * @method Assets\n * @memberOf Stack\n * @param {String} uid - uid of the asset \n * @description Retrieves all assets of a stack by default. To retrieve a single asset, specify its UID.\n * @example \n * // Retrieves all assets\n * let data = Stack.Assets().Query().toJSON().find()\n * data\n * .then(function(result) {\n * // All the asset with limit of 100\n * // Use skip and limit functions to paginate\n * // ‘result’ will display all assets present in stack \n * }, function(error) {\n * // error function\n * })\n * \n * @example \n * let data = Stack.Assets('bltsomething123').toJSON().fetch()\n * data\n * .then(function(result) {\n * // ‘result’ is a single asset object of specified uid \n * }, function(error) {\n * // error function\n * })\n * \n * @returns {Assets}\n * @instance \n */\n\n }, {\n key: 'Assets',\n value: function Assets(uid) {\n this.type = 'asset';\n if (uid && typeof uid === \"string\") {\n var asset = new _assets2.default();\n asset.asset_uid = uid;\n return Utils.merge(asset, this);\n }\n return this;\n }\n\n /**\n * @method Query\n * @memberOf Stack\n * @description An initializer is responsible for creating Query object.Provides support for all search queries\n * @returns {Query}\n * @instance \n */\n\n }, {\n key: 'Query',\n value: function Query() {\n var query = new _query2.default();\n return Utils.merge(query, this);\n }\n\n /**\n * @method getLastActivities\n * @memberOf Stack\n * @description getLastActivities get all the ContentTypes whose last activity updated.\n * @example Stack.getLastActivities()\n * @example \n * let data = Stack.getLastActivities().toJSON().fetch()\n * data\n * .then(function(result) {\n * // 'result' is list of contentTypes whose last activity updated. \n * }, function(error) {\n * // error function\n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'getLastActivities',\n value: function getLastActivities() {\n var query = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types,\n body: {\n _method: 'GET',\n only_last_activity: true,\n environment: this.environment\n }\n };\n return (0, _request2.default)(query, this.fetchOptions);\n }\n\n /**\n * @method getContentTypes\n * @memberOf Stack\n * @param {String} param - Query on contentTypes\n * @description This method returns comprehensive information of all the content types of a particular stack in your account.\n * @example \n * let data = Stack.getContentTypes({\"include_global_field_schema\": true})\n * data\n * .then(function(result) {\n * // 'result' is list of contentTypes. \n * }, function(error) {\n * // error function\n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'getContentTypes',\n value: function getContentTypes() {\n var param = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var query = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types,\n body: {\n _method: 'GET',\n environment: this.environment\n }\n };\n if (param && param !== undefined) {\n for (var key in param) {\n query.body[key] = param[key];\n }\n }\n return (0, _request2.default)(query, this.fetchOptions);\n }\n\n /**\n * @method sync\n * @memberOf Stack\n * @description Syncs your Contentstack data with your app and ensures that the data is always up-to-date by providing delta updates\n * @param {object} params - params is an object that supports ‘locale’, ‘start_date’, ‘content_type_uid’, and ‘type’ queries.\n * @example \n * Stack.sync({'init': true}) // For initializing sync\n * @example \n * Stack.sync({'init': true, 'locale': 'en-us'}) //For initializing sync with entries of a specific locale\n * @example \n * Stack.sync({'init': true, 'start_date': '2018-10-22'}) //For initializing sync with entries published after a specific date\n * @example \n * Stack.sync({'init': true, 'content_type_uid': 'session'}) //For initializing sync with entries of a specific content type\n * @example \n * Stack.sync({'init': true, 'type': 'entry_published'}) //Use the type parameter to get a specific type of content.Supports 'asset_published', 'entry_published', 'asset_unpublished', 'entry_unpublished', 'asset_deleted', 'entry_deleted', 'content_type_deleted'.\n * @example \n * Stack.sync({'pagination_token': ''}) // For fetching the next batch of entries using pagination token\n * @example \n * Stack.sync({'sync_token': ''}) // For performing subsequent sync after initial sync\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'sync',\n value: function sync(params, fetchOptions) {\n this._query = {};\n this._query = Object.assign(this._query, params);\n this.requestParams = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.sync,\n body: {\n _method: 'GET',\n query: this._query\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return Utils.sendRequest(this, options);\n }\n\n /**\n * @method imageTransform\n * @memberOf Stack\n * @description Performs transformations on images of mentioned url based on transformation parameters \n * @param {String} url - Image url on which transformations need to be applied.\n * @param {String} params - Object with transformation parameters\n * @example\n * Stack.imageTransform(imageURL, {height: 100, width: 200, disable: \"upscale\"});\n * @example\n * Stack.imageTransform(imageURL, {crop: \"150,100\"});\n * @example\n * Stack.imageTransform(imageURL, {format: \"png\", crop: \"150,100\"});\n * @returns {string} [Image url with transformation parameters.]\n * @instance\n */\n\n }, {\n key: 'imageTransform',\n value: function imageTransform(url, params) {\n if (url && typeof url === \"string\" && (typeof params === 'undefined' ? 'undefined' : _typeof(params)) === \"object\" && params.length === undefined) {\n var queryParams = [];\n for (var operation in params) {\n queryParams.push(operation + '=' + params[operation]);\n }\n url += url.indexOf(\"?\") <= -1 ? \"?\" + queryParams.join('&') : \"&\" + queryParams.join('&');\n }\n\n return url;\n }\n }]);\n\n return Stack;\n}();\n\nexports.default = Stack;\n\n//# sourceURL=webpack://Contentstack/./src/core/stack.js?"); /***/ }), diff --git a/dist/node/contentstack.js b/dist/node/contentstack.js index 95a5de75..10c55adf 100644 --- a/dist/node/contentstack.js +++ b/dist/node/contentstack.js @@ -99,6 +99,18 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); /***/ }), +/***/ "./node_modules/@contentstack/utils/dist/index.es.js": +/*!***********************************************************!*\ + !*** ./node_modules/@contentstack/utils/dist/index.es.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar nodeHtmlParser = __webpack_require__(/*! node-html-parser */ \"./node_modules/node-html-parser/dist/esm/index.js\");\n\nvar StyleType;\n(function (StyleType) {\n StyleType[\"BLOCK\"] = \"block\";\n StyleType[\"INLINE\"] = \"inline\";\n StyleType[\"LINK\"] = \"link\";\n StyleType[\"DISPLAY\"] = \"display\";\n StyleType[\"DOWNLOAD\"] = \"download\";\n})(StyleType || (StyleType = {}));\nvar StyleType$1 = StyleType;\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return _assign.apply(this, arguments);\n};\n\nfunction elementToJson(element) {\n var obj = _assign({}, element.rawAttributes);\n element.childNodes.forEach(function (chileNode) {\n var node = chileNode;\n obj = _assign(_assign({}, obj), parseElement(node));\n });\n return obj;\n}\nfunction parseElement(node) {\n var obj = {};\n if (node.nodeType === 3) {\n obj['#text'] = node.text;\n } else if (node.nodeType === 1) {\n obj[node.tagName.toLowerCase()] = elementToJson(node);\n }\n return obj;\n}\n\nfunction createMetadata(attribute) {\n var metadata = {\n text: attribute['#text'],\n itemUid: attribute[\"data-sys-entry-uid\"] || attribute[\"data-sys-asset-uid\"],\n itemType: attribute.type,\n styleType: attribute[\"sys-style-type\"],\n attributes: attribute,\n contentTypeUid: attribute[\"data-sys-content-type-uid\"]\n };\n return metadata;\n}\n\nvar frameflag = 'documentfragmentcontainer';\nString.prototype.forEachEmbeddedObject = function (callbackfn) {\n var str = \"<\" + frameflag + \">\" + this.toString() + \"\";\n var root = nodeHtmlParser.parse(str);\n var embeddedEntries = root.querySelectorAll(\".embedded-entry\");\n embeddedEntries.forEach(function (element) {\n callbackfn(element.outerHTML, createMetadata(elementToJson(element)));\n });\n var embeddedAsset = root.querySelectorAll(\".embedded-asset\");\n embeddedAsset.forEach(function (element) {\n callbackfn(element.outerHTML, createMetadata(elementToJson(element)));\n });\n};\n\nvar _a;\nvar defaultOptions = (_a = {}, _a[StyleType$1.BLOCK] = function (entry) {\n return \"

\" + (entry.title || entry.uid) + \"

Content type: \" + entry._content_type_uid + \"

\";\n}, _a[StyleType$1.INLINE] = function (entry) {\n return \"\" + (entry.title || entry.uid) + \"\";\n}, _a[StyleType$1.LINK] = function (entry, metadata) {\n return \"\" + (metadata.text || entry.title || entry.uid) + \"\";\n}, _a[StyleType$1.DISPLAY] = function (asset, metadata) {\n return \"\\\"\"\";\n}, _a[StyleType$1.DOWNLOAD] = function (entry, metadata) {\n return \"\" + (metadata.text || entry.title || entry.uid) + \"\";\n}, _a);\n\n// This function will find Embedded object present in string\nfunction findEmbeddedEntry(uid, contentTypeUid, embeddeditems) {\n if (embeddeditems === void 0) {\n embeddeditems = [];\n }\n return embeddeditems.filter(function (entry) {\n if (entry.uid === uid && entry._content_type_uid === contentTypeUid) {\n return entry;\n }\n });\n}\nfunction findEmbeddedAsset(uid, embeddedAssets) {\n if (embeddedAssets === void 0) {\n embeddedAssets = [];\n }\n return embeddedAssets.filter(function (asset) {\n if (asset.uid === uid) {\n return asset;\n }\n });\n}\nfunction findEmbeddedObjects(object, entry) {\n if (object && object !== undefined && entry && entry !== undefined) {\n if (entry._embedded_items !== undefined) {\n var entryEmbedable = entry;\n if (object.itemType === 'entry') {\n return findEmbeddedEntry(object.itemUid, object.contentTypeUid, Object.values(entryEmbedable._embedded_items || []).reduce(function (accumulator, value) {\n return accumulator.concat(value);\n }, []));\n } else {\n return findEmbeddedAsset(object.itemUid, Object.values(entryEmbedable._embedded_items || []).reduce(function (accumulator, value) {\n return accumulator.concat(value);\n }, []));\n }\n }\n }\n return [];\n}\nfunction findRenderString(metadata, renderModel, renderOptions) {\n if (!renderModel && renderModel === undefined || !metadata && metadata === undefined) {\n return '';\n }\n if (renderOptions && renderOptions[metadata.styleType] !== undefined) {\n var renderFunction = renderOptions[metadata.styleType];\n if (metadata.attributes['data-sys-content-type-uid'] !== undefined && typeof renderFunction !== 'function' && renderFunction[metadata.attributes['data-sys-content-type-uid']] !== undefined) {\n return renderFunction[metadata.attributes['data-sys-content-type-uid']](renderModel, metadata);\n } else if (metadata.attributes['data-sys-content-type-uid'] !== undefined && typeof renderFunction !== 'function' && renderFunction.$default !== undefined) {\n return renderFunction.$default(renderModel, metadata);\n } else if (typeof renderFunction === 'function') {\n return renderFunction(renderModel, metadata);\n }\n }\n var defaultRenderFunction = defaultOptions[metadata.styleType];\n return defaultRenderFunction(renderModel, metadata);\n}\n\nfunction findRenderContent(keyPaths, entry, render) {\n getContent(keyPaths.split(\".\"), entry, render);\n}\nfunction getContent(keys, object, render) {\n if (keys) {\n var key = keys[0];\n if (keys.length === 1 && object[key]) {\n object[key] = render(object[key]);\n } else if (keys.length > 0) {\n if (object[key]) {\n var newKeys = keys.slice(1);\n if (Array.isArray(object[key])) {\n // tslint:disable-next-line: prefer-for-of\n for (var i = 0; i < object[key].length; i++) {\n getContent(newKeys, object[key][i], render);\n }\n } else if (_typeof(object[key]) === 'object') {\n getContent(newKeys, object[key], render);\n }\n }\n }\n }\n}\n\n/**\r\n *\r\n * @param {EntryEmbedable| EntryEmbedable[]} entry - Objects that contains RTE with embedded objects\r\n * @param {string[]} paths - Key paths for RTE contents in Entry object\r\n * @param {RenderOption?} renderOption - Optional render options to render content\r\n */\nfunction render(option) {\n function findContent(path, entry) {\n findRenderContent(path, entry, function (content) {\n return renderContent(content, { entry: entry, renderOption: option.renderOption });\n });\n }\n function findAndRender(entry) {\n if (!option.paths || option.paths.length === 0) {\n Object.keys(_assign({}, entry._embedded_items)).forEach(function (path) {\n findContent(path, entry);\n });\n } else {\n option.paths.forEach(function (path) {\n findContent(path, entry);\n });\n }\n }\n if (option.entry instanceof Array) {\n option.entry.forEach(function (entry) {\n findAndRender(entry);\n });\n } else {\n findAndRender(option.entry);\n }\n}\n/**\r\n *\r\n * @param {string | string[]} content - RTE content to render\r\n * @param {EntryEmbedable} options.entry - Entry object containing embedded objects\r\n * @param {RenderOption?} options.renderOption - Optional render options to render content\r\n */\nfunction renderContent(content, option) {\n // return blank if content not present\n if (!content || content === undefined) {\n return '';\n }\n // render content of type string\n if (typeof content === 'string') {\n var contentToReplace_1 = content;\n content.forEachEmbeddedObject(function (embededObjectTag, object) {\n contentToReplace_1 = findAndReplaceEmbeddedObject(contentToReplace_1, embededObjectTag, object, option);\n });\n return contentToReplace_1;\n }\n // render content of type array of string\n var resultContent = [];\n content.forEach(function (element) {\n resultContent.push(renderContent(element, option));\n });\n return resultContent;\n}\nfunction findAndReplaceEmbeddedObject(content, embededObjectTag, object, option) {\n var embeddedObjects = findEmbeddedObjects(object, option.entry);\n var renderString = findRenderString(object, embeddedObjects[0], option.renderOption);\n return content.replace(embededObjectTag, renderString);\n}\n\nexports.StyleType = StyleType$1;\nexports.render = render;\nexports.renderContent = renderContent;\n//# sourceMappingURL=index.es.js.map\n\n//# sourceURL=webpack://Contentstack/./node_modules/@contentstack/utils/dist/index.es.js?"); + +/***/ }), + /***/ "./node_modules/es6-promise/dist/es6-promise.js": /*!******************************************************!*\ !*** ./node_modules/es6-promise/dist/es6-promise.js ***! @@ -111,6 +123,18 @@ eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;var requ /***/ }), +/***/ "./node_modules/he/he.js": +/*!*******************************!*\ + !*** ./node_modules/he/he.js ***! + \*******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n;(function (root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = ( false ? undefined : _typeof(exports)) == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = ( false ? undefined : _typeof(module)) == 'object' && module && module.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`.\n\tvar freeGlobal = (typeof global === 'undefined' ? 'undefined' : _typeof(global)) == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// All astral symbols.\n\tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\t// All ASCII symbols (not just printable ASCII) except those listed in the\n\t// first column of the overrides table.\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\n\tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\n\t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\n\t// code points listed in the first column of the overrides table on\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\n\tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n\n\tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\n\tvar encodeMap = { '\\xAD': 'shy', '\\u200C': 'zwnj', '\\u200D': 'zwj', '\\u200E': 'lrm', '\\u2063': 'ic', '\\u2062': 'it', '\\u2061': 'af', '\\u200F': 'rlm', '\\u200B': 'ZeroWidthSpace', '\\u2060': 'NoBreak', '\\u0311': 'DownBreve', '\\u20DB': 'tdot', '\\u20DC': 'DotDot', '\\t': 'Tab', '\\n': 'NewLine', '\\u2008': 'puncsp', '\\u205F': 'MediumSpace', '\\u2009': 'thinsp', '\\u200A': 'hairsp', '\\u2004': 'emsp13', '\\u2002': 'ensp', '\\u2005': 'emsp14', '\\u2003': 'emsp', '\\u2007': 'numsp', '\\xA0': 'nbsp', '\\u205F\\u200A': 'ThickSpace', '\\u203E': 'oline', '_': 'lowbar', '\\u2010': 'dash', '\\u2013': 'ndash', '\\u2014': 'mdash', '\\u2015': 'horbar', ',': 'comma', ';': 'semi', '\\u204F': 'bsemi', ':': 'colon', '\\u2A74': 'Colone', '!': 'excl', '\\xA1': 'iexcl', '?': 'quest', '\\xBF': 'iquest', '.': 'period', '\\u2025': 'nldr', '\\u2026': 'mldr', '\\xB7': 'middot', '\\'': 'apos', '\\u2018': 'lsquo', '\\u2019': 'rsquo', '\\u201A': 'sbquo', '\\u2039': 'lsaquo', '\\u203A': 'rsaquo', '\"': 'quot', '\\u201C': 'ldquo', '\\u201D': 'rdquo', '\\u201E': 'bdquo', '\\xAB': 'laquo', '\\xBB': 'raquo', '(': 'lpar', ')': 'rpar', '[': 'lsqb', ']': 'rsqb', '{': 'lcub', '}': 'rcub', '\\u2308': 'lceil', '\\u2309': 'rceil', '\\u230A': 'lfloor', '\\u230B': 'rfloor', '\\u2985': 'lopar', '\\u2986': 'ropar', '\\u298B': 'lbrke', '\\u298C': 'rbrke', '\\u298D': 'lbrkslu', '\\u298E': 'rbrksld', '\\u298F': 'lbrksld', '\\u2990': 'rbrkslu', '\\u2991': 'langd', '\\u2992': 'rangd', '\\u2993': 'lparlt', '\\u2994': 'rpargt', '\\u2995': 'gtlPar', '\\u2996': 'ltrPar', '\\u27E6': 'lobrk', '\\u27E7': 'robrk', '\\u27E8': 'lang', '\\u27E9': 'rang', '\\u27EA': 'Lang', '\\u27EB': 'Rang', '\\u27EC': 'loang', '\\u27ED': 'roang', '\\u2772': 'lbbrk', '\\u2773': 'rbbrk', '\\u2016': 'Vert', '\\xA7': 'sect', '\\xB6': 'para', '@': 'commat', '*': 'ast', '/': 'sol', 'undefined': null, '&': 'amp', '#': 'num', '%': 'percnt', '\\u2030': 'permil', '\\u2031': 'pertenk', '\\u2020': 'dagger', '\\u2021': 'Dagger', '\\u2022': 'bull', '\\u2043': 'hybull', '\\u2032': 'prime', '\\u2033': 'Prime', '\\u2034': 'tprime', '\\u2057': 'qprime', '\\u2035': 'bprime', '\\u2041': 'caret', '`': 'grave', '\\xB4': 'acute', '\\u02DC': 'tilde', '^': 'Hat', '\\xAF': 'macr', '\\u02D8': 'breve', '\\u02D9': 'dot', '\\xA8': 'die', '\\u02DA': 'ring', '\\u02DD': 'dblac', '\\xB8': 'cedil', '\\u02DB': 'ogon', '\\u02C6': 'circ', '\\u02C7': 'caron', '\\xB0': 'deg', '\\xA9': 'copy', '\\xAE': 'reg', '\\u2117': 'copysr', '\\u2118': 'wp', '\\u211E': 'rx', '\\u2127': 'mho', '\\u2129': 'iiota', '\\u2190': 'larr', '\\u219A': 'nlarr', '\\u2192': 'rarr', '\\u219B': 'nrarr', '\\u2191': 'uarr', '\\u2193': 'darr', '\\u2194': 'harr', '\\u21AE': 'nharr', '\\u2195': 'varr', '\\u2196': 'nwarr', '\\u2197': 'nearr', '\\u2198': 'searr', '\\u2199': 'swarr', '\\u219D': 'rarrw', '\\u219D\\u0338': 'nrarrw', '\\u219E': 'Larr', '\\u219F': 'Uarr', '\\u21A0': 'Rarr', '\\u21A1': 'Darr', '\\u21A2': 'larrtl', '\\u21A3': 'rarrtl', '\\u21A4': 'mapstoleft', '\\u21A5': 'mapstoup', '\\u21A6': 'map', '\\u21A7': 'mapstodown', '\\u21A9': 'larrhk', '\\u21AA': 'rarrhk', '\\u21AB': 'larrlp', '\\u21AC': 'rarrlp', '\\u21AD': 'harrw', '\\u21B0': 'lsh', '\\u21B1': 'rsh', '\\u21B2': 'ldsh', '\\u21B3': 'rdsh', '\\u21B5': 'crarr', '\\u21B6': 'cularr', '\\u21B7': 'curarr', '\\u21BA': 'olarr', '\\u21BB': 'orarr', '\\u21BC': 'lharu', '\\u21BD': 'lhard', '\\u21BE': 'uharr', '\\u21BF': 'uharl', '\\u21C0': 'rharu', '\\u21C1': 'rhard', '\\u21C2': 'dharr', '\\u21C3': 'dharl', '\\u21C4': 'rlarr', '\\u21C5': 'udarr', '\\u21C6': 'lrarr', '\\u21C7': 'llarr', '\\u21C8': 'uuarr', '\\u21C9': 'rrarr', '\\u21CA': 'ddarr', '\\u21CB': 'lrhar', '\\u21CC': 'rlhar', '\\u21D0': 'lArr', '\\u21CD': 'nlArr', '\\u21D1': 'uArr', '\\u21D2': 'rArr', '\\u21CF': 'nrArr', '\\u21D3': 'dArr', '\\u21D4': 'iff', '\\u21CE': 'nhArr', '\\u21D5': 'vArr', '\\u21D6': 'nwArr', '\\u21D7': 'neArr', '\\u21D8': 'seArr', '\\u21D9': 'swArr', '\\u21DA': 'lAarr', '\\u21DB': 'rAarr', '\\u21DD': 'zigrarr', '\\u21E4': 'larrb', '\\u21E5': 'rarrb', '\\u21F5': 'duarr', '\\u21FD': 'loarr', '\\u21FE': 'roarr', '\\u21FF': 'hoarr', '\\u2200': 'forall', '\\u2201': 'comp', '\\u2202': 'part', '\\u2202\\u0338': 'npart', '\\u2203': 'exist', '\\u2204': 'nexist', '\\u2205': 'empty', '\\u2207': 'Del', '\\u2208': 'in', '\\u2209': 'notin', '\\u220B': 'ni', '\\u220C': 'notni', '\\u03F6': 'bepsi', '\\u220F': 'prod', '\\u2210': 'coprod', '\\u2211': 'sum', '+': 'plus', '\\xB1': 'pm', '\\xF7': 'div', '\\xD7': 'times', '<': 'lt', '\\u226E': 'nlt', '<\\u20D2': 'nvlt', '=': 'equals', '\\u2260': 'ne', '=\\u20E5': 'bne', '\\u2A75': 'Equal', '>': 'gt', '\\u226F': 'ngt', '>\\u20D2': 'nvgt', '\\xAC': 'not', '|': 'vert', '\\xA6': 'brvbar', '\\u2212': 'minus', '\\u2213': 'mp', '\\u2214': 'plusdo', '\\u2044': 'frasl', '\\u2216': 'setmn', '\\u2217': 'lowast', '\\u2218': 'compfn', '\\u221A': 'Sqrt', '\\u221D': 'prop', '\\u221E': 'infin', '\\u221F': 'angrt', '\\u2220': 'ang', '\\u2220\\u20D2': 'nang', '\\u2221': 'angmsd', '\\u2222': 'angsph', '\\u2223': 'mid', '\\u2224': 'nmid', '\\u2225': 'par', '\\u2226': 'npar', '\\u2227': 'and', '\\u2228': 'or', '\\u2229': 'cap', '\\u2229\\uFE00': 'caps', '\\u222A': 'cup', '\\u222A\\uFE00': 'cups', '\\u222B': 'int', '\\u222C': 'Int', '\\u222D': 'tint', '\\u2A0C': 'qint', '\\u222E': 'oint', '\\u222F': 'Conint', '\\u2230': 'Cconint', '\\u2231': 'cwint', '\\u2232': 'cwconint', '\\u2233': 'awconint', '\\u2234': 'there4', '\\u2235': 'becaus', '\\u2236': 'ratio', '\\u2237': 'Colon', '\\u2238': 'minusd', '\\u223A': 'mDDot', '\\u223B': 'homtht', '\\u223C': 'sim', '\\u2241': 'nsim', '\\u223C\\u20D2': 'nvsim', '\\u223D': 'bsim', '\\u223D\\u0331': 'race', '\\u223E': 'ac', '\\u223E\\u0333': 'acE', '\\u223F': 'acd', '\\u2240': 'wr', '\\u2242': 'esim', '\\u2242\\u0338': 'nesim', '\\u2243': 'sime', '\\u2244': 'nsime', '\\u2245': 'cong', '\\u2247': 'ncong', '\\u2246': 'simne', '\\u2248': 'ap', '\\u2249': 'nap', '\\u224A': 'ape', '\\u224B': 'apid', '\\u224B\\u0338': 'napid', '\\u224C': 'bcong', '\\u224D': 'CupCap', '\\u226D': 'NotCupCap', '\\u224D\\u20D2': 'nvap', '\\u224E': 'bump', '\\u224E\\u0338': 'nbump', '\\u224F': 'bumpe', '\\u224F\\u0338': 'nbumpe', '\\u2250': 'doteq', '\\u2250\\u0338': 'nedot', '\\u2251': 'eDot', '\\u2252': 'efDot', '\\u2253': 'erDot', '\\u2254': 'colone', '\\u2255': 'ecolon', '\\u2256': 'ecir', '\\u2257': 'cire', '\\u2259': 'wedgeq', '\\u225A': 'veeeq', '\\u225C': 'trie', '\\u225F': 'equest', '\\u2261': 'equiv', '\\u2262': 'nequiv', '\\u2261\\u20E5': 'bnequiv', '\\u2264': 'le', '\\u2270': 'nle', '\\u2264\\u20D2': 'nvle', '\\u2265': 'ge', '\\u2271': 'nge', '\\u2265\\u20D2': 'nvge', '\\u2266': 'lE', '\\u2266\\u0338': 'nlE', '\\u2267': 'gE', '\\u2267\\u0338': 'ngE', '\\u2268\\uFE00': 'lvnE', '\\u2268': 'lnE', '\\u2269': 'gnE', '\\u2269\\uFE00': 'gvnE', '\\u226A': 'll', '\\u226A\\u0338': 'nLtv', '\\u226A\\u20D2': 'nLt', '\\u226B': 'gg', '\\u226B\\u0338': 'nGtv', '\\u226B\\u20D2': 'nGt', '\\u226C': 'twixt', '\\u2272': 'lsim', '\\u2274': 'nlsim', '\\u2273': 'gsim', '\\u2275': 'ngsim', '\\u2276': 'lg', '\\u2278': 'ntlg', '\\u2277': 'gl', '\\u2279': 'ntgl', '\\u227A': 'pr', '\\u2280': 'npr', '\\u227B': 'sc', '\\u2281': 'nsc', '\\u227C': 'prcue', '\\u22E0': 'nprcue', '\\u227D': 'sccue', '\\u22E1': 'nsccue', '\\u227E': 'prsim', '\\u227F': 'scsim', '\\u227F\\u0338': 'NotSucceedsTilde', '\\u2282': 'sub', '\\u2284': 'nsub', '\\u2282\\u20D2': 'vnsub', '\\u2283': 'sup', '\\u2285': 'nsup', '\\u2283\\u20D2': 'vnsup', '\\u2286': 'sube', '\\u2288': 'nsube', '\\u2287': 'supe', '\\u2289': 'nsupe', '\\u228A\\uFE00': 'vsubne', '\\u228A': 'subne', '\\u228B\\uFE00': 'vsupne', '\\u228B': 'supne', '\\u228D': 'cupdot', '\\u228E': 'uplus', '\\u228F': 'sqsub', '\\u228F\\u0338': 'NotSquareSubset', '\\u2290': 'sqsup', '\\u2290\\u0338': 'NotSquareSuperset', '\\u2291': 'sqsube', '\\u22E2': 'nsqsube', '\\u2292': 'sqsupe', '\\u22E3': 'nsqsupe', '\\u2293': 'sqcap', '\\u2293\\uFE00': 'sqcaps', '\\u2294': 'sqcup', '\\u2294\\uFE00': 'sqcups', '\\u2295': 'oplus', '\\u2296': 'ominus', '\\u2297': 'otimes', '\\u2298': 'osol', '\\u2299': 'odot', '\\u229A': 'ocir', '\\u229B': 'oast', '\\u229D': 'odash', '\\u229E': 'plusb', '\\u229F': 'minusb', '\\u22A0': 'timesb', '\\u22A1': 'sdotb', '\\u22A2': 'vdash', '\\u22AC': 'nvdash', '\\u22A3': 'dashv', '\\u22A4': 'top', '\\u22A5': 'bot', '\\u22A7': 'models', '\\u22A8': 'vDash', '\\u22AD': 'nvDash', '\\u22A9': 'Vdash', '\\u22AE': 'nVdash', '\\u22AA': 'Vvdash', '\\u22AB': 'VDash', '\\u22AF': 'nVDash', '\\u22B0': 'prurel', '\\u22B2': 'vltri', '\\u22EA': 'nltri', '\\u22B3': 'vrtri', '\\u22EB': 'nrtri', '\\u22B4': 'ltrie', '\\u22EC': 'nltrie', '\\u22B4\\u20D2': 'nvltrie', '\\u22B5': 'rtrie', '\\u22ED': 'nrtrie', '\\u22B5\\u20D2': 'nvrtrie', '\\u22B6': 'origof', '\\u22B7': 'imof', '\\u22B8': 'mumap', '\\u22B9': 'hercon', '\\u22BA': 'intcal', '\\u22BB': 'veebar', '\\u22BD': 'barvee', '\\u22BE': 'angrtvb', '\\u22BF': 'lrtri', '\\u22C0': 'Wedge', '\\u22C1': 'Vee', '\\u22C2': 'xcap', '\\u22C3': 'xcup', '\\u22C4': 'diam', '\\u22C5': 'sdot', '\\u22C6': 'Star', '\\u22C7': 'divonx', '\\u22C8': 'bowtie', '\\u22C9': 'ltimes', '\\u22CA': 'rtimes', '\\u22CB': 'lthree', '\\u22CC': 'rthree', '\\u22CD': 'bsime', '\\u22CE': 'cuvee', '\\u22CF': 'cuwed', '\\u22D0': 'Sub', '\\u22D1': 'Sup', '\\u22D2': 'Cap', '\\u22D3': 'Cup', '\\u22D4': 'fork', '\\u22D5': 'epar', '\\u22D6': 'ltdot', '\\u22D7': 'gtdot', '\\u22D8': 'Ll', '\\u22D8\\u0338': 'nLl', '\\u22D9': 'Gg', '\\u22D9\\u0338': 'nGg', '\\u22DA\\uFE00': 'lesg', '\\u22DA': 'leg', '\\u22DB': 'gel', '\\u22DB\\uFE00': 'gesl', '\\u22DE': 'cuepr', '\\u22DF': 'cuesc', '\\u22E6': 'lnsim', '\\u22E7': 'gnsim', '\\u22E8': 'prnsim', '\\u22E9': 'scnsim', '\\u22EE': 'vellip', '\\u22EF': 'ctdot', '\\u22F0': 'utdot', '\\u22F1': 'dtdot', '\\u22F2': 'disin', '\\u22F3': 'isinsv', '\\u22F4': 'isins', '\\u22F5': 'isindot', '\\u22F5\\u0338': 'notindot', '\\u22F6': 'notinvc', '\\u22F7': 'notinvb', '\\u22F9': 'isinE', '\\u22F9\\u0338': 'notinE', '\\u22FA': 'nisd', '\\u22FB': 'xnis', '\\u22FC': 'nis', '\\u22FD': 'notnivc', '\\u22FE': 'notnivb', '\\u2305': 'barwed', '\\u2306': 'Barwed', '\\u230C': 'drcrop', '\\u230D': 'dlcrop', '\\u230E': 'urcrop', '\\u230F': 'ulcrop', '\\u2310': 'bnot', '\\u2312': 'profline', '\\u2313': 'profsurf', '\\u2315': 'telrec', '\\u2316': 'target', '\\u231C': 'ulcorn', '\\u231D': 'urcorn', '\\u231E': 'dlcorn', '\\u231F': 'drcorn', '\\u2322': 'frown', '\\u2323': 'smile', '\\u232D': 'cylcty', '\\u232E': 'profalar', '\\u2336': 'topbot', '\\u233D': 'ovbar', '\\u233F': 'solbar', '\\u237C': 'angzarr', '\\u23B0': 'lmoust', '\\u23B1': 'rmoust', '\\u23B4': 'tbrk', '\\u23B5': 'bbrk', '\\u23B6': 'bbrktbrk', '\\u23DC': 'OverParenthesis', '\\u23DD': 'UnderParenthesis', '\\u23DE': 'OverBrace', '\\u23DF': 'UnderBrace', '\\u23E2': 'trpezium', '\\u23E7': 'elinters', '\\u2423': 'blank', '\\u2500': 'boxh', '\\u2502': 'boxv', '\\u250C': 'boxdr', '\\u2510': 'boxdl', '\\u2514': 'boxur', '\\u2518': 'boxul', '\\u251C': 'boxvr', '\\u2524': 'boxvl', '\\u252C': 'boxhd', '\\u2534': 'boxhu', '\\u253C': 'boxvh', '\\u2550': 'boxH', '\\u2551': 'boxV', '\\u2552': 'boxdR', '\\u2553': 'boxDr', '\\u2554': 'boxDR', '\\u2555': 'boxdL', '\\u2556': 'boxDl', '\\u2557': 'boxDL', '\\u2558': 'boxuR', '\\u2559': 'boxUr', '\\u255A': 'boxUR', '\\u255B': 'boxuL', '\\u255C': 'boxUl', '\\u255D': 'boxUL', '\\u255E': 'boxvR', '\\u255F': 'boxVr', '\\u2560': 'boxVR', '\\u2561': 'boxvL', '\\u2562': 'boxVl', '\\u2563': 'boxVL', '\\u2564': 'boxHd', '\\u2565': 'boxhD', '\\u2566': 'boxHD', '\\u2567': 'boxHu', '\\u2568': 'boxhU', '\\u2569': 'boxHU', '\\u256A': 'boxvH', '\\u256B': 'boxVh', '\\u256C': 'boxVH', '\\u2580': 'uhblk', '\\u2584': 'lhblk', '\\u2588': 'block', '\\u2591': 'blk14', '\\u2592': 'blk12', '\\u2593': 'blk34', '\\u25A1': 'squ', '\\u25AA': 'squf', '\\u25AB': 'EmptyVerySmallSquare', '\\u25AD': 'rect', '\\u25AE': 'marker', '\\u25B1': 'fltns', '\\u25B3': 'xutri', '\\u25B4': 'utrif', '\\u25B5': 'utri', '\\u25B8': 'rtrif', '\\u25B9': 'rtri', '\\u25BD': 'xdtri', '\\u25BE': 'dtrif', '\\u25BF': 'dtri', '\\u25C2': 'ltrif', '\\u25C3': 'ltri', '\\u25CA': 'loz', '\\u25CB': 'cir', '\\u25EC': 'tridot', '\\u25EF': 'xcirc', '\\u25F8': 'ultri', '\\u25F9': 'urtri', '\\u25FA': 'lltri', '\\u25FB': 'EmptySmallSquare', '\\u25FC': 'FilledSmallSquare', '\\u2605': 'starf', '\\u2606': 'star', '\\u260E': 'phone', '\\u2640': 'female', '\\u2642': 'male', '\\u2660': 'spades', '\\u2663': 'clubs', '\\u2665': 'hearts', '\\u2666': 'diams', '\\u266A': 'sung', '\\u2713': 'check', '\\u2717': 'cross', '\\u2720': 'malt', '\\u2736': 'sext', '\\u2758': 'VerticalSeparator', '\\u27C8': 'bsolhsub', '\\u27C9': 'suphsol', '\\u27F5': 'xlarr', '\\u27F6': 'xrarr', '\\u27F7': 'xharr', '\\u27F8': 'xlArr', '\\u27F9': 'xrArr', '\\u27FA': 'xhArr', '\\u27FC': 'xmap', '\\u27FF': 'dzigrarr', '\\u2902': 'nvlArr', '\\u2903': 'nvrArr', '\\u2904': 'nvHarr', '\\u2905': 'Map', '\\u290C': 'lbarr', '\\u290D': 'rbarr', '\\u290E': 'lBarr', '\\u290F': 'rBarr', '\\u2910': 'RBarr', '\\u2911': 'DDotrahd', '\\u2912': 'UpArrowBar', '\\u2913': 'DownArrowBar', '\\u2916': 'Rarrtl', '\\u2919': 'latail', '\\u291A': 'ratail', '\\u291B': 'lAtail', '\\u291C': 'rAtail', '\\u291D': 'larrfs', '\\u291E': 'rarrfs', '\\u291F': 'larrbfs', '\\u2920': 'rarrbfs', '\\u2923': 'nwarhk', '\\u2924': 'nearhk', '\\u2925': 'searhk', '\\u2926': 'swarhk', '\\u2927': 'nwnear', '\\u2928': 'toea', '\\u2929': 'tosa', '\\u292A': 'swnwar', '\\u2933': 'rarrc', '\\u2933\\u0338': 'nrarrc', '\\u2935': 'cudarrr', '\\u2936': 'ldca', '\\u2937': 'rdca', '\\u2938': 'cudarrl', '\\u2939': 'larrpl', '\\u293C': 'curarrm', '\\u293D': 'cularrp', '\\u2945': 'rarrpl', '\\u2948': 'harrcir', '\\u2949': 'Uarrocir', '\\u294A': 'lurdshar', '\\u294B': 'ldrushar', '\\u294E': 'LeftRightVector', '\\u294F': 'RightUpDownVector', '\\u2950': 'DownLeftRightVector', '\\u2951': 'LeftUpDownVector', '\\u2952': 'LeftVectorBar', '\\u2953': 'RightVectorBar', '\\u2954': 'RightUpVectorBar', '\\u2955': 'RightDownVectorBar', '\\u2956': 'DownLeftVectorBar', '\\u2957': 'DownRightVectorBar', '\\u2958': 'LeftUpVectorBar', '\\u2959': 'LeftDownVectorBar', '\\u295A': 'LeftTeeVector', '\\u295B': 'RightTeeVector', '\\u295C': 'RightUpTeeVector', '\\u295D': 'RightDownTeeVector', '\\u295E': 'DownLeftTeeVector', '\\u295F': 'DownRightTeeVector', '\\u2960': 'LeftUpTeeVector', '\\u2961': 'LeftDownTeeVector', '\\u2962': 'lHar', '\\u2963': 'uHar', '\\u2964': 'rHar', '\\u2965': 'dHar', '\\u2966': 'luruhar', '\\u2967': 'ldrdhar', '\\u2968': 'ruluhar', '\\u2969': 'rdldhar', '\\u296A': 'lharul', '\\u296B': 'llhard', '\\u296C': 'rharul', '\\u296D': 'lrhard', '\\u296E': 'udhar', '\\u296F': 'duhar', '\\u2970': 'RoundImplies', '\\u2971': 'erarr', '\\u2972': 'simrarr', '\\u2973': 'larrsim', '\\u2974': 'rarrsim', '\\u2975': 'rarrap', '\\u2976': 'ltlarr', '\\u2978': 'gtrarr', '\\u2979': 'subrarr', '\\u297B': 'suplarr', '\\u297C': 'lfisht', '\\u297D': 'rfisht', '\\u297E': 'ufisht', '\\u297F': 'dfisht', '\\u299A': 'vzigzag', '\\u299C': 'vangrt', '\\u299D': 'angrtvbd', '\\u29A4': 'ange', '\\u29A5': 'range', '\\u29A6': 'dwangle', '\\u29A7': 'uwangle', '\\u29A8': 'angmsdaa', '\\u29A9': 'angmsdab', '\\u29AA': 'angmsdac', '\\u29AB': 'angmsdad', '\\u29AC': 'angmsdae', '\\u29AD': 'angmsdaf', '\\u29AE': 'angmsdag', '\\u29AF': 'angmsdah', '\\u29B0': 'bemptyv', '\\u29B1': 'demptyv', '\\u29B2': 'cemptyv', '\\u29B3': 'raemptyv', '\\u29B4': 'laemptyv', '\\u29B5': 'ohbar', '\\u29B6': 'omid', '\\u29B7': 'opar', '\\u29B9': 'operp', '\\u29BB': 'olcross', '\\u29BC': 'odsold', '\\u29BE': 'olcir', '\\u29BF': 'ofcir', '\\u29C0': 'olt', '\\u29C1': 'ogt', '\\u29C2': 'cirscir', '\\u29C3': 'cirE', '\\u29C4': 'solb', '\\u29C5': 'bsolb', '\\u29C9': 'boxbox', '\\u29CD': 'trisb', '\\u29CE': 'rtriltri', '\\u29CF': 'LeftTriangleBar', '\\u29CF\\u0338': 'NotLeftTriangleBar', '\\u29D0': 'RightTriangleBar', '\\u29D0\\u0338': 'NotRightTriangleBar', '\\u29DC': 'iinfin', '\\u29DD': 'infintie', '\\u29DE': 'nvinfin', '\\u29E3': 'eparsl', '\\u29E4': 'smeparsl', '\\u29E5': 'eqvparsl', '\\u29EB': 'lozf', '\\u29F4': 'RuleDelayed', '\\u29F6': 'dsol', '\\u2A00': 'xodot', '\\u2A01': 'xoplus', '\\u2A02': 'xotime', '\\u2A04': 'xuplus', '\\u2A06': 'xsqcup', '\\u2A0D': 'fpartint', '\\u2A10': 'cirfnint', '\\u2A11': 'awint', '\\u2A12': 'rppolint', '\\u2A13': 'scpolint', '\\u2A14': 'npolint', '\\u2A15': 'pointint', '\\u2A16': 'quatint', '\\u2A17': 'intlarhk', '\\u2A22': 'pluscir', '\\u2A23': 'plusacir', '\\u2A24': 'simplus', '\\u2A25': 'plusdu', '\\u2A26': 'plussim', '\\u2A27': 'plustwo', '\\u2A29': 'mcomma', '\\u2A2A': 'minusdu', '\\u2A2D': 'loplus', '\\u2A2E': 'roplus', '\\u2A2F': 'Cross', '\\u2A30': 'timesd', '\\u2A31': 'timesbar', '\\u2A33': 'smashp', '\\u2A34': 'lotimes', '\\u2A35': 'rotimes', '\\u2A36': 'otimesas', '\\u2A37': 'Otimes', '\\u2A38': 'odiv', '\\u2A39': 'triplus', '\\u2A3A': 'triminus', '\\u2A3B': 'tritime', '\\u2A3C': 'iprod', '\\u2A3F': 'amalg', '\\u2A40': 'capdot', '\\u2A42': 'ncup', '\\u2A43': 'ncap', '\\u2A44': 'capand', '\\u2A45': 'cupor', '\\u2A46': 'cupcap', '\\u2A47': 'capcup', '\\u2A48': 'cupbrcap', '\\u2A49': 'capbrcup', '\\u2A4A': 'cupcup', '\\u2A4B': 'capcap', '\\u2A4C': 'ccups', '\\u2A4D': 'ccaps', '\\u2A50': 'ccupssm', '\\u2A53': 'And', '\\u2A54': 'Or', '\\u2A55': 'andand', '\\u2A56': 'oror', '\\u2A57': 'orslope', '\\u2A58': 'andslope', '\\u2A5A': 'andv', '\\u2A5B': 'orv', '\\u2A5C': 'andd', '\\u2A5D': 'ord', '\\u2A5F': 'wedbar', '\\u2A66': 'sdote', '\\u2A6A': 'simdot', '\\u2A6D': 'congdot', '\\u2A6D\\u0338': 'ncongdot', '\\u2A6E': 'easter', '\\u2A6F': 'apacir', '\\u2A70': 'apE', '\\u2A70\\u0338': 'napE', '\\u2A71': 'eplus', '\\u2A72': 'pluse', '\\u2A73': 'Esim', '\\u2A77': 'eDDot', '\\u2A78': 'equivDD', '\\u2A79': 'ltcir', '\\u2A7A': 'gtcir', '\\u2A7B': 'ltquest', '\\u2A7C': 'gtquest', '\\u2A7D': 'les', '\\u2A7D\\u0338': 'nles', '\\u2A7E': 'ges', '\\u2A7E\\u0338': 'nges', '\\u2A7F': 'lesdot', '\\u2A80': 'gesdot', '\\u2A81': 'lesdoto', '\\u2A82': 'gesdoto', '\\u2A83': 'lesdotor', '\\u2A84': 'gesdotol', '\\u2A85': 'lap', '\\u2A86': 'gap', '\\u2A87': 'lne', '\\u2A88': 'gne', '\\u2A89': 'lnap', '\\u2A8A': 'gnap', '\\u2A8B': 'lEg', '\\u2A8C': 'gEl', '\\u2A8D': 'lsime', '\\u2A8E': 'gsime', '\\u2A8F': 'lsimg', '\\u2A90': 'gsiml', '\\u2A91': 'lgE', '\\u2A92': 'glE', '\\u2A93': 'lesges', '\\u2A94': 'gesles', '\\u2A95': 'els', '\\u2A96': 'egs', '\\u2A97': 'elsdot', '\\u2A98': 'egsdot', '\\u2A99': 'el', '\\u2A9A': 'eg', '\\u2A9D': 'siml', '\\u2A9E': 'simg', '\\u2A9F': 'simlE', '\\u2AA0': 'simgE', '\\u2AA1': 'LessLess', '\\u2AA1\\u0338': 'NotNestedLessLess', '\\u2AA2': 'GreaterGreater', '\\u2AA2\\u0338': 'NotNestedGreaterGreater', '\\u2AA4': 'glj', '\\u2AA5': 'gla', '\\u2AA6': 'ltcc', '\\u2AA7': 'gtcc', '\\u2AA8': 'lescc', '\\u2AA9': 'gescc', '\\u2AAA': 'smt', '\\u2AAB': 'lat', '\\u2AAC': 'smte', '\\u2AAC\\uFE00': 'smtes', '\\u2AAD': 'late', '\\u2AAD\\uFE00': 'lates', '\\u2AAE': 'bumpE', '\\u2AAF': 'pre', '\\u2AAF\\u0338': 'npre', '\\u2AB0': 'sce', '\\u2AB0\\u0338': 'nsce', '\\u2AB3': 'prE', '\\u2AB4': 'scE', '\\u2AB5': 'prnE', '\\u2AB6': 'scnE', '\\u2AB7': 'prap', '\\u2AB8': 'scap', '\\u2AB9': 'prnap', '\\u2ABA': 'scnap', '\\u2ABB': 'Pr', '\\u2ABC': 'Sc', '\\u2ABD': 'subdot', '\\u2ABE': 'supdot', '\\u2ABF': 'subplus', '\\u2AC0': 'supplus', '\\u2AC1': 'submult', '\\u2AC2': 'supmult', '\\u2AC3': 'subedot', '\\u2AC4': 'supedot', '\\u2AC5': 'subE', '\\u2AC5\\u0338': 'nsubE', '\\u2AC6': 'supE', '\\u2AC6\\u0338': 'nsupE', '\\u2AC7': 'subsim', '\\u2AC8': 'supsim', '\\u2ACB\\uFE00': 'vsubnE', '\\u2ACB': 'subnE', '\\u2ACC\\uFE00': 'vsupnE', '\\u2ACC': 'supnE', '\\u2ACF': 'csub', '\\u2AD0': 'csup', '\\u2AD1': 'csube', '\\u2AD2': 'csupe', '\\u2AD3': 'subsup', '\\u2AD4': 'supsub', '\\u2AD5': 'subsub', '\\u2AD6': 'supsup', '\\u2AD7': 'suphsub', '\\u2AD8': 'supdsub', '\\u2AD9': 'forkv', '\\u2ADA': 'topfork', '\\u2ADB': 'mlcp', '\\u2AE4': 'Dashv', '\\u2AE6': 'Vdashl', '\\u2AE7': 'Barv', '\\u2AE8': 'vBar', '\\u2AE9': 'vBarv', '\\u2AEB': 'Vbar', '\\u2AEC': 'Not', '\\u2AED': 'bNot', '\\u2AEE': 'rnmid', '\\u2AEF': 'cirmid', '\\u2AF0': 'midcir', '\\u2AF1': 'topcir', '\\u2AF2': 'nhpar', '\\u2AF3': 'parsim', '\\u2AFD': 'parsl', '\\u2AFD\\u20E5': 'nparsl', '\\u266D': 'flat', '\\u266E': 'natur', '\\u266F': 'sharp', '\\xA4': 'curren', '\\xA2': 'cent', '$': 'dollar', '\\xA3': 'pound', '\\xA5': 'yen', '\\u20AC': 'euro', '\\xB9': 'sup1', '\\xBD': 'half', '\\u2153': 'frac13', '\\xBC': 'frac14', '\\u2155': 'frac15', '\\u2159': 'frac16', '\\u215B': 'frac18', '\\xB2': 'sup2', '\\u2154': 'frac23', '\\u2156': 'frac25', '\\xB3': 'sup3', '\\xBE': 'frac34', '\\u2157': 'frac35', '\\u215C': 'frac38', '\\u2158': 'frac45', '\\u215A': 'frac56', '\\u215D': 'frac58', '\\u215E': 'frac78', '\\uD835\\uDCB6': 'ascr', '\\uD835\\uDD52': 'aopf', '\\uD835\\uDD1E': 'afr', '\\uD835\\uDD38': 'Aopf', '\\uD835\\uDD04': 'Afr', '\\uD835\\uDC9C': 'Ascr', '\\xAA': 'ordf', '\\xE1': 'aacute', '\\xC1': 'Aacute', '\\xE0': 'agrave', '\\xC0': 'Agrave', '\\u0103': 'abreve', '\\u0102': 'Abreve', '\\xE2': 'acirc', '\\xC2': 'Acirc', '\\xE5': 'aring', '\\xC5': 'angst', '\\xE4': 'auml', '\\xC4': 'Auml', '\\xE3': 'atilde', '\\xC3': 'Atilde', '\\u0105': 'aogon', '\\u0104': 'Aogon', '\\u0101': 'amacr', '\\u0100': 'Amacr', '\\xE6': 'aelig', '\\xC6': 'AElig', '\\uD835\\uDCB7': 'bscr', '\\uD835\\uDD53': 'bopf', '\\uD835\\uDD1F': 'bfr', '\\uD835\\uDD39': 'Bopf', '\\u212C': 'Bscr', '\\uD835\\uDD05': 'Bfr', '\\uD835\\uDD20': 'cfr', '\\uD835\\uDCB8': 'cscr', '\\uD835\\uDD54': 'copf', '\\u212D': 'Cfr', '\\uD835\\uDC9E': 'Cscr', '\\u2102': 'Copf', '\\u0107': 'cacute', '\\u0106': 'Cacute', '\\u0109': 'ccirc', '\\u0108': 'Ccirc', '\\u010D': 'ccaron', '\\u010C': 'Ccaron', '\\u010B': 'cdot', '\\u010A': 'Cdot', '\\xE7': 'ccedil', '\\xC7': 'Ccedil', '\\u2105': 'incare', '\\uD835\\uDD21': 'dfr', '\\u2146': 'dd', '\\uD835\\uDD55': 'dopf', '\\uD835\\uDCB9': 'dscr', '\\uD835\\uDC9F': 'Dscr', '\\uD835\\uDD07': 'Dfr', '\\u2145': 'DD', '\\uD835\\uDD3B': 'Dopf', '\\u010F': 'dcaron', '\\u010E': 'Dcaron', '\\u0111': 'dstrok', '\\u0110': 'Dstrok', '\\xF0': 'eth', '\\xD0': 'ETH', '\\u2147': 'ee', '\\u212F': 'escr', '\\uD835\\uDD22': 'efr', '\\uD835\\uDD56': 'eopf', '\\u2130': 'Escr', '\\uD835\\uDD08': 'Efr', '\\uD835\\uDD3C': 'Eopf', '\\xE9': 'eacute', '\\xC9': 'Eacute', '\\xE8': 'egrave', '\\xC8': 'Egrave', '\\xEA': 'ecirc', '\\xCA': 'Ecirc', '\\u011B': 'ecaron', '\\u011A': 'Ecaron', '\\xEB': 'euml', '\\xCB': 'Euml', '\\u0117': 'edot', '\\u0116': 'Edot', '\\u0119': 'eogon', '\\u0118': 'Eogon', '\\u0113': 'emacr', '\\u0112': 'Emacr', '\\uD835\\uDD23': 'ffr', '\\uD835\\uDD57': 'fopf', '\\uD835\\uDCBB': 'fscr', '\\uD835\\uDD09': 'Ffr', '\\uD835\\uDD3D': 'Fopf', '\\u2131': 'Fscr', '\\uFB00': 'fflig', '\\uFB03': 'ffilig', '\\uFB04': 'ffllig', '\\uFB01': 'filig', 'fj': 'fjlig', '\\uFB02': 'fllig', '\\u0192': 'fnof', '\\u210A': 'gscr', '\\uD835\\uDD58': 'gopf', '\\uD835\\uDD24': 'gfr', '\\uD835\\uDCA2': 'Gscr', '\\uD835\\uDD3E': 'Gopf', '\\uD835\\uDD0A': 'Gfr', '\\u01F5': 'gacute', '\\u011F': 'gbreve', '\\u011E': 'Gbreve', '\\u011D': 'gcirc', '\\u011C': 'Gcirc', '\\u0121': 'gdot', '\\u0120': 'Gdot', '\\u0122': 'Gcedil', '\\uD835\\uDD25': 'hfr', '\\u210E': 'planckh', '\\uD835\\uDCBD': 'hscr', '\\uD835\\uDD59': 'hopf', '\\u210B': 'Hscr', '\\u210C': 'Hfr', '\\u210D': 'Hopf', '\\u0125': 'hcirc', '\\u0124': 'Hcirc', '\\u210F': 'hbar', '\\u0127': 'hstrok', '\\u0126': 'Hstrok', '\\uD835\\uDD5A': 'iopf', '\\uD835\\uDD26': 'ifr', '\\uD835\\uDCBE': 'iscr', '\\u2148': 'ii', '\\uD835\\uDD40': 'Iopf', '\\u2110': 'Iscr', '\\u2111': 'Im', '\\xED': 'iacute', '\\xCD': 'Iacute', '\\xEC': 'igrave', '\\xCC': 'Igrave', '\\xEE': 'icirc', '\\xCE': 'Icirc', '\\xEF': 'iuml', '\\xCF': 'Iuml', '\\u0129': 'itilde', '\\u0128': 'Itilde', '\\u0130': 'Idot', '\\u012F': 'iogon', '\\u012E': 'Iogon', '\\u012B': 'imacr', '\\u012A': 'Imacr', '\\u0133': 'ijlig', '\\u0132': 'IJlig', '\\u0131': 'imath', '\\uD835\\uDCBF': 'jscr', '\\uD835\\uDD5B': 'jopf', '\\uD835\\uDD27': 'jfr', '\\uD835\\uDCA5': 'Jscr', '\\uD835\\uDD0D': 'Jfr', '\\uD835\\uDD41': 'Jopf', '\\u0135': 'jcirc', '\\u0134': 'Jcirc', '\\u0237': 'jmath', '\\uD835\\uDD5C': 'kopf', '\\uD835\\uDCC0': 'kscr', '\\uD835\\uDD28': 'kfr', '\\uD835\\uDCA6': 'Kscr', '\\uD835\\uDD42': 'Kopf', '\\uD835\\uDD0E': 'Kfr', '\\u0137': 'kcedil', '\\u0136': 'Kcedil', '\\uD835\\uDD29': 'lfr', '\\uD835\\uDCC1': 'lscr', '\\u2113': 'ell', '\\uD835\\uDD5D': 'lopf', '\\u2112': 'Lscr', '\\uD835\\uDD0F': 'Lfr', '\\uD835\\uDD43': 'Lopf', '\\u013A': 'lacute', '\\u0139': 'Lacute', '\\u013E': 'lcaron', '\\u013D': 'Lcaron', '\\u013C': 'lcedil', '\\u013B': 'Lcedil', '\\u0142': 'lstrok', '\\u0141': 'Lstrok', '\\u0140': 'lmidot', '\\u013F': 'Lmidot', '\\uD835\\uDD2A': 'mfr', '\\uD835\\uDD5E': 'mopf', '\\uD835\\uDCC2': 'mscr', '\\uD835\\uDD10': 'Mfr', '\\uD835\\uDD44': 'Mopf', '\\u2133': 'Mscr', '\\uD835\\uDD2B': 'nfr', '\\uD835\\uDD5F': 'nopf', '\\uD835\\uDCC3': 'nscr', '\\u2115': 'Nopf', '\\uD835\\uDCA9': 'Nscr', '\\uD835\\uDD11': 'Nfr', '\\u0144': 'nacute', '\\u0143': 'Nacute', '\\u0148': 'ncaron', '\\u0147': 'Ncaron', '\\xF1': 'ntilde', '\\xD1': 'Ntilde', '\\u0146': 'ncedil', '\\u0145': 'Ncedil', '\\u2116': 'numero', '\\u014B': 'eng', '\\u014A': 'ENG', '\\uD835\\uDD60': 'oopf', '\\uD835\\uDD2C': 'ofr', '\\u2134': 'oscr', '\\uD835\\uDCAA': 'Oscr', '\\uD835\\uDD12': 'Ofr', '\\uD835\\uDD46': 'Oopf', '\\xBA': 'ordm', '\\xF3': 'oacute', '\\xD3': 'Oacute', '\\xF2': 'ograve', '\\xD2': 'Ograve', '\\xF4': 'ocirc', '\\xD4': 'Ocirc', '\\xF6': 'ouml', '\\xD6': 'Ouml', '\\u0151': 'odblac', '\\u0150': 'Odblac', '\\xF5': 'otilde', '\\xD5': 'Otilde', '\\xF8': 'oslash', '\\xD8': 'Oslash', '\\u014D': 'omacr', '\\u014C': 'Omacr', '\\u0153': 'oelig', '\\u0152': 'OElig', '\\uD835\\uDD2D': 'pfr', '\\uD835\\uDCC5': 'pscr', '\\uD835\\uDD61': 'popf', '\\u2119': 'Popf', '\\uD835\\uDD13': 'Pfr', '\\uD835\\uDCAB': 'Pscr', '\\uD835\\uDD62': 'qopf', '\\uD835\\uDD2E': 'qfr', '\\uD835\\uDCC6': 'qscr', '\\uD835\\uDCAC': 'Qscr', '\\uD835\\uDD14': 'Qfr', '\\u211A': 'Qopf', '\\u0138': 'kgreen', '\\uD835\\uDD2F': 'rfr', '\\uD835\\uDD63': 'ropf', '\\uD835\\uDCC7': 'rscr', '\\u211B': 'Rscr', '\\u211C': 'Re', '\\u211D': 'Ropf', '\\u0155': 'racute', '\\u0154': 'Racute', '\\u0159': 'rcaron', '\\u0158': 'Rcaron', '\\u0157': 'rcedil', '\\u0156': 'Rcedil', '\\uD835\\uDD64': 'sopf', '\\uD835\\uDCC8': 'sscr', '\\uD835\\uDD30': 'sfr', '\\uD835\\uDD4A': 'Sopf', '\\uD835\\uDD16': 'Sfr', '\\uD835\\uDCAE': 'Sscr', '\\u24C8': 'oS', '\\u015B': 'sacute', '\\u015A': 'Sacute', '\\u015D': 'scirc', '\\u015C': 'Scirc', '\\u0161': 'scaron', '\\u0160': 'Scaron', '\\u015F': 'scedil', '\\u015E': 'Scedil', '\\xDF': 'szlig', '\\uD835\\uDD31': 'tfr', '\\uD835\\uDCC9': 'tscr', '\\uD835\\uDD65': 'topf', '\\uD835\\uDCAF': 'Tscr', '\\uD835\\uDD17': 'Tfr', '\\uD835\\uDD4B': 'Topf', '\\u0165': 'tcaron', '\\u0164': 'Tcaron', '\\u0163': 'tcedil', '\\u0162': 'Tcedil', '\\u2122': 'trade', '\\u0167': 'tstrok', '\\u0166': 'Tstrok', '\\uD835\\uDCCA': 'uscr', '\\uD835\\uDD66': 'uopf', '\\uD835\\uDD32': 'ufr', '\\uD835\\uDD4C': 'Uopf', '\\uD835\\uDD18': 'Ufr', '\\uD835\\uDCB0': 'Uscr', '\\xFA': 'uacute', '\\xDA': 'Uacute', '\\xF9': 'ugrave', '\\xD9': 'Ugrave', '\\u016D': 'ubreve', '\\u016C': 'Ubreve', '\\xFB': 'ucirc', '\\xDB': 'Ucirc', '\\u016F': 'uring', '\\u016E': 'Uring', '\\xFC': 'uuml', '\\xDC': 'Uuml', '\\u0171': 'udblac', '\\u0170': 'Udblac', '\\u0169': 'utilde', '\\u0168': 'Utilde', '\\u0173': 'uogon', '\\u0172': 'Uogon', '\\u016B': 'umacr', '\\u016A': 'Umacr', '\\uD835\\uDD33': 'vfr', '\\uD835\\uDD67': 'vopf', '\\uD835\\uDCCB': 'vscr', '\\uD835\\uDD19': 'Vfr', '\\uD835\\uDD4D': 'Vopf', '\\uD835\\uDCB1': 'Vscr', '\\uD835\\uDD68': 'wopf', '\\uD835\\uDCCC': 'wscr', '\\uD835\\uDD34': 'wfr', '\\uD835\\uDCB2': 'Wscr', '\\uD835\\uDD4E': 'Wopf', '\\uD835\\uDD1A': 'Wfr', '\\u0175': 'wcirc', '\\u0174': 'Wcirc', '\\uD835\\uDD35': 'xfr', '\\uD835\\uDCCD': 'xscr', '\\uD835\\uDD69': 'xopf', '\\uD835\\uDD4F': 'Xopf', '\\uD835\\uDD1B': 'Xfr', '\\uD835\\uDCB3': 'Xscr', '\\uD835\\uDD36': 'yfr', '\\uD835\\uDCCE': 'yscr', '\\uD835\\uDD6A': 'yopf', '\\uD835\\uDCB4': 'Yscr', '\\uD835\\uDD1C': 'Yfr', '\\uD835\\uDD50': 'Yopf', '\\xFD': 'yacute', '\\xDD': 'Yacute', '\\u0177': 'ycirc', '\\u0176': 'Ycirc', '\\xFF': 'yuml', '\\u0178': 'Yuml', '\\uD835\\uDCCF': 'zscr', '\\uD835\\uDD37': 'zfr', '\\uD835\\uDD6B': 'zopf', '\\u2128': 'Zfr', '\\u2124': 'Zopf', '\\uD835\\uDCB5': 'Zscr', '\\u017A': 'zacute', '\\u0179': 'Zacute', '\\u017E': 'zcaron', '\\u017D': 'Zcaron', '\\u017C': 'zdot', '\\u017B': 'Zdot', '\\u01B5': 'imped', '\\xFE': 'thorn', '\\xDE': 'THORN', '\\u0149': 'napos', '\\u03B1': 'alpha', '\\u0391': 'Alpha', '\\u03B2': 'beta', '\\u0392': 'Beta', '\\u03B3': 'gamma', '\\u0393': 'Gamma', '\\u03B4': 'delta', '\\u0394': 'Delta', '\\u03B5': 'epsi', '\\u03F5': 'epsiv', '\\u0395': 'Epsilon', '\\u03DD': 'gammad', '\\u03DC': 'Gammad', '\\u03B6': 'zeta', '\\u0396': 'Zeta', '\\u03B7': 'eta', '\\u0397': 'Eta', '\\u03B8': 'theta', '\\u03D1': 'thetav', '\\u0398': 'Theta', '\\u03B9': 'iota', '\\u0399': 'Iota', '\\u03BA': 'kappa', '\\u03F0': 'kappav', '\\u039A': 'Kappa', '\\u03BB': 'lambda', '\\u039B': 'Lambda', '\\u03BC': 'mu', '\\xB5': 'micro', '\\u039C': 'Mu', '\\u03BD': 'nu', '\\u039D': 'Nu', '\\u03BE': 'xi', '\\u039E': 'Xi', '\\u03BF': 'omicron', '\\u039F': 'Omicron', '\\u03C0': 'pi', '\\u03D6': 'piv', '\\u03A0': 'Pi', '\\u03C1': 'rho', '\\u03F1': 'rhov', '\\u03A1': 'Rho', '\\u03C3': 'sigma', '\\u03A3': 'Sigma', '\\u03C2': 'sigmaf', '\\u03C4': 'tau', '\\u03A4': 'Tau', '\\u03C5': 'upsi', '\\u03A5': 'Upsilon', '\\u03D2': 'Upsi', '\\u03C6': 'phi', '\\u03D5': 'phiv', '\\u03A6': 'Phi', '\\u03C7': 'chi', '\\u03A7': 'Chi', '\\u03C8': 'psi', '\\u03A8': 'Psi', '\\u03C9': 'omega', '\\u03A9': 'ohm', '\\u0430': 'acy', '\\u0410': 'Acy', '\\u0431': 'bcy', '\\u0411': 'Bcy', '\\u0432': 'vcy', '\\u0412': 'Vcy', '\\u0433': 'gcy', '\\u0413': 'Gcy', '\\u0453': 'gjcy', '\\u0403': 'GJcy', '\\u0434': 'dcy', '\\u0414': 'Dcy', '\\u0452': 'djcy', '\\u0402': 'DJcy', '\\u0435': 'iecy', '\\u0415': 'IEcy', '\\u0451': 'iocy', '\\u0401': 'IOcy', '\\u0454': 'jukcy', '\\u0404': 'Jukcy', '\\u0436': 'zhcy', '\\u0416': 'ZHcy', '\\u0437': 'zcy', '\\u0417': 'Zcy', '\\u0455': 'dscy', '\\u0405': 'DScy', '\\u0438': 'icy', '\\u0418': 'Icy', '\\u0456': 'iukcy', '\\u0406': 'Iukcy', '\\u0457': 'yicy', '\\u0407': 'YIcy', '\\u0439': 'jcy', '\\u0419': 'Jcy', '\\u0458': 'jsercy', '\\u0408': 'Jsercy', '\\u043A': 'kcy', '\\u041A': 'Kcy', '\\u045C': 'kjcy', '\\u040C': 'KJcy', '\\u043B': 'lcy', '\\u041B': 'Lcy', '\\u0459': 'ljcy', '\\u0409': 'LJcy', '\\u043C': 'mcy', '\\u041C': 'Mcy', '\\u043D': 'ncy', '\\u041D': 'Ncy', '\\u045A': 'njcy', '\\u040A': 'NJcy', '\\u043E': 'ocy', '\\u041E': 'Ocy', '\\u043F': 'pcy', '\\u041F': 'Pcy', '\\u0440': 'rcy', '\\u0420': 'Rcy', '\\u0441': 'scy', '\\u0421': 'Scy', '\\u0442': 'tcy', '\\u0422': 'Tcy', '\\u045B': 'tshcy', '\\u040B': 'TSHcy', '\\u0443': 'ucy', '\\u0423': 'Ucy', '\\u045E': 'ubrcy', '\\u040E': 'Ubrcy', '\\u0444': 'fcy', '\\u0424': 'Fcy', '\\u0445': 'khcy', '\\u0425': 'KHcy', '\\u0446': 'tscy', '\\u0426': 'TScy', '\\u0447': 'chcy', '\\u0427': 'CHcy', '\\u045F': 'dzcy', '\\u040F': 'DZcy', '\\u0448': 'shcy', '\\u0428': 'SHcy', '\\u0449': 'shchcy', '\\u0429': 'SHCHcy', '\\u044A': 'hardcy', '\\u042A': 'HARDcy', '\\u044B': 'ycy', '\\u042B': 'Ycy', '\\u044C': 'softcy', '\\u042C': 'SOFTcy', '\\u044D': 'ecy', '\\u042D': 'Ecy', '\\u044E': 'yucy', '\\u042E': 'YUcy', '\\u044F': 'yacy', '\\u042F': 'YAcy', '\\u2135': 'aleph', '\\u2136': 'beth', '\\u2137': 'gimel', '\\u2138': 'daleth' };\n\n\tvar regexEscape = /[\"&'<>`]/g;\n\tvar escapeMap = {\n\t\t'\"': '"',\n\t\t'&': '&',\n\t\t'\\'': ''',\n\t\t'<': '<',\n\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n\t\t// following is not strictly necessary unless it’s part of a tag or an\n\t\t// unquoted attribute value. We’re only escaping it to support those\n\t\t// situations, and for XML support.\n\t\t'>': '>',\n\t\t// In Internet Explorer ≤ 8, the backtick character can be used\n\t\t// to break out of (un)quoted attribute values or HTML comments.\n\t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\n\t\t// http://html5sec.org/#133.\n\t\t'`': '`'\n\t};\n\n\tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\n\tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\n\tvar decodeMap = { 'aacute': '\\xE1', 'Aacute': '\\xC1', 'abreve': '\\u0103', 'Abreve': '\\u0102', 'ac': '\\u223E', 'acd': '\\u223F', 'acE': '\\u223E\\u0333', 'acirc': '\\xE2', 'Acirc': '\\xC2', 'acute': '\\xB4', 'acy': '\\u0430', 'Acy': '\\u0410', 'aelig': '\\xE6', 'AElig': '\\xC6', 'af': '\\u2061', 'afr': '\\uD835\\uDD1E', 'Afr': '\\uD835\\uDD04', 'agrave': '\\xE0', 'Agrave': '\\xC0', 'alefsym': '\\u2135', 'aleph': '\\u2135', 'alpha': '\\u03B1', 'Alpha': '\\u0391', 'amacr': '\\u0101', 'Amacr': '\\u0100', 'amalg': '\\u2A3F', 'amp': '&', 'AMP': '&', 'and': '\\u2227', 'And': '\\u2A53', 'andand': '\\u2A55', 'andd': '\\u2A5C', 'andslope': '\\u2A58', 'andv': '\\u2A5A', 'ang': '\\u2220', 'ange': '\\u29A4', 'angle': '\\u2220', 'angmsd': '\\u2221', 'angmsdaa': '\\u29A8', 'angmsdab': '\\u29A9', 'angmsdac': '\\u29AA', 'angmsdad': '\\u29AB', 'angmsdae': '\\u29AC', 'angmsdaf': '\\u29AD', 'angmsdag': '\\u29AE', 'angmsdah': '\\u29AF', 'angrt': '\\u221F', 'angrtvb': '\\u22BE', 'angrtvbd': '\\u299D', 'angsph': '\\u2222', 'angst': '\\xC5', 'angzarr': '\\u237C', 'aogon': '\\u0105', 'Aogon': '\\u0104', 'aopf': '\\uD835\\uDD52', 'Aopf': '\\uD835\\uDD38', 'ap': '\\u2248', 'apacir': '\\u2A6F', 'ape': '\\u224A', 'apE': '\\u2A70', 'apid': '\\u224B', 'apos': '\\'', 'ApplyFunction': '\\u2061', 'approx': '\\u2248', 'approxeq': '\\u224A', 'aring': '\\xE5', 'Aring': '\\xC5', 'ascr': '\\uD835\\uDCB6', 'Ascr': '\\uD835\\uDC9C', 'Assign': '\\u2254', 'ast': '*', 'asymp': '\\u2248', 'asympeq': '\\u224D', 'atilde': '\\xE3', 'Atilde': '\\xC3', 'auml': '\\xE4', 'Auml': '\\xC4', 'awconint': '\\u2233', 'awint': '\\u2A11', 'backcong': '\\u224C', 'backepsilon': '\\u03F6', 'backprime': '\\u2035', 'backsim': '\\u223D', 'backsimeq': '\\u22CD', 'Backslash': '\\u2216', 'Barv': '\\u2AE7', 'barvee': '\\u22BD', 'barwed': '\\u2305', 'Barwed': '\\u2306', 'barwedge': '\\u2305', 'bbrk': '\\u23B5', 'bbrktbrk': '\\u23B6', 'bcong': '\\u224C', 'bcy': '\\u0431', 'Bcy': '\\u0411', 'bdquo': '\\u201E', 'becaus': '\\u2235', 'because': '\\u2235', 'Because': '\\u2235', 'bemptyv': '\\u29B0', 'bepsi': '\\u03F6', 'bernou': '\\u212C', 'Bernoullis': '\\u212C', 'beta': '\\u03B2', 'Beta': '\\u0392', 'beth': '\\u2136', 'between': '\\u226C', 'bfr': '\\uD835\\uDD1F', 'Bfr': '\\uD835\\uDD05', 'bigcap': '\\u22C2', 'bigcirc': '\\u25EF', 'bigcup': '\\u22C3', 'bigodot': '\\u2A00', 'bigoplus': '\\u2A01', 'bigotimes': '\\u2A02', 'bigsqcup': '\\u2A06', 'bigstar': '\\u2605', 'bigtriangledown': '\\u25BD', 'bigtriangleup': '\\u25B3', 'biguplus': '\\u2A04', 'bigvee': '\\u22C1', 'bigwedge': '\\u22C0', 'bkarow': '\\u290D', 'blacklozenge': '\\u29EB', 'blacksquare': '\\u25AA', 'blacktriangle': '\\u25B4', 'blacktriangledown': '\\u25BE', 'blacktriangleleft': '\\u25C2', 'blacktriangleright': '\\u25B8', 'blank': '\\u2423', 'blk12': '\\u2592', 'blk14': '\\u2591', 'blk34': '\\u2593', 'block': '\\u2588', 'bne': '=\\u20E5', 'bnequiv': '\\u2261\\u20E5', 'bnot': '\\u2310', 'bNot': '\\u2AED', 'bopf': '\\uD835\\uDD53', 'Bopf': '\\uD835\\uDD39', 'bot': '\\u22A5', 'bottom': '\\u22A5', 'bowtie': '\\u22C8', 'boxbox': '\\u29C9', 'boxdl': '\\u2510', 'boxdL': '\\u2555', 'boxDl': '\\u2556', 'boxDL': '\\u2557', 'boxdr': '\\u250C', 'boxdR': '\\u2552', 'boxDr': '\\u2553', 'boxDR': '\\u2554', 'boxh': '\\u2500', 'boxH': '\\u2550', 'boxhd': '\\u252C', 'boxhD': '\\u2565', 'boxHd': '\\u2564', 'boxHD': '\\u2566', 'boxhu': '\\u2534', 'boxhU': '\\u2568', 'boxHu': '\\u2567', 'boxHU': '\\u2569', 'boxminus': '\\u229F', 'boxplus': '\\u229E', 'boxtimes': '\\u22A0', 'boxul': '\\u2518', 'boxuL': '\\u255B', 'boxUl': '\\u255C', 'boxUL': '\\u255D', 'boxur': '\\u2514', 'boxuR': '\\u2558', 'boxUr': '\\u2559', 'boxUR': '\\u255A', 'boxv': '\\u2502', 'boxV': '\\u2551', 'boxvh': '\\u253C', 'boxvH': '\\u256A', 'boxVh': '\\u256B', 'boxVH': '\\u256C', 'boxvl': '\\u2524', 'boxvL': '\\u2561', 'boxVl': '\\u2562', 'boxVL': '\\u2563', 'boxvr': '\\u251C', 'boxvR': '\\u255E', 'boxVr': '\\u255F', 'boxVR': '\\u2560', 'bprime': '\\u2035', 'breve': '\\u02D8', 'Breve': '\\u02D8', 'brvbar': '\\xA6', 'bscr': '\\uD835\\uDCB7', 'Bscr': '\\u212C', 'bsemi': '\\u204F', 'bsim': '\\u223D', 'bsime': '\\u22CD', 'bsol': '\\\\', 'bsolb': '\\u29C5', 'bsolhsub': '\\u27C8', 'bull': '\\u2022', 'bullet': '\\u2022', 'bump': '\\u224E', 'bumpe': '\\u224F', 'bumpE': '\\u2AAE', 'bumpeq': '\\u224F', 'Bumpeq': '\\u224E', 'cacute': '\\u0107', 'Cacute': '\\u0106', 'cap': '\\u2229', 'Cap': '\\u22D2', 'capand': '\\u2A44', 'capbrcup': '\\u2A49', 'capcap': '\\u2A4B', 'capcup': '\\u2A47', 'capdot': '\\u2A40', 'CapitalDifferentialD': '\\u2145', 'caps': '\\u2229\\uFE00', 'caret': '\\u2041', 'caron': '\\u02C7', 'Cayleys': '\\u212D', 'ccaps': '\\u2A4D', 'ccaron': '\\u010D', 'Ccaron': '\\u010C', 'ccedil': '\\xE7', 'Ccedil': '\\xC7', 'ccirc': '\\u0109', 'Ccirc': '\\u0108', 'Cconint': '\\u2230', 'ccups': '\\u2A4C', 'ccupssm': '\\u2A50', 'cdot': '\\u010B', 'Cdot': '\\u010A', 'cedil': '\\xB8', 'Cedilla': '\\xB8', 'cemptyv': '\\u29B2', 'cent': '\\xA2', 'centerdot': '\\xB7', 'CenterDot': '\\xB7', 'cfr': '\\uD835\\uDD20', 'Cfr': '\\u212D', 'chcy': '\\u0447', 'CHcy': '\\u0427', 'check': '\\u2713', 'checkmark': '\\u2713', 'chi': '\\u03C7', 'Chi': '\\u03A7', 'cir': '\\u25CB', 'circ': '\\u02C6', 'circeq': '\\u2257', 'circlearrowleft': '\\u21BA', 'circlearrowright': '\\u21BB', 'circledast': '\\u229B', 'circledcirc': '\\u229A', 'circleddash': '\\u229D', 'CircleDot': '\\u2299', 'circledR': '\\xAE', 'circledS': '\\u24C8', 'CircleMinus': '\\u2296', 'CirclePlus': '\\u2295', 'CircleTimes': '\\u2297', 'cire': '\\u2257', 'cirE': '\\u29C3', 'cirfnint': '\\u2A10', 'cirmid': '\\u2AEF', 'cirscir': '\\u29C2', 'ClockwiseContourIntegral': '\\u2232', 'CloseCurlyDoubleQuote': '\\u201D', 'CloseCurlyQuote': '\\u2019', 'clubs': '\\u2663', 'clubsuit': '\\u2663', 'colon': ':', 'Colon': '\\u2237', 'colone': '\\u2254', 'Colone': '\\u2A74', 'coloneq': '\\u2254', 'comma': ',', 'commat': '@', 'comp': '\\u2201', 'compfn': '\\u2218', 'complement': '\\u2201', 'complexes': '\\u2102', 'cong': '\\u2245', 'congdot': '\\u2A6D', 'Congruent': '\\u2261', 'conint': '\\u222E', 'Conint': '\\u222F', 'ContourIntegral': '\\u222E', 'copf': '\\uD835\\uDD54', 'Copf': '\\u2102', 'coprod': '\\u2210', 'Coproduct': '\\u2210', 'copy': '\\xA9', 'COPY': '\\xA9', 'copysr': '\\u2117', 'CounterClockwiseContourIntegral': '\\u2233', 'crarr': '\\u21B5', 'cross': '\\u2717', 'Cross': '\\u2A2F', 'cscr': '\\uD835\\uDCB8', 'Cscr': '\\uD835\\uDC9E', 'csub': '\\u2ACF', 'csube': '\\u2AD1', 'csup': '\\u2AD0', 'csupe': '\\u2AD2', 'ctdot': '\\u22EF', 'cudarrl': '\\u2938', 'cudarrr': '\\u2935', 'cuepr': '\\u22DE', 'cuesc': '\\u22DF', 'cularr': '\\u21B6', 'cularrp': '\\u293D', 'cup': '\\u222A', 'Cup': '\\u22D3', 'cupbrcap': '\\u2A48', 'cupcap': '\\u2A46', 'CupCap': '\\u224D', 'cupcup': '\\u2A4A', 'cupdot': '\\u228D', 'cupor': '\\u2A45', 'cups': '\\u222A\\uFE00', 'curarr': '\\u21B7', 'curarrm': '\\u293C', 'curlyeqprec': '\\u22DE', 'curlyeqsucc': '\\u22DF', 'curlyvee': '\\u22CE', 'curlywedge': '\\u22CF', 'curren': '\\xA4', 'curvearrowleft': '\\u21B6', 'curvearrowright': '\\u21B7', 'cuvee': '\\u22CE', 'cuwed': '\\u22CF', 'cwconint': '\\u2232', 'cwint': '\\u2231', 'cylcty': '\\u232D', 'dagger': '\\u2020', 'Dagger': '\\u2021', 'daleth': '\\u2138', 'darr': '\\u2193', 'dArr': '\\u21D3', 'Darr': '\\u21A1', 'dash': '\\u2010', 'dashv': '\\u22A3', 'Dashv': '\\u2AE4', 'dbkarow': '\\u290F', 'dblac': '\\u02DD', 'dcaron': '\\u010F', 'Dcaron': '\\u010E', 'dcy': '\\u0434', 'Dcy': '\\u0414', 'dd': '\\u2146', 'DD': '\\u2145', 'ddagger': '\\u2021', 'ddarr': '\\u21CA', 'DDotrahd': '\\u2911', 'ddotseq': '\\u2A77', 'deg': '\\xB0', 'Del': '\\u2207', 'delta': '\\u03B4', 'Delta': '\\u0394', 'demptyv': '\\u29B1', 'dfisht': '\\u297F', 'dfr': '\\uD835\\uDD21', 'Dfr': '\\uD835\\uDD07', 'dHar': '\\u2965', 'dharl': '\\u21C3', 'dharr': '\\u21C2', 'DiacriticalAcute': '\\xB4', 'DiacriticalDot': '\\u02D9', 'DiacriticalDoubleAcute': '\\u02DD', 'DiacriticalGrave': '`', 'DiacriticalTilde': '\\u02DC', 'diam': '\\u22C4', 'diamond': '\\u22C4', 'Diamond': '\\u22C4', 'diamondsuit': '\\u2666', 'diams': '\\u2666', 'die': '\\xA8', 'DifferentialD': '\\u2146', 'digamma': '\\u03DD', 'disin': '\\u22F2', 'div': '\\xF7', 'divide': '\\xF7', 'divideontimes': '\\u22C7', 'divonx': '\\u22C7', 'djcy': '\\u0452', 'DJcy': '\\u0402', 'dlcorn': '\\u231E', 'dlcrop': '\\u230D', 'dollar': '$', 'dopf': '\\uD835\\uDD55', 'Dopf': '\\uD835\\uDD3B', 'dot': '\\u02D9', 'Dot': '\\xA8', 'DotDot': '\\u20DC', 'doteq': '\\u2250', 'doteqdot': '\\u2251', 'DotEqual': '\\u2250', 'dotminus': '\\u2238', 'dotplus': '\\u2214', 'dotsquare': '\\u22A1', 'doublebarwedge': '\\u2306', 'DoubleContourIntegral': '\\u222F', 'DoubleDot': '\\xA8', 'DoubleDownArrow': '\\u21D3', 'DoubleLeftArrow': '\\u21D0', 'DoubleLeftRightArrow': '\\u21D4', 'DoubleLeftTee': '\\u2AE4', 'DoubleLongLeftArrow': '\\u27F8', 'DoubleLongLeftRightArrow': '\\u27FA', 'DoubleLongRightArrow': '\\u27F9', 'DoubleRightArrow': '\\u21D2', 'DoubleRightTee': '\\u22A8', 'DoubleUpArrow': '\\u21D1', 'DoubleUpDownArrow': '\\u21D5', 'DoubleVerticalBar': '\\u2225', 'downarrow': '\\u2193', 'Downarrow': '\\u21D3', 'DownArrow': '\\u2193', 'DownArrowBar': '\\u2913', 'DownArrowUpArrow': '\\u21F5', 'DownBreve': '\\u0311', 'downdownarrows': '\\u21CA', 'downharpoonleft': '\\u21C3', 'downharpoonright': '\\u21C2', 'DownLeftRightVector': '\\u2950', 'DownLeftTeeVector': '\\u295E', 'DownLeftVector': '\\u21BD', 'DownLeftVectorBar': '\\u2956', 'DownRightTeeVector': '\\u295F', 'DownRightVector': '\\u21C1', 'DownRightVectorBar': '\\u2957', 'DownTee': '\\u22A4', 'DownTeeArrow': '\\u21A7', 'drbkarow': '\\u2910', 'drcorn': '\\u231F', 'drcrop': '\\u230C', 'dscr': '\\uD835\\uDCB9', 'Dscr': '\\uD835\\uDC9F', 'dscy': '\\u0455', 'DScy': '\\u0405', 'dsol': '\\u29F6', 'dstrok': '\\u0111', 'Dstrok': '\\u0110', 'dtdot': '\\u22F1', 'dtri': '\\u25BF', 'dtrif': '\\u25BE', 'duarr': '\\u21F5', 'duhar': '\\u296F', 'dwangle': '\\u29A6', 'dzcy': '\\u045F', 'DZcy': '\\u040F', 'dzigrarr': '\\u27FF', 'eacute': '\\xE9', 'Eacute': '\\xC9', 'easter': '\\u2A6E', 'ecaron': '\\u011B', 'Ecaron': '\\u011A', 'ecir': '\\u2256', 'ecirc': '\\xEA', 'Ecirc': '\\xCA', 'ecolon': '\\u2255', 'ecy': '\\u044D', 'Ecy': '\\u042D', 'eDDot': '\\u2A77', 'edot': '\\u0117', 'eDot': '\\u2251', 'Edot': '\\u0116', 'ee': '\\u2147', 'efDot': '\\u2252', 'efr': '\\uD835\\uDD22', 'Efr': '\\uD835\\uDD08', 'eg': '\\u2A9A', 'egrave': '\\xE8', 'Egrave': '\\xC8', 'egs': '\\u2A96', 'egsdot': '\\u2A98', 'el': '\\u2A99', 'Element': '\\u2208', 'elinters': '\\u23E7', 'ell': '\\u2113', 'els': '\\u2A95', 'elsdot': '\\u2A97', 'emacr': '\\u0113', 'Emacr': '\\u0112', 'empty': '\\u2205', 'emptyset': '\\u2205', 'EmptySmallSquare': '\\u25FB', 'emptyv': '\\u2205', 'EmptyVerySmallSquare': '\\u25AB', 'emsp': '\\u2003', 'emsp13': '\\u2004', 'emsp14': '\\u2005', 'eng': '\\u014B', 'ENG': '\\u014A', 'ensp': '\\u2002', 'eogon': '\\u0119', 'Eogon': '\\u0118', 'eopf': '\\uD835\\uDD56', 'Eopf': '\\uD835\\uDD3C', 'epar': '\\u22D5', 'eparsl': '\\u29E3', 'eplus': '\\u2A71', 'epsi': '\\u03B5', 'epsilon': '\\u03B5', 'Epsilon': '\\u0395', 'epsiv': '\\u03F5', 'eqcirc': '\\u2256', 'eqcolon': '\\u2255', 'eqsim': '\\u2242', 'eqslantgtr': '\\u2A96', 'eqslantless': '\\u2A95', 'Equal': '\\u2A75', 'equals': '=', 'EqualTilde': '\\u2242', 'equest': '\\u225F', 'Equilibrium': '\\u21CC', 'equiv': '\\u2261', 'equivDD': '\\u2A78', 'eqvparsl': '\\u29E5', 'erarr': '\\u2971', 'erDot': '\\u2253', 'escr': '\\u212F', 'Escr': '\\u2130', 'esdot': '\\u2250', 'esim': '\\u2242', 'Esim': '\\u2A73', 'eta': '\\u03B7', 'Eta': '\\u0397', 'eth': '\\xF0', 'ETH': '\\xD0', 'euml': '\\xEB', 'Euml': '\\xCB', 'euro': '\\u20AC', 'excl': '!', 'exist': '\\u2203', 'Exists': '\\u2203', 'expectation': '\\u2130', 'exponentiale': '\\u2147', 'ExponentialE': '\\u2147', 'fallingdotseq': '\\u2252', 'fcy': '\\u0444', 'Fcy': '\\u0424', 'female': '\\u2640', 'ffilig': '\\uFB03', 'fflig': '\\uFB00', 'ffllig': '\\uFB04', 'ffr': '\\uD835\\uDD23', 'Ffr': '\\uD835\\uDD09', 'filig': '\\uFB01', 'FilledSmallSquare': '\\u25FC', 'FilledVerySmallSquare': '\\u25AA', 'fjlig': 'fj', 'flat': '\\u266D', 'fllig': '\\uFB02', 'fltns': '\\u25B1', 'fnof': '\\u0192', 'fopf': '\\uD835\\uDD57', 'Fopf': '\\uD835\\uDD3D', 'forall': '\\u2200', 'ForAll': '\\u2200', 'fork': '\\u22D4', 'forkv': '\\u2AD9', 'Fouriertrf': '\\u2131', 'fpartint': '\\u2A0D', 'frac12': '\\xBD', 'frac13': '\\u2153', 'frac14': '\\xBC', 'frac15': '\\u2155', 'frac16': '\\u2159', 'frac18': '\\u215B', 'frac23': '\\u2154', 'frac25': '\\u2156', 'frac34': '\\xBE', 'frac35': '\\u2157', 'frac38': '\\u215C', 'frac45': '\\u2158', 'frac56': '\\u215A', 'frac58': '\\u215D', 'frac78': '\\u215E', 'frasl': '\\u2044', 'frown': '\\u2322', 'fscr': '\\uD835\\uDCBB', 'Fscr': '\\u2131', 'gacute': '\\u01F5', 'gamma': '\\u03B3', 'Gamma': '\\u0393', 'gammad': '\\u03DD', 'Gammad': '\\u03DC', 'gap': '\\u2A86', 'gbreve': '\\u011F', 'Gbreve': '\\u011E', 'Gcedil': '\\u0122', 'gcirc': '\\u011D', 'Gcirc': '\\u011C', 'gcy': '\\u0433', 'Gcy': '\\u0413', 'gdot': '\\u0121', 'Gdot': '\\u0120', 'ge': '\\u2265', 'gE': '\\u2267', 'gel': '\\u22DB', 'gEl': '\\u2A8C', 'geq': '\\u2265', 'geqq': '\\u2267', 'geqslant': '\\u2A7E', 'ges': '\\u2A7E', 'gescc': '\\u2AA9', 'gesdot': '\\u2A80', 'gesdoto': '\\u2A82', 'gesdotol': '\\u2A84', 'gesl': '\\u22DB\\uFE00', 'gesles': '\\u2A94', 'gfr': '\\uD835\\uDD24', 'Gfr': '\\uD835\\uDD0A', 'gg': '\\u226B', 'Gg': '\\u22D9', 'ggg': '\\u22D9', 'gimel': '\\u2137', 'gjcy': '\\u0453', 'GJcy': '\\u0403', 'gl': '\\u2277', 'gla': '\\u2AA5', 'glE': '\\u2A92', 'glj': '\\u2AA4', 'gnap': '\\u2A8A', 'gnapprox': '\\u2A8A', 'gne': '\\u2A88', 'gnE': '\\u2269', 'gneq': '\\u2A88', 'gneqq': '\\u2269', 'gnsim': '\\u22E7', 'gopf': '\\uD835\\uDD58', 'Gopf': '\\uD835\\uDD3E', 'grave': '`', 'GreaterEqual': '\\u2265', 'GreaterEqualLess': '\\u22DB', 'GreaterFullEqual': '\\u2267', 'GreaterGreater': '\\u2AA2', 'GreaterLess': '\\u2277', 'GreaterSlantEqual': '\\u2A7E', 'GreaterTilde': '\\u2273', 'gscr': '\\u210A', 'Gscr': '\\uD835\\uDCA2', 'gsim': '\\u2273', 'gsime': '\\u2A8E', 'gsiml': '\\u2A90', 'gt': '>', 'Gt': '\\u226B', 'GT': '>', 'gtcc': '\\u2AA7', 'gtcir': '\\u2A7A', 'gtdot': '\\u22D7', 'gtlPar': '\\u2995', 'gtquest': '\\u2A7C', 'gtrapprox': '\\u2A86', 'gtrarr': '\\u2978', 'gtrdot': '\\u22D7', 'gtreqless': '\\u22DB', 'gtreqqless': '\\u2A8C', 'gtrless': '\\u2277', 'gtrsim': '\\u2273', 'gvertneqq': '\\u2269\\uFE00', 'gvnE': '\\u2269\\uFE00', 'Hacek': '\\u02C7', 'hairsp': '\\u200A', 'half': '\\xBD', 'hamilt': '\\u210B', 'hardcy': '\\u044A', 'HARDcy': '\\u042A', 'harr': '\\u2194', 'hArr': '\\u21D4', 'harrcir': '\\u2948', 'harrw': '\\u21AD', 'Hat': '^', 'hbar': '\\u210F', 'hcirc': '\\u0125', 'Hcirc': '\\u0124', 'hearts': '\\u2665', 'heartsuit': '\\u2665', 'hellip': '\\u2026', 'hercon': '\\u22B9', 'hfr': '\\uD835\\uDD25', 'Hfr': '\\u210C', 'HilbertSpace': '\\u210B', 'hksearow': '\\u2925', 'hkswarow': '\\u2926', 'hoarr': '\\u21FF', 'homtht': '\\u223B', 'hookleftarrow': '\\u21A9', 'hookrightarrow': '\\u21AA', 'hopf': '\\uD835\\uDD59', 'Hopf': '\\u210D', 'horbar': '\\u2015', 'HorizontalLine': '\\u2500', 'hscr': '\\uD835\\uDCBD', 'Hscr': '\\u210B', 'hslash': '\\u210F', 'hstrok': '\\u0127', 'Hstrok': '\\u0126', 'HumpDownHump': '\\u224E', 'HumpEqual': '\\u224F', 'hybull': '\\u2043', 'hyphen': '\\u2010', 'iacute': '\\xED', 'Iacute': '\\xCD', 'ic': '\\u2063', 'icirc': '\\xEE', 'Icirc': '\\xCE', 'icy': '\\u0438', 'Icy': '\\u0418', 'Idot': '\\u0130', 'iecy': '\\u0435', 'IEcy': '\\u0415', 'iexcl': '\\xA1', 'iff': '\\u21D4', 'ifr': '\\uD835\\uDD26', 'Ifr': '\\u2111', 'igrave': '\\xEC', 'Igrave': '\\xCC', 'ii': '\\u2148', 'iiiint': '\\u2A0C', 'iiint': '\\u222D', 'iinfin': '\\u29DC', 'iiota': '\\u2129', 'ijlig': '\\u0133', 'IJlig': '\\u0132', 'Im': '\\u2111', 'imacr': '\\u012B', 'Imacr': '\\u012A', 'image': '\\u2111', 'ImaginaryI': '\\u2148', 'imagline': '\\u2110', 'imagpart': '\\u2111', 'imath': '\\u0131', 'imof': '\\u22B7', 'imped': '\\u01B5', 'Implies': '\\u21D2', 'in': '\\u2208', 'incare': '\\u2105', 'infin': '\\u221E', 'infintie': '\\u29DD', 'inodot': '\\u0131', 'int': '\\u222B', 'Int': '\\u222C', 'intcal': '\\u22BA', 'integers': '\\u2124', 'Integral': '\\u222B', 'intercal': '\\u22BA', 'Intersection': '\\u22C2', 'intlarhk': '\\u2A17', 'intprod': '\\u2A3C', 'InvisibleComma': '\\u2063', 'InvisibleTimes': '\\u2062', 'iocy': '\\u0451', 'IOcy': '\\u0401', 'iogon': '\\u012F', 'Iogon': '\\u012E', 'iopf': '\\uD835\\uDD5A', 'Iopf': '\\uD835\\uDD40', 'iota': '\\u03B9', 'Iota': '\\u0399', 'iprod': '\\u2A3C', 'iquest': '\\xBF', 'iscr': '\\uD835\\uDCBE', 'Iscr': '\\u2110', 'isin': '\\u2208', 'isindot': '\\u22F5', 'isinE': '\\u22F9', 'isins': '\\u22F4', 'isinsv': '\\u22F3', 'isinv': '\\u2208', 'it': '\\u2062', 'itilde': '\\u0129', 'Itilde': '\\u0128', 'iukcy': '\\u0456', 'Iukcy': '\\u0406', 'iuml': '\\xEF', 'Iuml': '\\xCF', 'jcirc': '\\u0135', 'Jcirc': '\\u0134', 'jcy': '\\u0439', 'Jcy': '\\u0419', 'jfr': '\\uD835\\uDD27', 'Jfr': '\\uD835\\uDD0D', 'jmath': '\\u0237', 'jopf': '\\uD835\\uDD5B', 'Jopf': '\\uD835\\uDD41', 'jscr': '\\uD835\\uDCBF', 'Jscr': '\\uD835\\uDCA5', 'jsercy': '\\u0458', 'Jsercy': '\\u0408', 'jukcy': '\\u0454', 'Jukcy': '\\u0404', 'kappa': '\\u03BA', 'Kappa': '\\u039A', 'kappav': '\\u03F0', 'kcedil': '\\u0137', 'Kcedil': '\\u0136', 'kcy': '\\u043A', 'Kcy': '\\u041A', 'kfr': '\\uD835\\uDD28', 'Kfr': '\\uD835\\uDD0E', 'kgreen': '\\u0138', 'khcy': '\\u0445', 'KHcy': '\\u0425', 'kjcy': '\\u045C', 'KJcy': '\\u040C', 'kopf': '\\uD835\\uDD5C', 'Kopf': '\\uD835\\uDD42', 'kscr': '\\uD835\\uDCC0', 'Kscr': '\\uD835\\uDCA6', 'lAarr': '\\u21DA', 'lacute': '\\u013A', 'Lacute': '\\u0139', 'laemptyv': '\\u29B4', 'lagran': '\\u2112', 'lambda': '\\u03BB', 'Lambda': '\\u039B', 'lang': '\\u27E8', 'Lang': '\\u27EA', 'langd': '\\u2991', 'langle': '\\u27E8', 'lap': '\\u2A85', 'Laplacetrf': '\\u2112', 'laquo': '\\xAB', 'larr': '\\u2190', 'lArr': '\\u21D0', 'Larr': '\\u219E', 'larrb': '\\u21E4', 'larrbfs': '\\u291F', 'larrfs': '\\u291D', 'larrhk': '\\u21A9', 'larrlp': '\\u21AB', 'larrpl': '\\u2939', 'larrsim': '\\u2973', 'larrtl': '\\u21A2', 'lat': '\\u2AAB', 'latail': '\\u2919', 'lAtail': '\\u291B', 'late': '\\u2AAD', 'lates': '\\u2AAD\\uFE00', 'lbarr': '\\u290C', 'lBarr': '\\u290E', 'lbbrk': '\\u2772', 'lbrace': '{', 'lbrack': '[', 'lbrke': '\\u298B', 'lbrksld': '\\u298F', 'lbrkslu': '\\u298D', 'lcaron': '\\u013E', 'Lcaron': '\\u013D', 'lcedil': '\\u013C', 'Lcedil': '\\u013B', 'lceil': '\\u2308', 'lcub': '{', 'lcy': '\\u043B', 'Lcy': '\\u041B', 'ldca': '\\u2936', 'ldquo': '\\u201C', 'ldquor': '\\u201E', 'ldrdhar': '\\u2967', 'ldrushar': '\\u294B', 'ldsh': '\\u21B2', 'le': '\\u2264', 'lE': '\\u2266', 'LeftAngleBracket': '\\u27E8', 'leftarrow': '\\u2190', 'Leftarrow': '\\u21D0', 'LeftArrow': '\\u2190', 'LeftArrowBar': '\\u21E4', 'LeftArrowRightArrow': '\\u21C6', 'leftarrowtail': '\\u21A2', 'LeftCeiling': '\\u2308', 'LeftDoubleBracket': '\\u27E6', 'LeftDownTeeVector': '\\u2961', 'LeftDownVector': '\\u21C3', 'LeftDownVectorBar': '\\u2959', 'LeftFloor': '\\u230A', 'leftharpoondown': '\\u21BD', 'leftharpoonup': '\\u21BC', 'leftleftarrows': '\\u21C7', 'leftrightarrow': '\\u2194', 'Leftrightarrow': '\\u21D4', 'LeftRightArrow': '\\u2194', 'leftrightarrows': '\\u21C6', 'leftrightharpoons': '\\u21CB', 'leftrightsquigarrow': '\\u21AD', 'LeftRightVector': '\\u294E', 'LeftTee': '\\u22A3', 'LeftTeeArrow': '\\u21A4', 'LeftTeeVector': '\\u295A', 'leftthreetimes': '\\u22CB', 'LeftTriangle': '\\u22B2', 'LeftTriangleBar': '\\u29CF', 'LeftTriangleEqual': '\\u22B4', 'LeftUpDownVector': '\\u2951', 'LeftUpTeeVector': '\\u2960', 'LeftUpVector': '\\u21BF', 'LeftUpVectorBar': '\\u2958', 'LeftVector': '\\u21BC', 'LeftVectorBar': '\\u2952', 'leg': '\\u22DA', 'lEg': '\\u2A8B', 'leq': '\\u2264', 'leqq': '\\u2266', 'leqslant': '\\u2A7D', 'les': '\\u2A7D', 'lescc': '\\u2AA8', 'lesdot': '\\u2A7F', 'lesdoto': '\\u2A81', 'lesdotor': '\\u2A83', 'lesg': '\\u22DA\\uFE00', 'lesges': '\\u2A93', 'lessapprox': '\\u2A85', 'lessdot': '\\u22D6', 'lesseqgtr': '\\u22DA', 'lesseqqgtr': '\\u2A8B', 'LessEqualGreater': '\\u22DA', 'LessFullEqual': '\\u2266', 'LessGreater': '\\u2276', 'lessgtr': '\\u2276', 'LessLess': '\\u2AA1', 'lesssim': '\\u2272', 'LessSlantEqual': '\\u2A7D', 'LessTilde': '\\u2272', 'lfisht': '\\u297C', 'lfloor': '\\u230A', 'lfr': '\\uD835\\uDD29', 'Lfr': '\\uD835\\uDD0F', 'lg': '\\u2276', 'lgE': '\\u2A91', 'lHar': '\\u2962', 'lhard': '\\u21BD', 'lharu': '\\u21BC', 'lharul': '\\u296A', 'lhblk': '\\u2584', 'ljcy': '\\u0459', 'LJcy': '\\u0409', 'll': '\\u226A', 'Ll': '\\u22D8', 'llarr': '\\u21C7', 'llcorner': '\\u231E', 'Lleftarrow': '\\u21DA', 'llhard': '\\u296B', 'lltri': '\\u25FA', 'lmidot': '\\u0140', 'Lmidot': '\\u013F', 'lmoust': '\\u23B0', 'lmoustache': '\\u23B0', 'lnap': '\\u2A89', 'lnapprox': '\\u2A89', 'lne': '\\u2A87', 'lnE': '\\u2268', 'lneq': '\\u2A87', 'lneqq': '\\u2268', 'lnsim': '\\u22E6', 'loang': '\\u27EC', 'loarr': '\\u21FD', 'lobrk': '\\u27E6', 'longleftarrow': '\\u27F5', 'Longleftarrow': '\\u27F8', 'LongLeftArrow': '\\u27F5', 'longleftrightarrow': '\\u27F7', 'Longleftrightarrow': '\\u27FA', 'LongLeftRightArrow': '\\u27F7', 'longmapsto': '\\u27FC', 'longrightarrow': '\\u27F6', 'Longrightarrow': '\\u27F9', 'LongRightArrow': '\\u27F6', 'looparrowleft': '\\u21AB', 'looparrowright': '\\u21AC', 'lopar': '\\u2985', 'lopf': '\\uD835\\uDD5D', 'Lopf': '\\uD835\\uDD43', 'loplus': '\\u2A2D', 'lotimes': '\\u2A34', 'lowast': '\\u2217', 'lowbar': '_', 'LowerLeftArrow': '\\u2199', 'LowerRightArrow': '\\u2198', 'loz': '\\u25CA', 'lozenge': '\\u25CA', 'lozf': '\\u29EB', 'lpar': '(', 'lparlt': '\\u2993', 'lrarr': '\\u21C6', 'lrcorner': '\\u231F', 'lrhar': '\\u21CB', 'lrhard': '\\u296D', 'lrm': '\\u200E', 'lrtri': '\\u22BF', 'lsaquo': '\\u2039', 'lscr': '\\uD835\\uDCC1', 'Lscr': '\\u2112', 'lsh': '\\u21B0', 'Lsh': '\\u21B0', 'lsim': '\\u2272', 'lsime': '\\u2A8D', 'lsimg': '\\u2A8F', 'lsqb': '[', 'lsquo': '\\u2018', 'lsquor': '\\u201A', 'lstrok': '\\u0142', 'Lstrok': '\\u0141', 'lt': '<', 'Lt': '\\u226A', 'LT': '<', 'ltcc': '\\u2AA6', 'ltcir': '\\u2A79', 'ltdot': '\\u22D6', 'lthree': '\\u22CB', 'ltimes': '\\u22C9', 'ltlarr': '\\u2976', 'ltquest': '\\u2A7B', 'ltri': '\\u25C3', 'ltrie': '\\u22B4', 'ltrif': '\\u25C2', 'ltrPar': '\\u2996', 'lurdshar': '\\u294A', 'luruhar': '\\u2966', 'lvertneqq': '\\u2268\\uFE00', 'lvnE': '\\u2268\\uFE00', 'macr': '\\xAF', 'male': '\\u2642', 'malt': '\\u2720', 'maltese': '\\u2720', 'map': '\\u21A6', 'Map': '\\u2905', 'mapsto': '\\u21A6', 'mapstodown': '\\u21A7', 'mapstoleft': '\\u21A4', 'mapstoup': '\\u21A5', 'marker': '\\u25AE', 'mcomma': '\\u2A29', 'mcy': '\\u043C', 'Mcy': '\\u041C', 'mdash': '\\u2014', 'mDDot': '\\u223A', 'measuredangle': '\\u2221', 'MediumSpace': '\\u205F', 'Mellintrf': '\\u2133', 'mfr': '\\uD835\\uDD2A', 'Mfr': '\\uD835\\uDD10', 'mho': '\\u2127', 'micro': '\\xB5', 'mid': '\\u2223', 'midast': '*', 'midcir': '\\u2AF0', 'middot': '\\xB7', 'minus': '\\u2212', 'minusb': '\\u229F', 'minusd': '\\u2238', 'minusdu': '\\u2A2A', 'MinusPlus': '\\u2213', 'mlcp': '\\u2ADB', 'mldr': '\\u2026', 'mnplus': '\\u2213', 'models': '\\u22A7', 'mopf': '\\uD835\\uDD5E', 'Mopf': '\\uD835\\uDD44', 'mp': '\\u2213', 'mscr': '\\uD835\\uDCC2', 'Mscr': '\\u2133', 'mstpos': '\\u223E', 'mu': '\\u03BC', 'Mu': '\\u039C', 'multimap': '\\u22B8', 'mumap': '\\u22B8', 'nabla': '\\u2207', 'nacute': '\\u0144', 'Nacute': '\\u0143', 'nang': '\\u2220\\u20D2', 'nap': '\\u2249', 'napE': '\\u2A70\\u0338', 'napid': '\\u224B\\u0338', 'napos': '\\u0149', 'napprox': '\\u2249', 'natur': '\\u266E', 'natural': '\\u266E', 'naturals': '\\u2115', 'nbsp': '\\xA0', 'nbump': '\\u224E\\u0338', 'nbumpe': '\\u224F\\u0338', 'ncap': '\\u2A43', 'ncaron': '\\u0148', 'Ncaron': '\\u0147', 'ncedil': '\\u0146', 'Ncedil': '\\u0145', 'ncong': '\\u2247', 'ncongdot': '\\u2A6D\\u0338', 'ncup': '\\u2A42', 'ncy': '\\u043D', 'Ncy': '\\u041D', 'ndash': '\\u2013', 'ne': '\\u2260', 'nearhk': '\\u2924', 'nearr': '\\u2197', 'neArr': '\\u21D7', 'nearrow': '\\u2197', 'nedot': '\\u2250\\u0338', 'NegativeMediumSpace': '\\u200B', 'NegativeThickSpace': '\\u200B', 'NegativeThinSpace': '\\u200B', 'NegativeVeryThinSpace': '\\u200B', 'nequiv': '\\u2262', 'nesear': '\\u2928', 'nesim': '\\u2242\\u0338', 'NestedGreaterGreater': '\\u226B', 'NestedLessLess': '\\u226A', 'NewLine': '\\n', 'nexist': '\\u2204', 'nexists': '\\u2204', 'nfr': '\\uD835\\uDD2B', 'Nfr': '\\uD835\\uDD11', 'nge': '\\u2271', 'ngE': '\\u2267\\u0338', 'ngeq': '\\u2271', 'ngeqq': '\\u2267\\u0338', 'ngeqslant': '\\u2A7E\\u0338', 'nges': '\\u2A7E\\u0338', 'nGg': '\\u22D9\\u0338', 'ngsim': '\\u2275', 'ngt': '\\u226F', 'nGt': '\\u226B\\u20D2', 'ngtr': '\\u226F', 'nGtv': '\\u226B\\u0338', 'nharr': '\\u21AE', 'nhArr': '\\u21CE', 'nhpar': '\\u2AF2', 'ni': '\\u220B', 'nis': '\\u22FC', 'nisd': '\\u22FA', 'niv': '\\u220B', 'njcy': '\\u045A', 'NJcy': '\\u040A', 'nlarr': '\\u219A', 'nlArr': '\\u21CD', 'nldr': '\\u2025', 'nle': '\\u2270', 'nlE': '\\u2266\\u0338', 'nleftarrow': '\\u219A', 'nLeftarrow': '\\u21CD', 'nleftrightarrow': '\\u21AE', 'nLeftrightarrow': '\\u21CE', 'nleq': '\\u2270', 'nleqq': '\\u2266\\u0338', 'nleqslant': '\\u2A7D\\u0338', 'nles': '\\u2A7D\\u0338', 'nless': '\\u226E', 'nLl': '\\u22D8\\u0338', 'nlsim': '\\u2274', 'nlt': '\\u226E', 'nLt': '\\u226A\\u20D2', 'nltri': '\\u22EA', 'nltrie': '\\u22EC', 'nLtv': '\\u226A\\u0338', 'nmid': '\\u2224', 'NoBreak': '\\u2060', 'NonBreakingSpace': '\\xA0', 'nopf': '\\uD835\\uDD5F', 'Nopf': '\\u2115', 'not': '\\xAC', 'Not': '\\u2AEC', 'NotCongruent': '\\u2262', 'NotCupCap': '\\u226D', 'NotDoubleVerticalBar': '\\u2226', 'NotElement': '\\u2209', 'NotEqual': '\\u2260', 'NotEqualTilde': '\\u2242\\u0338', 'NotExists': '\\u2204', 'NotGreater': '\\u226F', 'NotGreaterEqual': '\\u2271', 'NotGreaterFullEqual': '\\u2267\\u0338', 'NotGreaterGreater': '\\u226B\\u0338', 'NotGreaterLess': '\\u2279', 'NotGreaterSlantEqual': '\\u2A7E\\u0338', 'NotGreaterTilde': '\\u2275', 'NotHumpDownHump': '\\u224E\\u0338', 'NotHumpEqual': '\\u224F\\u0338', 'notin': '\\u2209', 'notindot': '\\u22F5\\u0338', 'notinE': '\\u22F9\\u0338', 'notinva': '\\u2209', 'notinvb': '\\u22F7', 'notinvc': '\\u22F6', 'NotLeftTriangle': '\\u22EA', 'NotLeftTriangleBar': '\\u29CF\\u0338', 'NotLeftTriangleEqual': '\\u22EC', 'NotLess': '\\u226E', 'NotLessEqual': '\\u2270', 'NotLessGreater': '\\u2278', 'NotLessLess': '\\u226A\\u0338', 'NotLessSlantEqual': '\\u2A7D\\u0338', 'NotLessTilde': '\\u2274', 'NotNestedGreaterGreater': '\\u2AA2\\u0338', 'NotNestedLessLess': '\\u2AA1\\u0338', 'notni': '\\u220C', 'notniva': '\\u220C', 'notnivb': '\\u22FE', 'notnivc': '\\u22FD', 'NotPrecedes': '\\u2280', 'NotPrecedesEqual': '\\u2AAF\\u0338', 'NotPrecedesSlantEqual': '\\u22E0', 'NotReverseElement': '\\u220C', 'NotRightTriangle': '\\u22EB', 'NotRightTriangleBar': '\\u29D0\\u0338', 'NotRightTriangleEqual': '\\u22ED', 'NotSquareSubset': '\\u228F\\u0338', 'NotSquareSubsetEqual': '\\u22E2', 'NotSquareSuperset': '\\u2290\\u0338', 'NotSquareSupersetEqual': '\\u22E3', 'NotSubset': '\\u2282\\u20D2', 'NotSubsetEqual': '\\u2288', 'NotSucceeds': '\\u2281', 'NotSucceedsEqual': '\\u2AB0\\u0338', 'NotSucceedsSlantEqual': '\\u22E1', 'NotSucceedsTilde': '\\u227F\\u0338', 'NotSuperset': '\\u2283\\u20D2', 'NotSupersetEqual': '\\u2289', 'NotTilde': '\\u2241', 'NotTildeEqual': '\\u2244', 'NotTildeFullEqual': '\\u2247', 'NotTildeTilde': '\\u2249', 'NotVerticalBar': '\\u2224', 'npar': '\\u2226', 'nparallel': '\\u2226', 'nparsl': '\\u2AFD\\u20E5', 'npart': '\\u2202\\u0338', 'npolint': '\\u2A14', 'npr': '\\u2280', 'nprcue': '\\u22E0', 'npre': '\\u2AAF\\u0338', 'nprec': '\\u2280', 'npreceq': '\\u2AAF\\u0338', 'nrarr': '\\u219B', 'nrArr': '\\u21CF', 'nrarrc': '\\u2933\\u0338', 'nrarrw': '\\u219D\\u0338', 'nrightarrow': '\\u219B', 'nRightarrow': '\\u21CF', 'nrtri': '\\u22EB', 'nrtrie': '\\u22ED', 'nsc': '\\u2281', 'nsccue': '\\u22E1', 'nsce': '\\u2AB0\\u0338', 'nscr': '\\uD835\\uDCC3', 'Nscr': '\\uD835\\uDCA9', 'nshortmid': '\\u2224', 'nshortparallel': '\\u2226', 'nsim': '\\u2241', 'nsime': '\\u2244', 'nsimeq': '\\u2244', 'nsmid': '\\u2224', 'nspar': '\\u2226', 'nsqsube': '\\u22E2', 'nsqsupe': '\\u22E3', 'nsub': '\\u2284', 'nsube': '\\u2288', 'nsubE': '\\u2AC5\\u0338', 'nsubset': '\\u2282\\u20D2', 'nsubseteq': '\\u2288', 'nsubseteqq': '\\u2AC5\\u0338', 'nsucc': '\\u2281', 'nsucceq': '\\u2AB0\\u0338', 'nsup': '\\u2285', 'nsupe': '\\u2289', 'nsupE': '\\u2AC6\\u0338', 'nsupset': '\\u2283\\u20D2', 'nsupseteq': '\\u2289', 'nsupseteqq': '\\u2AC6\\u0338', 'ntgl': '\\u2279', 'ntilde': '\\xF1', 'Ntilde': '\\xD1', 'ntlg': '\\u2278', 'ntriangleleft': '\\u22EA', 'ntrianglelefteq': '\\u22EC', 'ntriangleright': '\\u22EB', 'ntrianglerighteq': '\\u22ED', 'nu': '\\u03BD', 'Nu': '\\u039D', 'num': '#', 'numero': '\\u2116', 'numsp': '\\u2007', 'nvap': '\\u224D\\u20D2', 'nvdash': '\\u22AC', 'nvDash': '\\u22AD', 'nVdash': '\\u22AE', 'nVDash': '\\u22AF', 'nvge': '\\u2265\\u20D2', 'nvgt': '>\\u20D2', 'nvHarr': '\\u2904', 'nvinfin': '\\u29DE', 'nvlArr': '\\u2902', 'nvle': '\\u2264\\u20D2', 'nvlt': '<\\u20D2', 'nvltrie': '\\u22B4\\u20D2', 'nvrArr': '\\u2903', 'nvrtrie': '\\u22B5\\u20D2', 'nvsim': '\\u223C\\u20D2', 'nwarhk': '\\u2923', 'nwarr': '\\u2196', 'nwArr': '\\u21D6', 'nwarrow': '\\u2196', 'nwnear': '\\u2927', 'oacute': '\\xF3', 'Oacute': '\\xD3', 'oast': '\\u229B', 'ocir': '\\u229A', 'ocirc': '\\xF4', 'Ocirc': '\\xD4', 'ocy': '\\u043E', 'Ocy': '\\u041E', 'odash': '\\u229D', 'odblac': '\\u0151', 'Odblac': '\\u0150', 'odiv': '\\u2A38', 'odot': '\\u2299', 'odsold': '\\u29BC', 'oelig': '\\u0153', 'OElig': '\\u0152', 'ofcir': '\\u29BF', 'ofr': '\\uD835\\uDD2C', 'Ofr': '\\uD835\\uDD12', 'ogon': '\\u02DB', 'ograve': '\\xF2', 'Ograve': '\\xD2', 'ogt': '\\u29C1', 'ohbar': '\\u29B5', 'ohm': '\\u03A9', 'oint': '\\u222E', 'olarr': '\\u21BA', 'olcir': '\\u29BE', 'olcross': '\\u29BB', 'oline': '\\u203E', 'olt': '\\u29C0', 'omacr': '\\u014D', 'Omacr': '\\u014C', 'omega': '\\u03C9', 'Omega': '\\u03A9', 'omicron': '\\u03BF', 'Omicron': '\\u039F', 'omid': '\\u29B6', 'ominus': '\\u2296', 'oopf': '\\uD835\\uDD60', 'Oopf': '\\uD835\\uDD46', 'opar': '\\u29B7', 'OpenCurlyDoubleQuote': '\\u201C', 'OpenCurlyQuote': '\\u2018', 'operp': '\\u29B9', 'oplus': '\\u2295', 'or': '\\u2228', 'Or': '\\u2A54', 'orarr': '\\u21BB', 'ord': '\\u2A5D', 'order': '\\u2134', 'orderof': '\\u2134', 'ordf': '\\xAA', 'ordm': '\\xBA', 'origof': '\\u22B6', 'oror': '\\u2A56', 'orslope': '\\u2A57', 'orv': '\\u2A5B', 'oS': '\\u24C8', 'oscr': '\\u2134', 'Oscr': '\\uD835\\uDCAA', 'oslash': '\\xF8', 'Oslash': '\\xD8', 'osol': '\\u2298', 'otilde': '\\xF5', 'Otilde': '\\xD5', 'otimes': '\\u2297', 'Otimes': '\\u2A37', 'otimesas': '\\u2A36', 'ouml': '\\xF6', 'Ouml': '\\xD6', 'ovbar': '\\u233D', 'OverBar': '\\u203E', 'OverBrace': '\\u23DE', 'OverBracket': '\\u23B4', 'OverParenthesis': '\\u23DC', 'par': '\\u2225', 'para': '\\xB6', 'parallel': '\\u2225', 'parsim': '\\u2AF3', 'parsl': '\\u2AFD', 'part': '\\u2202', 'PartialD': '\\u2202', 'pcy': '\\u043F', 'Pcy': '\\u041F', 'percnt': '%', 'period': '.', 'permil': '\\u2030', 'perp': '\\u22A5', 'pertenk': '\\u2031', 'pfr': '\\uD835\\uDD2D', 'Pfr': '\\uD835\\uDD13', 'phi': '\\u03C6', 'Phi': '\\u03A6', 'phiv': '\\u03D5', 'phmmat': '\\u2133', 'phone': '\\u260E', 'pi': '\\u03C0', 'Pi': '\\u03A0', 'pitchfork': '\\u22D4', 'piv': '\\u03D6', 'planck': '\\u210F', 'planckh': '\\u210E', 'plankv': '\\u210F', 'plus': '+', 'plusacir': '\\u2A23', 'plusb': '\\u229E', 'pluscir': '\\u2A22', 'plusdo': '\\u2214', 'plusdu': '\\u2A25', 'pluse': '\\u2A72', 'PlusMinus': '\\xB1', 'plusmn': '\\xB1', 'plussim': '\\u2A26', 'plustwo': '\\u2A27', 'pm': '\\xB1', 'Poincareplane': '\\u210C', 'pointint': '\\u2A15', 'popf': '\\uD835\\uDD61', 'Popf': '\\u2119', 'pound': '\\xA3', 'pr': '\\u227A', 'Pr': '\\u2ABB', 'prap': '\\u2AB7', 'prcue': '\\u227C', 'pre': '\\u2AAF', 'prE': '\\u2AB3', 'prec': '\\u227A', 'precapprox': '\\u2AB7', 'preccurlyeq': '\\u227C', 'Precedes': '\\u227A', 'PrecedesEqual': '\\u2AAF', 'PrecedesSlantEqual': '\\u227C', 'PrecedesTilde': '\\u227E', 'preceq': '\\u2AAF', 'precnapprox': '\\u2AB9', 'precneqq': '\\u2AB5', 'precnsim': '\\u22E8', 'precsim': '\\u227E', 'prime': '\\u2032', 'Prime': '\\u2033', 'primes': '\\u2119', 'prnap': '\\u2AB9', 'prnE': '\\u2AB5', 'prnsim': '\\u22E8', 'prod': '\\u220F', 'Product': '\\u220F', 'profalar': '\\u232E', 'profline': '\\u2312', 'profsurf': '\\u2313', 'prop': '\\u221D', 'Proportion': '\\u2237', 'Proportional': '\\u221D', 'propto': '\\u221D', 'prsim': '\\u227E', 'prurel': '\\u22B0', 'pscr': '\\uD835\\uDCC5', 'Pscr': '\\uD835\\uDCAB', 'psi': '\\u03C8', 'Psi': '\\u03A8', 'puncsp': '\\u2008', 'qfr': '\\uD835\\uDD2E', 'Qfr': '\\uD835\\uDD14', 'qint': '\\u2A0C', 'qopf': '\\uD835\\uDD62', 'Qopf': '\\u211A', 'qprime': '\\u2057', 'qscr': '\\uD835\\uDCC6', 'Qscr': '\\uD835\\uDCAC', 'quaternions': '\\u210D', 'quatint': '\\u2A16', 'quest': '?', 'questeq': '\\u225F', 'quot': '\"', 'QUOT': '\"', 'rAarr': '\\u21DB', 'race': '\\u223D\\u0331', 'racute': '\\u0155', 'Racute': '\\u0154', 'radic': '\\u221A', 'raemptyv': '\\u29B3', 'rang': '\\u27E9', 'Rang': '\\u27EB', 'rangd': '\\u2992', 'range': '\\u29A5', 'rangle': '\\u27E9', 'raquo': '\\xBB', 'rarr': '\\u2192', 'rArr': '\\u21D2', 'Rarr': '\\u21A0', 'rarrap': '\\u2975', 'rarrb': '\\u21E5', 'rarrbfs': '\\u2920', 'rarrc': '\\u2933', 'rarrfs': '\\u291E', 'rarrhk': '\\u21AA', 'rarrlp': '\\u21AC', 'rarrpl': '\\u2945', 'rarrsim': '\\u2974', 'rarrtl': '\\u21A3', 'Rarrtl': '\\u2916', 'rarrw': '\\u219D', 'ratail': '\\u291A', 'rAtail': '\\u291C', 'ratio': '\\u2236', 'rationals': '\\u211A', 'rbarr': '\\u290D', 'rBarr': '\\u290F', 'RBarr': '\\u2910', 'rbbrk': '\\u2773', 'rbrace': '}', 'rbrack': ']', 'rbrke': '\\u298C', 'rbrksld': '\\u298E', 'rbrkslu': '\\u2990', 'rcaron': '\\u0159', 'Rcaron': '\\u0158', 'rcedil': '\\u0157', 'Rcedil': '\\u0156', 'rceil': '\\u2309', 'rcub': '}', 'rcy': '\\u0440', 'Rcy': '\\u0420', 'rdca': '\\u2937', 'rdldhar': '\\u2969', 'rdquo': '\\u201D', 'rdquor': '\\u201D', 'rdsh': '\\u21B3', 'Re': '\\u211C', 'real': '\\u211C', 'realine': '\\u211B', 'realpart': '\\u211C', 'reals': '\\u211D', 'rect': '\\u25AD', 'reg': '\\xAE', 'REG': '\\xAE', 'ReverseElement': '\\u220B', 'ReverseEquilibrium': '\\u21CB', 'ReverseUpEquilibrium': '\\u296F', 'rfisht': '\\u297D', 'rfloor': '\\u230B', 'rfr': '\\uD835\\uDD2F', 'Rfr': '\\u211C', 'rHar': '\\u2964', 'rhard': '\\u21C1', 'rharu': '\\u21C0', 'rharul': '\\u296C', 'rho': '\\u03C1', 'Rho': '\\u03A1', 'rhov': '\\u03F1', 'RightAngleBracket': '\\u27E9', 'rightarrow': '\\u2192', 'Rightarrow': '\\u21D2', 'RightArrow': '\\u2192', 'RightArrowBar': '\\u21E5', 'RightArrowLeftArrow': '\\u21C4', 'rightarrowtail': '\\u21A3', 'RightCeiling': '\\u2309', 'RightDoubleBracket': '\\u27E7', 'RightDownTeeVector': '\\u295D', 'RightDownVector': '\\u21C2', 'RightDownVectorBar': '\\u2955', 'RightFloor': '\\u230B', 'rightharpoondown': '\\u21C1', 'rightharpoonup': '\\u21C0', 'rightleftarrows': '\\u21C4', 'rightleftharpoons': '\\u21CC', 'rightrightarrows': '\\u21C9', 'rightsquigarrow': '\\u219D', 'RightTee': '\\u22A2', 'RightTeeArrow': '\\u21A6', 'RightTeeVector': '\\u295B', 'rightthreetimes': '\\u22CC', 'RightTriangle': '\\u22B3', 'RightTriangleBar': '\\u29D0', 'RightTriangleEqual': '\\u22B5', 'RightUpDownVector': '\\u294F', 'RightUpTeeVector': '\\u295C', 'RightUpVector': '\\u21BE', 'RightUpVectorBar': '\\u2954', 'RightVector': '\\u21C0', 'RightVectorBar': '\\u2953', 'ring': '\\u02DA', 'risingdotseq': '\\u2253', 'rlarr': '\\u21C4', 'rlhar': '\\u21CC', 'rlm': '\\u200F', 'rmoust': '\\u23B1', 'rmoustache': '\\u23B1', 'rnmid': '\\u2AEE', 'roang': '\\u27ED', 'roarr': '\\u21FE', 'robrk': '\\u27E7', 'ropar': '\\u2986', 'ropf': '\\uD835\\uDD63', 'Ropf': '\\u211D', 'roplus': '\\u2A2E', 'rotimes': '\\u2A35', 'RoundImplies': '\\u2970', 'rpar': ')', 'rpargt': '\\u2994', 'rppolint': '\\u2A12', 'rrarr': '\\u21C9', 'Rrightarrow': '\\u21DB', 'rsaquo': '\\u203A', 'rscr': '\\uD835\\uDCC7', 'Rscr': '\\u211B', 'rsh': '\\u21B1', 'Rsh': '\\u21B1', 'rsqb': ']', 'rsquo': '\\u2019', 'rsquor': '\\u2019', 'rthree': '\\u22CC', 'rtimes': '\\u22CA', 'rtri': '\\u25B9', 'rtrie': '\\u22B5', 'rtrif': '\\u25B8', 'rtriltri': '\\u29CE', 'RuleDelayed': '\\u29F4', 'ruluhar': '\\u2968', 'rx': '\\u211E', 'sacute': '\\u015B', 'Sacute': '\\u015A', 'sbquo': '\\u201A', 'sc': '\\u227B', 'Sc': '\\u2ABC', 'scap': '\\u2AB8', 'scaron': '\\u0161', 'Scaron': '\\u0160', 'sccue': '\\u227D', 'sce': '\\u2AB0', 'scE': '\\u2AB4', 'scedil': '\\u015F', 'Scedil': '\\u015E', 'scirc': '\\u015D', 'Scirc': '\\u015C', 'scnap': '\\u2ABA', 'scnE': '\\u2AB6', 'scnsim': '\\u22E9', 'scpolint': '\\u2A13', 'scsim': '\\u227F', 'scy': '\\u0441', 'Scy': '\\u0421', 'sdot': '\\u22C5', 'sdotb': '\\u22A1', 'sdote': '\\u2A66', 'searhk': '\\u2925', 'searr': '\\u2198', 'seArr': '\\u21D8', 'searrow': '\\u2198', 'sect': '\\xA7', 'semi': ';', 'seswar': '\\u2929', 'setminus': '\\u2216', 'setmn': '\\u2216', 'sext': '\\u2736', 'sfr': '\\uD835\\uDD30', 'Sfr': '\\uD835\\uDD16', 'sfrown': '\\u2322', 'sharp': '\\u266F', 'shchcy': '\\u0449', 'SHCHcy': '\\u0429', 'shcy': '\\u0448', 'SHcy': '\\u0428', 'ShortDownArrow': '\\u2193', 'ShortLeftArrow': '\\u2190', 'shortmid': '\\u2223', 'shortparallel': '\\u2225', 'ShortRightArrow': '\\u2192', 'ShortUpArrow': '\\u2191', 'shy': '\\xAD', 'sigma': '\\u03C3', 'Sigma': '\\u03A3', 'sigmaf': '\\u03C2', 'sigmav': '\\u03C2', 'sim': '\\u223C', 'simdot': '\\u2A6A', 'sime': '\\u2243', 'simeq': '\\u2243', 'simg': '\\u2A9E', 'simgE': '\\u2AA0', 'siml': '\\u2A9D', 'simlE': '\\u2A9F', 'simne': '\\u2246', 'simplus': '\\u2A24', 'simrarr': '\\u2972', 'slarr': '\\u2190', 'SmallCircle': '\\u2218', 'smallsetminus': '\\u2216', 'smashp': '\\u2A33', 'smeparsl': '\\u29E4', 'smid': '\\u2223', 'smile': '\\u2323', 'smt': '\\u2AAA', 'smte': '\\u2AAC', 'smtes': '\\u2AAC\\uFE00', 'softcy': '\\u044C', 'SOFTcy': '\\u042C', 'sol': '/', 'solb': '\\u29C4', 'solbar': '\\u233F', 'sopf': '\\uD835\\uDD64', 'Sopf': '\\uD835\\uDD4A', 'spades': '\\u2660', 'spadesuit': '\\u2660', 'spar': '\\u2225', 'sqcap': '\\u2293', 'sqcaps': '\\u2293\\uFE00', 'sqcup': '\\u2294', 'sqcups': '\\u2294\\uFE00', 'Sqrt': '\\u221A', 'sqsub': '\\u228F', 'sqsube': '\\u2291', 'sqsubset': '\\u228F', 'sqsubseteq': '\\u2291', 'sqsup': '\\u2290', 'sqsupe': '\\u2292', 'sqsupset': '\\u2290', 'sqsupseteq': '\\u2292', 'squ': '\\u25A1', 'square': '\\u25A1', 'Square': '\\u25A1', 'SquareIntersection': '\\u2293', 'SquareSubset': '\\u228F', 'SquareSubsetEqual': '\\u2291', 'SquareSuperset': '\\u2290', 'SquareSupersetEqual': '\\u2292', 'SquareUnion': '\\u2294', 'squarf': '\\u25AA', 'squf': '\\u25AA', 'srarr': '\\u2192', 'sscr': '\\uD835\\uDCC8', 'Sscr': '\\uD835\\uDCAE', 'ssetmn': '\\u2216', 'ssmile': '\\u2323', 'sstarf': '\\u22C6', 'star': '\\u2606', 'Star': '\\u22C6', 'starf': '\\u2605', 'straightepsilon': '\\u03F5', 'straightphi': '\\u03D5', 'strns': '\\xAF', 'sub': '\\u2282', 'Sub': '\\u22D0', 'subdot': '\\u2ABD', 'sube': '\\u2286', 'subE': '\\u2AC5', 'subedot': '\\u2AC3', 'submult': '\\u2AC1', 'subne': '\\u228A', 'subnE': '\\u2ACB', 'subplus': '\\u2ABF', 'subrarr': '\\u2979', 'subset': '\\u2282', 'Subset': '\\u22D0', 'subseteq': '\\u2286', 'subseteqq': '\\u2AC5', 'SubsetEqual': '\\u2286', 'subsetneq': '\\u228A', 'subsetneqq': '\\u2ACB', 'subsim': '\\u2AC7', 'subsub': '\\u2AD5', 'subsup': '\\u2AD3', 'succ': '\\u227B', 'succapprox': '\\u2AB8', 'succcurlyeq': '\\u227D', 'Succeeds': '\\u227B', 'SucceedsEqual': '\\u2AB0', 'SucceedsSlantEqual': '\\u227D', 'SucceedsTilde': '\\u227F', 'succeq': '\\u2AB0', 'succnapprox': '\\u2ABA', 'succneqq': '\\u2AB6', 'succnsim': '\\u22E9', 'succsim': '\\u227F', 'SuchThat': '\\u220B', 'sum': '\\u2211', 'Sum': '\\u2211', 'sung': '\\u266A', 'sup': '\\u2283', 'Sup': '\\u22D1', 'sup1': '\\xB9', 'sup2': '\\xB2', 'sup3': '\\xB3', 'supdot': '\\u2ABE', 'supdsub': '\\u2AD8', 'supe': '\\u2287', 'supE': '\\u2AC6', 'supedot': '\\u2AC4', 'Superset': '\\u2283', 'SupersetEqual': '\\u2287', 'suphsol': '\\u27C9', 'suphsub': '\\u2AD7', 'suplarr': '\\u297B', 'supmult': '\\u2AC2', 'supne': '\\u228B', 'supnE': '\\u2ACC', 'supplus': '\\u2AC0', 'supset': '\\u2283', 'Supset': '\\u22D1', 'supseteq': '\\u2287', 'supseteqq': '\\u2AC6', 'supsetneq': '\\u228B', 'supsetneqq': '\\u2ACC', 'supsim': '\\u2AC8', 'supsub': '\\u2AD4', 'supsup': '\\u2AD6', 'swarhk': '\\u2926', 'swarr': '\\u2199', 'swArr': '\\u21D9', 'swarrow': '\\u2199', 'swnwar': '\\u292A', 'szlig': '\\xDF', 'Tab': '\\t', 'target': '\\u2316', 'tau': '\\u03C4', 'Tau': '\\u03A4', 'tbrk': '\\u23B4', 'tcaron': '\\u0165', 'Tcaron': '\\u0164', 'tcedil': '\\u0163', 'Tcedil': '\\u0162', 'tcy': '\\u0442', 'Tcy': '\\u0422', 'tdot': '\\u20DB', 'telrec': '\\u2315', 'tfr': '\\uD835\\uDD31', 'Tfr': '\\uD835\\uDD17', 'there4': '\\u2234', 'therefore': '\\u2234', 'Therefore': '\\u2234', 'theta': '\\u03B8', 'Theta': '\\u0398', 'thetasym': '\\u03D1', 'thetav': '\\u03D1', 'thickapprox': '\\u2248', 'thicksim': '\\u223C', 'ThickSpace': '\\u205F\\u200A', 'thinsp': '\\u2009', 'ThinSpace': '\\u2009', 'thkap': '\\u2248', 'thksim': '\\u223C', 'thorn': '\\xFE', 'THORN': '\\xDE', 'tilde': '\\u02DC', 'Tilde': '\\u223C', 'TildeEqual': '\\u2243', 'TildeFullEqual': '\\u2245', 'TildeTilde': '\\u2248', 'times': '\\xD7', 'timesb': '\\u22A0', 'timesbar': '\\u2A31', 'timesd': '\\u2A30', 'tint': '\\u222D', 'toea': '\\u2928', 'top': '\\u22A4', 'topbot': '\\u2336', 'topcir': '\\u2AF1', 'topf': '\\uD835\\uDD65', 'Topf': '\\uD835\\uDD4B', 'topfork': '\\u2ADA', 'tosa': '\\u2929', 'tprime': '\\u2034', 'trade': '\\u2122', 'TRADE': '\\u2122', 'triangle': '\\u25B5', 'triangledown': '\\u25BF', 'triangleleft': '\\u25C3', 'trianglelefteq': '\\u22B4', 'triangleq': '\\u225C', 'triangleright': '\\u25B9', 'trianglerighteq': '\\u22B5', 'tridot': '\\u25EC', 'trie': '\\u225C', 'triminus': '\\u2A3A', 'TripleDot': '\\u20DB', 'triplus': '\\u2A39', 'trisb': '\\u29CD', 'tritime': '\\u2A3B', 'trpezium': '\\u23E2', 'tscr': '\\uD835\\uDCC9', 'Tscr': '\\uD835\\uDCAF', 'tscy': '\\u0446', 'TScy': '\\u0426', 'tshcy': '\\u045B', 'TSHcy': '\\u040B', 'tstrok': '\\u0167', 'Tstrok': '\\u0166', 'twixt': '\\u226C', 'twoheadleftarrow': '\\u219E', 'twoheadrightarrow': '\\u21A0', 'uacute': '\\xFA', 'Uacute': '\\xDA', 'uarr': '\\u2191', 'uArr': '\\u21D1', 'Uarr': '\\u219F', 'Uarrocir': '\\u2949', 'ubrcy': '\\u045E', 'Ubrcy': '\\u040E', 'ubreve': '\\u016D', 'Ubreve': '\\u016C', 'ucirc': '\\xFB', 'Ucirc': '\\xDB', 'ucy': '\\u0443', 'Ucy': '\\u0423', 'udarr': '\\u21C5', 'udblac': '\\u0171', 'Udblac': '\\u0170', 'udhar': '\\u296E', 'ufisht': '\\u297E', 'ufr': '\\uD835\\uDD32', 'Ufr': '\\uD835\\uDD18', 'ugrave': '\\xF9', 'Ugrave': '\\xD9', 'uHar': '\\u2963', 'uharl': '\\u21BF', 'uharr': '\\u21BE', 'uhblk': '\\u2580', 'ulcorn': '\\u231C', 'ulcorner': '\\u231C', 'ulcrop': '\\u230F', 'ultri': '\\u25F8', 'umacr': '\\u016B', 'Umacr': '\\u016A', 'uml': '\\xA8', 'UnderBar': '_', 'UnderBrace': '\\u23DF', 'UnderBracket': '\\u23B5', 'UnderParenthesis': '\\u23DD', 'Union': '\\u22C3', 'UnionPlus': '\\u228E', 'uogon': '\\u0173', 'Uogon': '\\u0172', 'uopf': '\\uD835\\uDD66', 'Uopf': '\\uD835\\uDD4C', 'uparrow': '\\u2191', 'Uparrow': '\\u21D1', 'UpArrow': '\\u2191', 'UpArrowBar': '\\u2912', 'UpArrowDownArrow': '\\u21C5', 'updownarrow': '\\u2195', 'Updownarrow': '\\u21D5', 'UpDownArrow': '\\u2195', 'UpEquilibrium': '\\u296E', 'upharpoonleft': '\\u21BF', 'upharpoonright': '\\u21BE', 'uplus': '\\u228E', 'UpperLeftArrow': '\\u2196', 'UpperRightArrow': '\\u2197', 'upsi': '\\u03C5', 'Upsi': '\\u03D2', 'upsih': '\\u03D2', 'upsilon': '\\u03C5', 'Upsilon': '\\u03A5', 'UpTee': '\\u22A5', 'UpTeeArrow': '\\u21A5', 'upuparrows': '\\u21C8', 'urcorn': '\\u231D', 'urcorner': '\\u231D', 'urcrop': '\\u230E', 'uring': '\\u016F', 'Uring': '\\u016E', 'urtri': '\\u25F9', 'uscr': '\\uD835\\uDCCA', 'Uscr': '\\uD835\\uDCB0', 'utdot': '\\u22F0', 'utilde': '\\u0169', 'Utilde': '\\u0168', 'utri': '\\u25B5', 'utrif': '\\u25B4', 'uuarr': '\\u21C8', 'uuml': '\\xFC', 'Uuml': '\\xDC', 'uwangle': '\\u29A7', 'vangrt': '\\u299C', 'varepsilon': '\\u03F5', 'varkappa': '\\u03F0', 'varnothing': '\\u2205', 'varphi': '\\u03D5', 'varpi': '\\u03D6', 'varpropto': '\\u221D', 'varr': '\\u2195', 'vArr': '\\u21D5', 'varrho': '\\u03F1', 'varsigma': '\\u03C2', 'varsubsetneq': '\\u228A\\uFE00', 'varsubsetneqq': '\\u2ACB\\uFE00', 'varsupsetneq': '\\u228B\\uFE00', 'varsupsetneqq': '\\u2ACC\\uFE00', 'vartheta': '\\u03D1', 'vartriangleleft': '\\u22B2', 'vartriangleright': '\\u22B3', 'vBar': '\\u2AE8', 'Vbar': '\\u2AEB', 'vBarv': '\\u2AE9', 'vcy': '\\u0432', 'Vcy': '\\u0412', 'vdash': '\\u22A2', 'vDash': '\\u22A8', 'Vdash': '\\u22A9', 'VDash': '\\u22AB', 'Vdashl': '\\u2AE6', 'vee': '\\u2228', 'Vee': '\\u22C1', 'veebar': '\\u22BB', 'veeeq': '\\u225A', 'vellip': '\\u22EE', 'verbar': '|', 'Verbar': '\\u2016', 'vert': '|', 'Vert': '\\u2016', 'VerticalBar': '\\u2223', 'VerticalLine': '|', 'VerticalSeparator': '\\u2758', 'VerticalTilde': '\\u2240', 'VeryThinSpace': '\\u200A', 'vfr': '\\uD835\\uDD33', 'Vfr': '\\uD835\\uDD19', 'vltri': '\\u22B2', 'vnsub': '\\u2282\\u20D2', 'vnsup': '\\u2283\\u20D2', 'vopf': '\\uD835\\uDD67', 'Vopf': '\\uD835\\uDD4D', 'vprop': '\\u221D', 'vrtri': '\\u22B3', 'vscr': '\\uD835\\uDCCB', 'Vscr': '\\uD835\\uDCB1', 'vsubne': '\\u228A\\uFE00', 'vsubnE': '\\u2ACB\\uFE00', 'vsupne': '\\u228B\\uFE00', 'vsupnE': '\\u2ACC\\uFE00', 'Vvdash': '\\u22AA', 'vzigzag': '\\u299A', 'wcirc': '\\u0175', 'Wcirc': '\\u0174', 'wedbar': '\\u2A5F', 'wedge': '\\u2227', 'Wedge': '\\u22C0', 'wedgeq': '\\u2259', 'weierp': '\\u2118', 'wfr': '\\uD835\\uDD34', 'Wfr': '\\uD835\\uDD1A', 'wopf': '\\uD835\\uDD68', 'Wopf': '\\uD835\\uDD4E', 'wp': '\\u2118', 'wr': '\\u2240', 'wreath': '\\u2240', 'wscr': '\\uD835\\uDCCC', 'Wscr': '\\uD835\\uDCB2', 'xcap': '\\u22C2', 'xcirc': '\\u25EF', 'xcup': '\\u22C3', 'xdtri': '\\u25BD', 'xfr': '\\uD835\\uDD35', 'Xfr': '\\uD835\\uDD1B', 'xharr': '\\u27F7', 'xhArr': '\\u27FA', 'xi': '\\u03BE', 'Xi': '\\u039E', 'xlarr': '\\u27F5', 'xlArr': '\\u27F8', 'xmap': '\\u27FC', 'xnis': '\\u22FB', 'xodot': '\\u2A00', 'xopf': '\\uD835\\uDD69', 'Xopf': '\\uD835\\uDD4F', 'xoplus': '\\u2A01', 'xotime': '\\u2A02', 'xrarr': '\\u27F6', 'xrArr': '\\u27F9', 'xscr': '\\uD835\\uDCCD', 'Xscr': '\\uD835\\uDCB3', 'xsqcup': '\\u2A06', 'xuplus': '\\u2A04', 'xutri': '\\u25B3', 'xvee': '\\u22C1', 'xwedge': '\\u22C0', 'yacute': '\\xFD', 'Yacute': '\\xDD', 'yacy': '\\u044F', 'YAcy': '\\u042F', 'ycirc': '\\u0177', 'Ycirc': '\\u0176', 'ycy': '\\u044B', 'Ycy': '\\u042B', 'yen': '\\xA5', 'yfr': '\\uD835\\uDD36', 'Yfr': '\\uD835\\uDD1C', 'yicy': '\\u0457', 'YIcy': '\\u0407', 'yopf': '\\uD835\\uDD6A', 'Yopf': '\\uD835\\uDD50', 'yscr': '\\uD835\\uDCCE', 'Yscr': '\\uD835\\uDCB4', 'yucy': '\\u044E', 'YUcy': '\\u042E', 'yuml': '\\xFF', 'Yuml': '\\u0178', 'zacute': '\\u017A', 'Zacute': '\\u0179', 'zcaron': '\\u017E', 'Zcaron': '\\u017D', 'zcy': '\\u0437', 'Zcy': '\\u0417', 'zdot': '\\u017C', 'Zdot': '\\u017B', 'zeetrf': '\\u2128', 'ZeroWidthSpace': '\\u200B', 'zeta': '\\u03B6', 'Zeta': '\\u0396', 'zfr': '\\uD835\\uDD37', 'Zfr': '\\u2128', 'zhcy': '\\u0436', 'ZHcy': '\\u0416', 'zigrarr': '\\u21DD', 'zopf': '\\uD835\\uDD6B', 'Zopf': '\\u2124', 'zscr': '\\uD835\\uDCCF', 'Zscr': '\\uD835\\uDCB5', 'zwj': '\\u200D', 'zwnj': '\\u200C' };\n\tvar decodeMapLegacy = { 'aacute': '\\xE1', 'Aacute': '\\xC1', 'acirc': '\\xE2', 'Acirc': '\\xC2', 'acute': '\\xB4', 'aelig': '\\xE6', 'AElig': '\\xC6', 'agrave': '\\xE0', 'Agrave': '\\xC0', 'amp': '&', 'AMP': '&', 'aring': '\\xE5', 'Aring': '\\xC5', 'atilde': '\\xE3', 'Atilde': '\\xC3', 'auml': '\\xE4', 'Auml': '\\xC4', 'brvbar': '\\xA6', 'ccedil': '\\xE7', 'Ccedil': '\\xC7', 'cedil': '\\xB8', 'cent': '\\xA2', 'copy': '\\xA9', 'COPY': '\\xA9', 'curren': '\\xA4', 'deg': '\\xB0', 'divide': '\\xF7', 'eacute': '\\xE9', 'Eacute': '\\xC9', 'ecirc': '\\xEA', 'Ecirc': '\\xCA', 'egrave': '\\xE8', 'Egrave': '\\xC8', 'eth': '\\xF0', 'ETH': '\\xD0', 'euml': '\\xEB', 'Euml': '\\xCB', 'frac12': '\\xBD', 'frac14': '\\xBC', 'frac34': '\\xBE', 'gt': '>', 'GT': '>', 'iacute': '\\xED', 'Iacute': '\\xCD', 'icirc': '\\xEE', 'Icirc': '\\xCE', 'iexcl': '\\xA1', 'igrave': '\\xEC', 'Igrave': '\\xCC', 'iquest': '\\xBF', 'iuml': '\\xEF', 'Iuml': '\\xCF', 'laquo': '\\xAB', 'lt': '<', 'LT': '<', 'macr': '\\xAF', 'micro': '\\xB5', 'middot': '\\xB7', 'nbsp': '\\xA0', 'not': '\\xAC', 'ntilde': '\\xF1', 'Ntilde': '\\xD1', 'oacute': '\\xF3', 'Oacute': '\\xD3', 'ocirc': '\\xF4', 'Ocirc': '\\xD4', 'ograve': '\\xF2', 'Ograve': '\\xD2', 'ordf': '\\xAA', 'ordm': '\\xBA', 'oslash': '\\xF8', 'Oslash': '\\xD8', 'otilde': '\\xF5', 'Otilde': '\\xD5', 'ouml': '\\xF6', 'Ouml': '\\xD6', 'para': '\\xB6', 'plusmn': '\\xB1', 'pound': '\\xA3', 'quot': '\"', 'QUOT': '\"', 'raquo': '\\xBB', 'reg': '\\xAE', 'REG': '\\xAE', 'sect': '\\xA7', 'shy': '\\xAD', 'sup1': '\\xB9', 'sup2': '\\xB2', 'sup3': '\\xB3', 'szlig': '\\xDF', 'thorn': '\\xFE', 'THORN': '\\xDE', 'times': '\\xD7', 'uacute': '\\xFA', 'Uacute': '\\xDA', 'ucirc': '\\xFB', 'Ucirc': '\\xDB', 'ugrave': '\\xF9', 'Ugrave': '\\xD9', 'uml': '\\xA8', 'uuml': '\\xFC', 'Uuml': '\\xDC', 'yacute': '\\xFD', 'Yacute': '\\xDD', 'yen': '\\xA5', 'yuml': '\\xFF' };\n\tvar decodeMapNumeric = { '0': '\\uFFFD', '128': '\\u20AC', '130': '\\u201A', '131': '\\u0192', '132': '\\u201E', '133': '\\u2026', '134': '\\u2020', '135': '\\u2021', '136': '\\u02C6', '137': '\\u2030', '138': '\\u0160', '139': '\\u2039', '140': '\\u0152', '142': '\\u017D', '145': '\\u2018', '146': '\\u2019', '147': '\\u201C', '148': '\\u201D', '149': '\\u2022', '150': '\\u2013', '151': '\\u2014', '152': '\\u02DC', '153': '\\u2122', '154': '\\u0161', '155': '\\u203A', '156': '\\u0153', '158': '\\u017E', '159': '\\u0178' };\n\tvar invalidReferenceCodePoints = [1, 2, 3, 4, 5, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 64976, 64977, 64978, 64979, 64980, 64981, 64982, 64983, 64984, 64985, 64986, 64987, 64988, 64989, 64990, 64991, 64992, 64993, 64994, 64995, 64996, 64997, 64998, 64999, 65000, 65001, 65002, 65003, 65004, 65005, 65006, 65007, 65534, 65535, 131070, 131071, 196606, 196607, 262142, 262143, 327678, 327679, 393214, 393215, 458750, 458751, 524286, 524287, 589822, 589823, 655358, 655359, 720894, 720895, 786430, 786431, 851966, 851967, 917502, 917503, 983038, 983039, 1048574, 1048575, 1114110, 1114111];\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\tvar object = {};\n\tvar hasOwnProperty = object.hasOwnProperty;\n\tvar has = function has(object, propertyName) {\n\t\treturn hasOwnProperty.call(object, propertyName);\n\t};\n\n\tvar contains = function contains(array, value) {\n\t\tvar index = -1;\n\t\tvar length = array.length;\n\t\twhile (++index < length) {\n\t\t\tif (array[index] == value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tvar merge = function merge(options, defaults) {\n\t\tif (!options) {\n\t\t\treturn defaults;\n\t\t}\n\t\tvar result = {};\n\t\tvar key;\n\t\tfor (key in defaults) {\n\t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\n\t\t\t// option names are used anyway. Any others are ignored.\n\t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\n\t\t}\n\t\treturn result;\n\t};\n\n\t// Modified version of `ucs2encode`; see https://mths.be/punycode.\n\tvar codePointToSymbol = function codePointToSymbol(codePoint, strict) {\n\t\tvar output = '';\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF || codePoint > 0x10FFFF) {\n\t\t\t// See issue #4:\n\t\t\t// “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is\n\t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\n\t\t\t// REPLACEMENT CHARACTER.”\n\t\t\tif (strict) {\n\t\t\t\tparseError('character reference outside the permissible Unicode range');\n\t\t\t}\n\t\t\treturn '\\uFFFD';\n\t\t}\n\t\tif (has(decodeMapNumeric, codePoint)) {\n\t\t\tif (strict) {\n\t\t\t\tparseError('disallowed character reference');\n\t\t\t}\n\t\t\treturn decodeMapNumeric[codePoint];\n\t\t}\n\t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\n\t\t\tparseError('disallowed character reference');\n\t\t}\n\t\tif (codePoint > 0xFFFF) {\n\t\t\tcodePoint -= 0x10000;\n\t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(codePoint);\n\t\treturn output;\n\t};\n\n\tvar hexEscape = function hexEscape(codePoint) {\n\t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\n\t};\n\n\tvar decEscape = function decEscape(codePoint) {\n\t\treturn '&#' + codePoint + ';';\n\t};\n\n\tvar parseError = function parseError(message) {\n\t\tthrow Error('Parse error: ' + message);\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar encode = function encode(string, options) {\n\t\toptions = merge(options, encode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidRawCodePoint.test(string)) {\n\t\t\tparseError('forbidden code point');\n\t\t}\n\t\tvar encodeEverything = options.encodeEverything;\n\t\tvar useNamedReferences = options.useNamedReferences;\n\t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\n\t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\n\n\t\tvar escapeBmpSymbol = function escapeBmpSymbol(symbol) {\n\t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\n\t\t};\n\n\t\tif (encodeEverything) {\n\t\t\t// Encode ASCII symbols.\n\t\t\tstring = string.replace(regexAsciiWhitelist, function (symbol) {\n\t\t\t\t// Use named references if requested & possible.\n\t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\n\t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\n\t\t\t\t}\n\t\t\t\treturn escapeBmpSymbol(symbol);\n\t\t\t});\n\t\t\t// Shorten a few escapes that represent two symbols, of which at least one\n\t\t\t// is within the ASCII range.\n\t\t\tif (useNamedReferences) {\n\t\t\t\tstring = string.replace(/>\\u20D2/g, '>⃒').replace(/<\\u20D2/g, '<⃒').replace(/fj/g, 'fj');\n\t\t\t}\n\t\t\t// Encode non-ASCII symbols.\n\t\t\tif (useNamedReferences) {\n\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\t\tstring = string.replace(regexEncodeNonAscii, function (string) {\n\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\n\t\t} else if (useNamedReferences) {\n\t\t\t// Apply named character references.\n\t\t\t// Encode `<>\"'&` using named character references.\n\t\t\tif (!allowUnsafeSymbols) {\n\t\t\t\tstring = string.replace(regexEscape, function (string) {\n\t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Shorten escapes that represent two symbols, of which at least one is\n\t\t\t// `<>\"'&`.\n\t\t\tstring = string.replace(/>\\u20D2/g, '>⃒').replace(/<\\u20D2/g, '<⃒');\n\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\tstring = string.replace(regexEncodeNonAscii, function (string) {\n\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t});\n\t\t} else if (!allowUnsafeSymbols) {\n\t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they’re not handled\n\t\t\t// using named character references.\n\t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\n\t\t}\n\t\treturn string\n\t\t// Encode astral symbols.\n\t\t.replace(regexAstralSymbols, function ($0) {\n\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\tvar high = $0.charCodeAt(0);\n\t\t\tvar low = $0.charCodeAt(1);\n\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\n\t\t\treturn escapeCodePoint(codePoint);\n\t\t})\n\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\n\t\t// using a hexadecimal escape.\n\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tencode.options = {\n\t\t'allowUnsafeSymbols': false,\n\t\t'encodeEverything': false,\n\t\t'strict': false,\n\t\t'useNamedReferences': false,\n\t\t'decimal': false\n\t};\n\n\tvar decode = function decode(html, options) {\n\t\toptions = merge(options, decode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidEntity.test(html)) {\n\t\t\tparseError('malformed character reference');\n\t\t}\n\t\treturn html.replace(regexDecode, function ($0, $1, $2, $3, $4, $5, $6, $7, $8) {\n\t\t\tvar codePoint;\n\t\t\tvar semicolon;\n\t\t\tvar decDigits;\n\t\t\tvar hexDigits;\n\t\t\tvar reference;\n\t\t\tvar next;\n\n\t\t\tif ($1) {\n\t\t\t\treference = $1;\n\t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\n\t\t\t\treturn decodeMap[reference];\n\t\t\t}\n\n\t\t\tif ($2) {\n\t\t\t\t// Decode named character references without trailing `;`, e.g. `&`.\n\t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\n\t\t\t\t// followed by `=` in an attribute context.\n\t\t\t\treference = $2;\n\t\t\t\tnext = $3;\n\t\t\t\tif (next && options.isAttributeValue) {\n\t\t\t\t\tif (strict && next == '=') {\n\t\t\t\t\t\tparseError('`&` did not start a character reference');\n\t\t\t\t\t}\n\t\t\t\t\treturn $0;\n\t\t\t\t} else {\n\t\t\t\t\tif (strict) {\n\t\t\t\t\t\tparseError('named character reference was not terminated by a semicolon');\n\t\t\t\t\t}\n\t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\n\t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($4) {\n\t\t\t\t// Decode decimal escapes, e.g. `𝌆`.\n\t\t\t\tdecDigits = $4;\n\t\t\t\tsemicolon = $5;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(decDigits, 10);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\tif ($6) {\n\t\t\t\t// Decode hexadecimal escapes, e.g. `𝌆`.\n\t\t\t\thexDigits = $6;\n\t\t\t\tsemicolon = $7;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(hexDigits, 16);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\t// If we’re still here, `if ($7)` is implied; it’s an ambiguous\n\t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\n\t\t\tif (strict) {\n\t\t\t\tparseError('named character reference was not terminated by a semicolon');\n\t\t\t}\n\t\t\treturn $0;\n\t\t});\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tdecode.options = {\n\t\t'isAttributeValue': false,\n\t\t'strict': false\n\t};\n\n\tvar escape = function escape(string) {\n\t\treturn string.replace(regexEscape, function ($0) {\n\t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\n\t\t\treturn escapeMap[$0];\n\t\t});\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar he = {\n\t\t'version': '1.2.0',\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'escape': escape,\n\t\t'unescape': decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif ( true && _typeof(__webpack_require__(/*! !webpack amd options */ \"./node_modules/webpack/buildin/amd-options.js\")) == 'object' && __webpack_require__(/*! !webpack amd options */ \"./node_modules/webpack/buildin/amd-options.js\")) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn he;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = he;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in he) {\n\t\t\t\thas(he, key) && (freeExports[key] = he[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.he = he;\n\t}\n})(undefined);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://Contentstack/./node_modules/he/he.js?"); + +/***/ }), + /***/ "./node_modules/localStorage/lib/localStorage.js": /*!*******************************************************!*\ !*** ./node_modules/localStorage/lib/localStorage.js ***! @@ -135,6 +159,125 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ }), +/***/ "./node_modules/node-html-parser/dist/esm/back.js": +/*!********************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/back.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = arr_back;\nfunction arr_back(arr) {\n return arr[arr.length - 1];\n}\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/back.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/index.js": +/*!*********************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/index.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _comment = __webpack_require__(/*! ./nodes/comment */ \"./node_modules/node-html-parser/dist/esm/nodes/comment.js\");\n\nObject.defineProperty(exports, 'CommentNode', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_comment).default;\n }\n});\n\nvar _html = __webpack_require__(/*! ./nodes/html */ \"./node_modules/node-html-parser/dist/esm/nodes/html.js\");\n\nObject.defineProperty(exports, 'HTMLElement', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_html).default;\n }\n});\nObject.defineProperty(exports, 'parse', {\n enumerable: true,\n get: function get() {\n return _html.parse;\n }\n});\nObject.defineProperty(exports, 'default', {\n enumerable: true,\n get: function get() {\n return _html.parse;\n }\n});\n\nvar _node = __webpack_require__(/*! ./nodes/node */ \"./node_modules/node-html-parser/dist/esm/nodes/node.js\");\n\nObject.defineProperty(exports, 'Node', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_node).default;\n }\n});\n\nvar _text = __webpack_require__(/*! ./nodes/text */ \"./node_modules/node-html-parser/dist/esm/nodes/text.js\");\n\nObject.defineProperty(exports, 'TextNode', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_text).default;\n }\n});\n\nvar _type = __webpack_require__(/*! ./nodes/type */ \"./node_modules/node-html-parser/dist/esm/nodes/type.js\");\n\nObject.defineProperty(exports, 'NodeType', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_type).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/index.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/matcher.js": +/*!***********************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/matcher.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Cache to store generated match functions\n * @type {Object}\n */\nvar pMatchFunctionCache = {};\nfunction compare_tagname(tag1, tag2) {\n if (!tag1) {\n return !tag2;\n }\n if (!tag2) {\n return !tag1;\n }\n return tag1.toLowerCase() === tag2.toLowerCase();\n}\n/**\n * Function cache\n */\nvar functionCache = {\n f145: function f145(el, tagName, classes) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n if (el.id !== tagName.substr(1)) {\n return false;\n }\n for (var cls = classes, i = 0; i < cls.length; i++) {\n if (el.classNames.indexOf(cls[i]) === -1) {\n return false;\n }\n }\n return true;\n },\n f45: function f45(el, tagName, classes) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n for (var cls = classes, i = 0; i < cls.length; i++) {\n if (el.classNames.indexOf(cls[i]) === -1) {\n return false;\n }\n }\n return true;\n },\n f15: function f15(el, tagName) {\n 'use strict';\n\n tagName = tagName || '';\n if (el.id !== tagName.substr(1)) {\n return false;\n }\n return true;\n },\n f1: function f1(el, tagName) {\n 'use strict';\n\n tagName = tagName || '';\n if (el.id !== tagName.substr(1)) {\n return false;\n }\n },\n f5: function f5() {\n 'use strict';\n\n return true;\n },\n f55: function f55(el, tagName, classes, attr_key) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n attr_key = attr_key || '';\n var attrs = el.attributes;\n return attrs.hasOwnProperty(attr_key);\n },\n f245: function f245(el, tagName, classes, attr_key, value) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n attr_key = (attr_key || '').toLowerCase();\n value = value || '';\n var attrs = el.attributes;\n return Object.keys(attrs).some(function (key) {\n var val = attrs[key];\n return key.toLowerCase() === attr_key && val === value;\n });\n // for (let cls = classes, i = 0; i < cls.length; i++) {if (el.classNames.indexOf(cls[i]) === -1){ return false;}}\n // return true;\n },\n f25: function f25(el, tagName, classes, attr_key, value) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n attr_key = (attr_key || '').toLowerCase();\n value = value || '';\n var attrs = el.attributes;\n return Object.keys(attrs).some(function (key) {\n var val = attrs[key];\n return key.toLowerCase() === attr_key && val === value;\n });\n // return true;\n },\n f2: function f2(el, tagName, classes, attr_key, value) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n attr_key = (attr_key || '').toLowerCase();\n value = value || '';\n var attrs = el.attributes;\n return Object.keys(attrs).some(function (key) {\n var val = attrs[key];\n return key.toLowerCase() === attr_key && val === value;\n });\n },\n f345: function f345(el, tagName, classes) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n if (!compare_tagname(el.tagName, tagName)) {\n return false;\n }\n for (var cls = classes, i = 0; i < cls.length; i++) {\n if (el.classNames.indexOf(cls[i]) === -1) {\n return false;\n }\n }\n return true;\n },\n f35: function f35(el, tagName) {\n 'use strict';\n\n tagName = tagName || '';\n return compare_tagname(el.tagName, tagName);\n },\n f3: function f3(el, tagName) {\n 'use strict';\n\n tagName = tagName || '';\n // if (el.tagName !== tagName) {\n // \treturn false;\n // }\n return compare_tagname(el.tagName, tagName);\n }\n};\n/**\n * Matcher class to make CSS match\n *\n * @class Matcher\n */\n\nvar Matcher = function () {\n /**\n * Creates an instance of Matcher.\n * @param {string} selector\n *\n * @memberof Matcher\n */\n function Matcher(selector) {\n _classCallCheck(this, Matcher);\n\n this.nextMatch = 0;\n this.matchers = selector.split(' ').map(function (matcher) {\n if (pMatchFunctionCache[matcher]) {\n return pMatchFunctionCache[matcher];\n }\n var parts = matcher.split('.');\n var tagName = parts[0];\n var classes = parts.slice(1).sort();\n // let source = '\"use strict\";';\n var function_name = 'f';\n var attr_key = '';\n var value = '';\n if (tagName && tagName !== '*') {\n if (tagName.startsWith('#')) {\n // source += 'if (el.id != ' + JSON.stringify(tagName.substr(1)) + ') return false;';// 1\n function_name += '1';\n } else {\n // https://github.com/taoqf/node-html-parser/issues/86\n // const reg = /\\[\\s*([\\w-]+)(\\s*=\\s*(((?'|\")\\s*(.*)(\\k))|(\\S*)))?\\s*\\]/.exec(tagName);\n // `[a-b]`,`[ a-b ]`,`[a-b=c]`, `[a-b=c'd]`,`[a-b='c\\' d\"e ']`,`[ a-b = 'c\\' d\"e ' ]`,`[a-b=\"c' d\\\"e \" ]`,`[ a-b = \"c' d\\\"e \" ]`\n var reg = /\\[\\s*([\\w-]+)(\\s*=\\s*(('\\s*(.*)'|\"\\s*(.*)\")|(\\S*)))?\\s*\\]/.exec(tagName);\n if (reg) {\n attr_key = reg[1];\n value = reg[5] || reg[6] || reg[7];\n // source += `let attrs = el.attributes;for (let key in attrs){const val = attrs[key]; if (key == \"${attr_key}\" && val == \"${value}\"){return true;}} return false;`;// 2\n function_name += '2';\n } else {\n // source += 'if (el.tagName != ' + JSON.stringify(tagName) + ') return false;';// 3\n function_name += '3';\n }\n }\n }\n if (classes.length > 0) {\n // source += 'for (let cls = ' + JSON.stringify(classes) + ', i = 0; i < cls.length; i++) if (el.classNames.indexOf(cls[i]) === -1) return false;';// 4\n function_name += '4';\n }\n // source += 'return true;';// 5\n function_name += '5';\n var obj = {\n func: functionCache[function_name],\n tagName: tagName || '',\n classes: classes || '',\n attr_key: attr_key || '',\n value: value || ''\n };\n // source = source || '';\n return pMatchFunctionCache[matcher] = obj;\n });\n }\n /**\n * Trying to advance match pointer\n * @param {HTMLElement} el element to make the match\n * @return {bool} true when pointer advanced.\n */\n\n\n _createClass(Matcher, [{\n key: 'advance',\n value: function advance(el) {\n if (this.nextMatch < this.matchers.length && this.matchers[this.nextMatch].func(el, this.matchers[this.nextMatch].tagName, this.matchers[this.nextMatch].classes, this.matchers[this.nextMatch].attr_key, this.matchers[this.nextMatch].value)) {\n this.nextMatch++;\n return true;\n }\n return false;\n }\n /**\n * Rewind the match pointer\n */\n\n }, {\n key: 'rewind',\n value: function rewind() {\n this.nextMatch--;\n }\n /**\n * Trying to determine if match made.\n * @return {bool} true when the match is made\n */\n\n }, {\n key: 'reset',\n\n /**\n * Rest match pointer.\n * @return {[type]} [description]\n */\n value: function reset() {\n this.nextMatch = 0;\n }\n /**\n * flush cache to free memory\n */\n\n }, {\n key: 'flushCache',\n value: function flushCache() {\n pMatchFunctionCache = {};\n }\n }, {\n key: 'matched',\n get: function get() {\n return this.nextMatch === this.matchers.length;\n }\n }]);\n\n return Matcher;\n}();\n\nexports.default = Matcher;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/matcher.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/nodes/comment.js": +/*!*****************************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/nodes/comment.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _node = __webpack_require__(/*! ./node */ \"./node_modules/node-html-parser/dist/esm/nodes/node.js\");\n\nvar _node2 = _interopRequireDefault(_node);\n\nvar _type = __webpack_require__(/*! ./type */ \"./node_modules/node-html-parser/dist/esm/nodes/type.js\");\n\nvar _type2 = _interopRequireDefault(_type);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CommentNode = function (_Node) {\n _inherits(CommentNode, _Node);\n\n function CommentNode(rawText) {\n _classCallCheck(this, CommentNode);\n\n var _this = _possibleConstructorReturn(this, (CommentNode.__proto__ || Object.getPrototypeOf(CommentNode)).call(this));\n\n _this.rawText = rawText;\n /**\n * Node Type declaration.\n * @type {Number}\n */\n _this.nodeType = _type2.default.COMMENT_NODE;\n return _this;\n }\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n\n\n _createClass(CommentNode, [{\n key: 'toString',\n value: function toString() {\n return '';\n }\n }, {\n key: 'text',\n get: function get() {\n return this.rawText;\n }\n }]);\n\n return CommentNode;\n}(_node2.default);\n\nexports.default = CommentNode;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/comment.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/nodes/html.js": +/*!**************************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/nodes/html.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.parse = parse;\n\nvar _he = __webpack_require__(/*! he */ \"./node_modules/he/he.js\");\n\nvar _node = __webpack_require__(/*! ./node */ \"./node_modules/node-html-parser/dist/esm/nodes/node.js\");\n\nvar _node2 = _interopRequireDefault(_node);\n\nvar _type = __webpack_require__(/*! ./type */ \"./node_modules/node-html-parser/dist/esm/nodes/type.js\");\n\nvar _type2 = _interopRequireDefault(_type);\n\nvar _text3 = __webpack_require__(/*! ./text */ \"./node_modules/node-html-parser/dist/esm/nodes/text.js\");\n\nvar _text4 = _interopRequireDefault(_text3);\n\nvar _matcher = __webpack_require__(/*! ../matcher */ \"./node_modules/node-html-parser/dist/esm/matcher.js\");\n\nvar _matcher2 = _interopRequireDefault(_matcher);\n\nvar _back = __webpack_require__(/*! ../back */ \"./node_modules/node-html-parser/dist/esm/back.js\");\n\nvar _back2 = _interopRequireDefault(_back);\n\nvar _comment = __webpack_require__(/*! ./comment */ \"./node_modules/node-html-parser/dist/esm/nodes/comment.js\");\n\nvar _comment2 = _interopRequireDefault(_comment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar kBlockElements = new Map();\nkBlockElements.set('DIV', true);\nkBlockElements.set('div', true);\nkBlockElements.set('P', true);\nkBlockElements.set('p', true);\n// ul: true,\n// ol: true,\nkBlockElements.set('LI', true);\nkBlockElements.set('li', true);\n// table: true,\n// tr: true,\nkBlockElements.set('TD', true);\nkBlockElements.set('td', true);\nkBlockElements.set('SECTION', true);\nkBlockElements.set('section', true);\nkBlockElements.set('BR', true);\nkBlockElements.set('br', true);\n/**\n * HTMLElement, which contains a set of children.\n *\n * Note: this is a minimalist implementation, no complete tree\n * structure provided (no parentNode, nextSibling,\n * previousSibling etc).\n * @class HTMLElement\n * @extends {Node}\n */\n\nvar HTMLElement = function (_Node) {\n _inherits(HTMLElement, _Node);\n\n /**\n * Creates an instance of HTMLElement.\n * @param keyAttrs\tid and class attribute\n * @param [rawAttrs]\tattributes in string\n *\n * @memberof HTMLElement\n */\n function HTMLElement(tagName, keyAttrs) {\n var rawAttrs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n var parentNode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, HTMLElement);\n\n var _this = _possibleConstructorReturn(this, (HTMLElement.__proto__ || Object.getPrototypeOf(HTMLElement)).call(this));\n\n _this.rawAttrs = rawAttrs;\n _this.parentNode = parentNode;\n _this.classNames = [];\n /**\n * Node Type declaration.\n */\n _this.nodeType = _type2.default.ELEMENT_NODE;\n _this.rawTagName = tagName;\n _this.rawAttrs = rawAttrs || '';\n _this.parentNode = parentNode || null;\n _this.childNodes = [];\n if (keyAttrs.id) {\n _this.id = keyAttrs.id;\n if (!rawAttrs) {\n _this.rawAttrs = 'id=\"' + keyAttrs.id + '\"';\n }\n }\n if (keyAttrs.class) {\n _this.classNames = keyAttrs.class.split(/\\s+/);\n if (!rawAttrs) {\n var cls = 'class=\"' + _this.classNames.join(' ') + '\"';\n if (_this.rawAttrs) {\n _this.rawAttrs += ' ' + cls;\n } else {\n _this.rawAttrs = cls;\n }\n }\n }\n return _this;\n }\n /**\n * Remove current element\n */\n\n\n _createClass(HTMLElement, [{\n key: 'remove',\n value: function remove() {\n var _this2 = this;\n\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n this.parentNode.childNodes = children.filter(function (child) {\n return _this2 !== child;\n });\n }\n }\n /**\n * Remove Child element from childNodes array\n * @param {HTMLElement} node node to remove\n */\n\n }, {\n key: 'removeChild',\n value: function removeChild(node) {\n this.childNodes = this.childNodes.filter(function (child) {\n return child !== node;\n });\n }\n /**\n * Exchanges given child with new child\n * @param {HTMLElement} oldNode node to exchange\n * @param {HTMLElement} newNode new node\n */\n\n }, {\n key: 'exchangeChild',\n value: function exchangeChild(oldNode, newNode) {\n var children = this.childNodes;\n this.childNodes = children.map(function (child) {\n if (child === oldNode) {\n return newNode;\n }\n return child;\n });\n }\n }, {\n key: 'toString',\n value: function toString() {\n var tag = this.rawTagName;\n if (tag) {\n var is_void = /^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/i.test(tag);\n var attrs = this.rawAttrs ? ' ' + this.rawAttrs : '';\n if (is_void) {\n return '<' + tag + attrs + '>';\n }\n return '<' + tag + attrs + '>' + this.innerHTML + '';\n }\n return this.innerHTML;\n }\n }, {\n key: 'set_content',\n value: function set_content(content) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (content instanceof _node2.default) {\n content = [content];\n } else if (typeof content == 'string') {\n var r = parse(content, options);\n content = r.childNodes.length ? r.childNodes : [new _text4.default(content)];\n }\n this.childNodes = content;\n }\n }, {\n key: 'trimRight',\n\n /**\n * Trim element from right (in block) after seeing pattern in a TextNode.\n * @param {RegExp} pattern pattern to find\n * @return {HTMLElement} reference to current node\n */\n value: function trimRight(pattern) {\n for (var i = 0; i < this.childNodes.length; i++) {\n var childNode = this.childNodes[i];\n if (childNode.nodeType === _type2.default.ELEMENT_NODE) {\n childNode.trimRight(pattern);\n } else {\n var index = childNode.rawText.search(pattern);\n if (index > -1) {\n childNode.rawText = childNode.rawText.substr(0, index);\n // trim all following nodes.\n this.childNodes.length = i + 1;\n }\n }\n }\n return this;\n }\n /**\n * Get DOM structure\n * @return {string} strucutre\n */\n\n }, {\n key: 'removeWhitespace',\n\n /**\n * Remove whitespaces in this sub tree.\n * @return {HTMLElement} pointer to this\n */\n value: function removeWhitespace() {\n var _this3 = this;\n\n var o = 0;\n this.childNodes.forEach(function (node) {\n if (node.nodeType === _type2.default.TEXT_NODE) {\n if (node.isWhitespace) {\n return;\n }\n node.rawText = node.rawText.trim();\n } else if (node.nodeType === _type2.default.ELEMENT_NODE) {\n node.removeWhitespace();\n }\n _this3.childNodes[o++] = node;\n });\n this.childNodes.length = o;\n return this;\n }\n /**\n * Query CSS selector to find matching nodes.\n * @param {string} selector Simplified CSS selector\n * @param {Matcher} selector A Matcher instance\n * @return {HTMLElement[]} matching elements\n */\n\n }, {\n key: 'querySelectorAll',\n value: function querySelectorAll(selector) {\n var _this4 = this;\n\n var matcher = void 0;\n if (selector instanceof _matcher2.default) {\n matcher = selector;\n matcher.reset();\n } else {\n if (selector.includes(',')) {\n var selectors = selector.split(',');\n return Array.from(selectors.reduce(function (pre, cur) {\n var result = _this4.querySelectorAll(cur.trim());\n return result.reduce(function (p, c) {\n return p.add(c);\n }, pre);\n }, new Set()));\n }\n matcher = new _matcher2.default(selector);\n }\n var stack = [];\n return this.childNodes.reduce(function (res, cur) {\n stack.push([cur, 0, false]);\n while (stack.length) {\n var state = (0, _back2.default)(stack); // get last element\n var el = state[0];\n if (state[1] === 0) {\n // Seen for first time.\n if (el.nodeType !== _type2.default.ELEMENT_NODE) {\n stack.pop();\n continue;\n }\n var html_el = el;\n state[2] = matcher.advance(html_el);\n if (state[2]) {\n if (matcher.matched) {\n res.push(html_el);\n res.push.apply(res, _toConsumableArray(html_el.querySelectorAll(selector)));\n // no need to go further.\n matcher.rewind();\n stack.pop();\n continue;\n }\n }\n }\n if (state[1] < el.childNodes.length) {\n stack.push([el.childNodes[state[1]++], 0, false]);\n } else {\n if (state[2]) {\n matcher.rewind();\n }\n stack.pop();\n }\n }\n return res;\n }, []);\n }\n /**\n * Query CSS Selector to find matching node.\n * @param {string} selector Simplified CSS selector\n * @param {Matcher} selector A Matcher instance\n * @return {HTMLElement} matching node\n */\n\n }, {\n key: 'querySelector',\n value: function querySelector(selector) {\n var matcher = void 0;\n if (selector instanceof _matcher2.default) {\n matcher = selector;\n matcher.reset();\n } else {\n matcher = new _matcher2.default(selector);\n }\n var stack = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.childNodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var node = _step.value;\n\n stack.push([node, 0, false]);\n while (stack.length) {\n var state = (0, _back2.default)(stack);\n var el = state[0];\n if (state[1] === 0) {\n // Seen for first time.\n if (el.nodeType !== _type2.default.ELEMENT_NODE) {\n stack.pop();\n continue;\n }\n state[2] = matcher.advance(el);\n if (state[2]) {\n if (matcher.matched) {\n return el;\n }\n }\n }\n if (state[1] < el.childNodes.length) {\n stack.push([el.childNodes[state[1]++], 0, false]);\n } else {\n if (state[2]) {\n matcher.rewind();\n }\n stack.pop();\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return null;\n }\n /**\n * Append a child node to childNodes\n * @param {Node} node node to append\n * @return {Node} node appended\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n // node.parentNode = this;\n this.childNodes.push(node);\n if (node instanceof HTMLElement) {\n node.parentNode = this;\n }\n return node;\n }\n /**\n * Get first child node\n * @return {Node} first child node\n */\n\n }, {\n key: 'removeAttribute',\n value: function removeAttribute(key) {\n var attrs = this.rawAttributes;\n delete attrs[key];\n // Update this.attribute\n if (this._attrs) {\n delete this._attrs[key];\n }\n // Update rawString\n this.rawAttrs = Object.keys(attrs).map(function (name) {\n var val = JSON.stringify(attrs[name]);\n if (val === undefined || val === 'null') {\n return name;\n }\n return name + '=' + val;\n }).join(' ');\n }\n }, {\n key: 'hasAttribute',\n value: function hasAttribute(key) {\n return key in this.attributes;\n }\n /**\n * Get an attribute\n * @return {string} value of the attribute\n */\n\n }, {\n key: 'getAttribute',\n value: function getAttribute(key) {\n return this.attributes[key];\n }\n /**\n * Set an attribute value to the HTMLElement\n * @param {string} key The attribute name\n * @param {string} value The value to set, or null / undefined to remove an attribute\n */\n\n }, {\n key: 'setAttribute',\n value: function setAttribute(key, value) {\n if (arguments.length < 2) {\n throw new Error('Failed to execute \\'setAttribute\\' on \\'Element\\'');\n }\n var attrs = this.rawAttributes;\n attrs[key] = String(value);\n if (this._attrs) {\n this._attrs[key] = (0, _he.decode)(attrs[key]);\n }\n // Update rawString\n this.rawAttrs = Object.keys(attrs).map(function (name) {\n var val = JSON.stringify(attrs[name]);\n if (val === 'null' || val === '\"\"') {\n return name;\n }\n return name + '=' + val;\n }).join(' ');\n }\n /**\n * Replace all the attributes of the HTMLElement by the provided attributes\n * @param {Attributes} attributes the new attribute set\n */\n\n }, {\n key: 'setAttributes',\n value: function setAttributes(attributes) {\n // Invalidate current this.attributes\n if (this._attrs) {\n delete this._attrs;\n }\n // Invalidate current this.rawAttributes\n if (this._rawAttrs) {\n delete this._rawAttrs;\n }\n // Update rawString\n this.rawAttrs = Object.keys(attributes).map(function (name) {\n var val = attributes[name];\n if (val === 'null' || val === '\"\"') {\n return name;\n }\n return name + '=' + JSON.stringify(String(val));\n }).join(' ');\n }\n }, {\n key: 'insertAdjacentHTML',\n value: function insertAdjacentHTML(where, html) {\n var _this5 = this;\n\n if (arguments.length < 2) {\n throw new Error('2 arguments required');\n }\n var p = parse(html);\n if (where === 'afterend') {\n var _parentNode$childNode;\n\n var idx = this.parentNode.childNodes.findIndex(function (child) {\n return child === _this5;\n });\n (_parentNode$childNode = this.parentNode.childNodes).splice.apply(_parentNode$childNode, [idx + 1, 0].concat(_toConsumableArray(p.childNodes)));\n p.childNodes.forEach(function (n) {\n if (n instanceof HTMLElement) {\n n.parentNode = _this5.parentNode;\n }\n });\n } else if (where === 'afterbegin') {\n var _childNodes;\n\n (_childNodes = this.childNodes).unshift.apply(_childNodes, _toConsumableArray(p.childNodes));\n } else if (where === 'beforeend') {\n p.childNodes.forEach(function (n) {\n _this5.appendChild(n);\n });\n } else if (where === 'beforebegin') {\n var _parentNode$childNode2;\n\n var _idx = this.parentNode.childNodes.findIndex(function (child) {\n return child === _this5;\n });\n (_parentNode$childNode2 = this.parentNode.childNodes).splice.apply(_parentNode$childNode2, [_idx, 0].concat(_toConsumableArray(p.childNodes)));\n p.childNodes.forEach(function (n) {\n if (n instanceof HTMLElement) {\n n.parentNode = _this5.parentNode;\n }\n });\n } else {\n throw new Error('The value provided (\\'' + where + '\\') is not one of \\'beforebegin\\', \\'afterbegin\\', \\'beforeend\\', or \\'afterend\\'');\n }\n // if (!where || html === undefined || html === null) {\n // \treturn;\n // }\n }\n }, {\n key: 'tagName',\n get: function get() {\n return this.rawTagName ? this.rawTagName.toUpperCase() : this.rawTagName;\n }\n /**\n * Get escpaed (as-it) text value of current node and its children.\n * @return {string} text content\n */\n\n }, {\n key: 'rawText',\n get: function get() {\n return this.childNodes.reduce(function (pre, cur) {\n return pre += cur.rawText;\n }, '');\n }\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n\n }, {\n key: 'text',\n get: function get() {\n return (0, _he.decode)(this.rawText);\n }\n /**\n * Get structured Text (with '\\n' etc.)\n * @return {string} structured text\n */\n\n }, {\n key: 'structuredText',\n get: function get() {\n var currentBlock = [];\n var blocks = [currentBlock];\n function dfs(node) {\n if (node.nodeType === _type2.default.ELEMENT_NODE) {\n if (kBlockElements.get(node.rawTagName)) {\n if (currentBlock.length > 0) {\n blocks.push(currentBlock = []);\n }\n node.childNodes.forEach(dfs);\n if (currentBlock.length > 0) {\n blocks.push(currentBlock = []);\n }\n } else {\n node.childNodes.forEach(dfs);\n }\n } else if (node.nodeType === _type2.default.TEXT_NODE) {\n if (node.isWhitespace) {\n // Whitespace node, postponed output\n currentBlock.prependWhitespace = true;\n } else {\n var text = node.text;\n if (currentBlock.prependWhitespace) {\n text = ' ' + text;\n currentBlock.prependWhitespace = false;\n }\n currentBlock.push(text);\n }\n }\n }\n dfs(this);\n return blocks.map(function (block) {\n // Normalize each line's whitespace\n return block.join('').trim().replace(/\\s{2,}/g, ' ');\n }).join('\\n').replace(/\\s+$/, ''); // trimRight;\n }\n }, {\n key: 'innerHTML',\n get: function get() {\n return this.childNodes.map(function (child) {\n return child.toString();\n }).join('');\n }\n }, {\n key: 'outerHTML',\n get: function get() {\n return this.toString();\n }\n }, {\n key: 'structure',\n get: function get() {\n var res = [];\n var indention = 0;\n function write(str) {\n res.push(' '.repeat(indention) + str);\n }\n function dfs(node) {\n var idStr = node.id ? '#' + node.id : '';\n var classStr = node.classNames.length ? '.' + node.classNames.join('.') : '';\n write(node.rawTagName + idStr + classStr);\n indention++;\n node.childNodes.forEach(function (childNode) {\n if (childNode.nodeType === _type2.default.ELEMENT_NODE) {\n dfs(childNode);\n } else if (childNode.nodeType === _type2.default.TEXT_NODE) {\n if (!childNode.isWhitespace) {\n write('#text');\n }\n }\n });\n indention--;\n }\n dfs(this);\n return res.join('\\n');\n }\n }, {\n key: 'firstChild',\n get: function get() {\n return this.childNodes[0];\n }\n /**\n * Get last child node\n * @return {Node} last child node\n */\n\n }, {\n key: 'lastChild',\n get: function get() {\n return (0, _back2.default)(this.childNodes);\n }\n /**\n * Get attributes\n * @return {Object} parsed and unescaped attributes\n */\n\n }, {\n key: 'attributes',\n get: function get() {\n if (this._attrs) {\n return this._attrs;\n }\n this._attrs = {};\n var attrs = this.rawAttributes;\n for (var key in attrs) {\n var val = attrs[key] || '';\n this._attrs[key] = (0, _he.decode)(val);\n }\n return this._attrs;\n }\n /**\n * Get escaped (as-it) attributes\n * @return {Object} parsed attributes\n */\n\n }, {\n key: 'rawAttributes',\n get: function get() {\n if (this._rawAttrs) {\n return this._rawAttrs;\n }\n var attrs = {};\n if (this.rawAttrs) {\n var re = /\\b([a-z][a-z0-9-]*)(?:\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|(\\S+)))?/ig;\n var match = void 0;\n while (match = re.exec(this.rawAttrs)) {\n attrs[match[1]] = match[2] || match[3] || match[4] || null;\n }\n }\n this._rawAttrs = attrs;\n return attrs;\n }\n }, {\n key: 'nextSibling',\n get: function get() {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = 0;\n while (i < children.length) {\n var child = children[i++];\n if (this === child) {\n return children[i] || null;\n }\n }\n return null;\n }\n }\n }, {\n key: 'nextElementSibling',\n get: function get() {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = 0;\n var find = false;\n while (i < children.length) {\n var child = children[i++];\n if (find) {\n if (child instanceof HTMLElement) {\n return child || null;\n }\n } else if (this === child) {\n find = true;\n }\n }\n return null;\n }\n }\n }]);\n\n return HTMLElement;\n}(_node2.default);\n// https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n\n\nexports.default = HTMLElement;\nvar kMarkupPattern = /)-->|<(\\/?)([a-z][-.:0-9_a-z]*)\\s*([^>]*?)(\\/?)>/ig;\n// <(?[^\\s]*)(.*)>(.*)>\n// <([a-z][-.:0-9_a-z]*)\\s*\\/>\n// <(area|base|br|col|hr|img|input|link|meta|source)\\s*(.*)\\/?>\n// <(area|base|br|col|hr|img|input|link|meta|source)\\s*(.*)\\/?>|<(?[^\\s]*)(.*)>(.*)>\nvar kAttributePattern = /(^|\\s)(id|class)\\s*=\\s*(\"([^\"]+)\"|'([^']+)'|(\\S+))/ig;\nvar kSelfClosingElements = {\n area: true,\n AREA: true,\n base: true,\n BASE: true,\n br: true,\n BR: true,\n col: true,\n COL: true,\n hr: true,\n HR: true,\n img: true,\n IMG: true,\n input: true,\n INPUT: true,\n link: true,\n LINK: true,\n meta: true,\n META: true,\n source: true,\n SOURCE: true,\n embed: true,\n EMBED: true,\n param: true,\n PARAM: true,\n track: true,\n TRACK: true,\n wbr: true,\n WBR: true\n};\nvar kElementsClosedByOpening = {\n li: { li: true, LI: true },\n LI: { li: true, LI: true },\n p: { p: true, div: true, P: true, DIV: true },\n P: { p: true, div: true, P: true, DIV: true },\n b: { div: true, DIV: true },\n B: { div: true, DIV: true },\n td: { td: true, th: true, TD: true, TH: true },\n TD: { td: true, th: true, TD: true, TH: true },\n th: { td: true, th: true, TD: true, TH: true },\n TH: { td: true, th: true, TD: true, TH: true },\n h1: { h1: true, H1: true },\n H1: { h1: true, H1: true },\n h2: { h2: true, H2: true },\n H2: { h2: true, H2: true },\n h3: { h3: true, H3: true },\n H3: { h3: true, H3: true },\n h4: { h4: true, H4: true },\n H4: { h4: true, H4: true },\n h5: { h5: true, H5: true },\n H5: { h5: true, H5: true },\n h6: { h6: true, H6: true },\n H6: { h6: true, H6: true }\n};\nvar kElementsClosedByClosing = {\n li: { ul: true, ol: true, UL: true, OL: true },\n LI: { ul: true, ol: true, UL: true, OL: true },\n a: { div: true, DIV: true },\n A: { div: true, DIV: true },\n b: { div: true, DIV: true },\n B: { div: true, DIV: true },\n i: { div: true, DIV: true },\n I: { div: true, DIV: true },\n p: { div: true, DIV: true },\n P: { div: true, DIV: true },\n td: { tr: true, table: true, TR: true, TABLE: true },\n TD: { tr: true, table: true, TR: true, TABLE: true },\n th: { tr: true, table: true, TR: true, TABLE: true },\n TH: { tr: true, table: true, TR: true, TABLE: true }\n};\nvar frameflag = 'documentfragmentcontainer';\nfunction parse(data) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { lowerCaseTagName: false, comment: false };\n\n var elements = options.blockTextElements || {\n script: true,\n noscript: true,\n style: true,\n pre: true\n };\n var element_names = Object.keys(elements);\n var kBlockTextElements = element_names.map(function (it) {\n return new RegExp(it, 'i');\n });\n var kIgnoreElements = element_names.filter(function (it) {\n return elements[it];\n }).map(function (it) {\n return new RegExp(it, 'i');\n });\n function element_should_be_ignore(tag) {\n return kIgnoreElements.some(function (it) {\n return it.test(tag);\n });\n }\n function is_block_text_element(tag) {\n return kBlockTextElements.some(function (it) {\n return it.test(tag);\n });\n }\n var root = new HTMLElement(null, {});\n var currentParent = root;\n var stack = [root];\n var lastTextPos = -1;\n var match = void 0;\n // https://github.com/taoqf/node-html-parser/issues/38\n data = '<' + frameflag + '>' + data + '';\n while (match = kMarkupPattern.exec(data)) {\n if (lastTextPos > -1) {\n if (lastTextPos + match[0].length < kMarkupPattern.lastIndex) {\n // if has content\n var text = data.substring(lastTextPos, kMarkupPattern.lastIndex - match[0].length);\n currentParent.appendChild(new _text4.default(text));\n }\n }\n lastTextPos = kMarkupPattern.lastIndex;\n if (match[2] === frameflag) {\n continue;\n }\n if (match[0][1] === '!') {\n // this is a comment\n if (options.comment) {\n // Only keep what is in between \n var _text = data.substring(lastTextPos - 3, lastTextPos - match[0].length + 4);\n currentParent.appendChild(new _comment2.default(_text));\n }\n continue;\n }\n if (options.lowerCaseTagName) {\n match[2] = match[2].toLowerCase();\n }\n if (!match[1]) {\n // not or ...\n var closeMarkup = '';\n var index = function () {\n if (options.lowerCaseTagName) {\n return data.toLocaleLowerCase().indexOf(closeMarkup, kMarkupPattern.lastIndex);\n }\n return data.indexOf(closeMarkup, kMarkupPattern.lastIndex);\n }();\n if (element_should_be_ignore(match[2])) {\n var _text2 = void 0;\n if (index === -1) {\n // there is no matching ending for the text element.\n _text2 = data.substr(kMarkupPattern.lastIndex);\n } else {\n _text2 = data.substring(kMarkupPattern.lastIndex, index);\n }\n if (_text2.length > 0) {\n currentParent.appendChild(new _text4.default(_text2));\n }\n }\n if (index === -1) {\n lastTextPos = kMarkupPattern.lastIndex = data.length + 1;\n } else {\n lastTextPos = kMarkupPattern.lastIndex = index + closeMarkup.length;\n match[1] = 'true';\n }\n })();\n }\n }\n if (match[1] || match[4] || kSelfClosingElements[match[2]]) {\n // or
etc.\n while (true) {\n if (currentParent.rawTagName === match[2]) {\n stack.pop();\n currentParent = (0, _back2.default)(stack);\n break;\n } else {\n var _tagName = currentParent.tagName;\n // Trying to close current tag, and move on\n if (kElementsClosedByClosing[_tagName]) {\n if (kElementsClosedByClosing[_tagName][match[2]]) {\n stack.pop();\n currentParent = (0, _back2.default)(stack);\n continue;\n }\n }\n // Use aggressive strategy to handle unmatching markups.\n break;\n }\n }\n }\n }\n var valid = Boolean(stack.length === 1);\n if (!options.noFix) {\n var _response = root;\n _response.valid = valid;\n\n var _loop = function _loop() {\n // Handle each error elements.\n var last = stack.pop();\n var oneBefore = (0, _back2.default)(stack);\n if (last.parentNode && last.parentNode.parentNode) {\n if (last.parentNode === oneBefore && last.tagName === oneBefore.tagName) {\n // Pair error case

handle : Fixes to

\n oneBefore.removeChild(last);\n last.childNodes.forEach(function (child) {\n oneBefore.parentNode.appendChild(child);\n });\n stack.pop();\n } else {\n // Single error

handle: Just removes

\n oneBefore.removeChild(last);\n last.childNodes.forEach(function (child) {\n oneBefore.appendChild(child);\n });\n }\n } else {\n // If it's final element just skip.\n }\n };\n\n while (stack.length > 1) {\n _loop();\n }\n _response.childNodes.forEach(function (node) {\n if (node instanceof HTMLElement) {\n node.parentNode = null;\n }\n });\n return _response;\n }\n var response = new _text4.default(data);\n response.valid = valid;\n return response;\n}\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/html.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/nodes/node.js": +/*!**************************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/nodes/node.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Node Class as base class for TextNode and HTMLElement.\n */\nvar Node = function () {\n function Node() {\n _classCallCheck(this, Node);\n\n this.childNodes = [];\n }\n\n _createClass(Node, [{\n key: \"innerText\",\n get: function get() {\n return this.rawText;\n }\n }]);\n\n return Node;\n}();\n\nexports.default = Node;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/node.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/nodes/text.js": +/*!**************************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/nodes/text.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _type = __webpack_require__(/*! ./type */ \"./node_modules/node-html-parser/dist/esm/nodes/type.js\");\n\nvar _type2 = _interopRequireDefault(_type);\n\nvar _node = __webpack_require__(/*! ./node */ \"./node_modules/node-html-parser/dist/esm/nodes/node.js\");\n\nvar _node2 = _interopRequireDefault(_node);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * TextNode to contain a text element in DOM tree.\n * @param {string} value [description]\n */\nvar TextNode = function (_Node) {\n _inherits(TextNode, _Node);\n\n function TextNode(rawText) {\n _classCallCheck(this, TextNode);\n\n var _this = _possibleConstructorReturn(this, (TextNode.__proto__ || Object.getPrototypeOf(TextNode)).call(this));\n\n _this.rawText = rawText;\n /**\n * Node Type declaration.\n * @type {Number}\n */\n _this.nodeType = _type2.default.TEXT_NODE;\n return _this;\n }\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n\n\n _createClass(TextNode, [{\n key: 'toString',\n value: function toString() {\n return this.text;\n }\n }, {\n key: 'text',\n get: function get() {\n return this.rawText;\n }\n /**\n * Detect if the node contains only white space.\n * @return {bool}\n */\n\n }, {\n key: 'isWhitespace',\n get: function get() {\n return (/^(\\s| )*$/.test(this.rawText)\n );\n }\n }]);\n\n return TextNode;\n}(_node2.default);\n\nexports.default = TextNode;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/text.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/nodes/type.js": +/*!**************************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/nodes/type.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType[NodeType[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType[NodeType[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n})(NodeType || (NodeType = {}));\nexports.default = NodeType;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/type.js?"); + +/***/ }), + +/***/ "./node_modules/webpack/buildin/amd-options.js": +/*!****************************************!*\ + !*** (webpack)/buildin/amd-options.js ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n\n/* WEBPACK VAR INJECTION */}.call(this, {}))\n\n//# sourceURL=webpack://Contentstack/(webpack)/buildin/amd-options.js?"); + +/***/ }), + +/***/ "./node_modules/webpack/buildin/module.js": +/*!***********************************!*\ + !*** (webpack)/buildin/module.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nmodule.exports = function (module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function () {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function get() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function get() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n//# sourceURL=webpack://Contentstack/(webpack)/buildin/module.js?"); + +/***/ }), + /***/ "./src/core/cache-provider/index.js": /*!******************************************!*\ !*** ./src/core/cache-provider/index.js ***! @@ -179,7 +322,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _stack = __webpack_require__(/*! ./stack */ \"./src/core/stack.js\");\n\nvar _stack2 = _interopRequireDefault(_stack);\n\nvar _index = __webpack_require__(/*! ./cache-provider/index */ \"./src/core/cache-provider/index.js\");\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _contentstackregion = __webpack_require__(/*! ./contentstackregion */ \"./src/core/contentstackregion.js\");\n\nvar _contentstackregion2 = _interopRequireDefault(_contentstackregion);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n* @class \n Contentstack \n* @description Creates an instance of `Contentstack`.\n* @instance\n*/\n\nvar Contentstack = function () {\n\tfunction Contentstack() {\n\t\t_classCallCheck(this, Contentstack);\n\n\t\t/**\n * @memberOf Contentstack\n * @description CachePolicy contains different cache policies constants.\n * @example\n * Contentstack.CachePolicy.IGNORE_CACHE\n * Contentstack.CachePolicy.ONLY_NETWORK\n * Contentstack.CachePolicy.CACHE_ELSE_NETWORK\n * Contentstack.CachePolicy.NETWORK_ELSE_CACHE\n * Contentstack.CachePolicy.CACHE_THEN_NETWORK\n */\n\t\tthis.CachePolicy = _index2.default.policies;\n\t\tthis.Region = _contentstackregion2.default;\n\t}\n\t/**\n \n * @memberOf Contentstack\n */\n\n\n\t_createClass(Contentstack, [{\n\t\tkey: \"Stack\",\n\t\tvalue: function Stack() {\n\t\t\tfor (var _len = arguments.length, stack_arguments = Array(_len), _key = 0; _key < _len; _key++) {\n\t\t\t\tstack_arguments[_key] = arguments[_key];\n\t\t\t}\n\n\t\t\treturn new (Function.prototype.bind.apply(_stack2.default, [null].concat(stack_arguments)))();\n\t\t}\n\t}]);\n\n\treturn Contentstack;\n}();\n\nmodule.exports = new Contentstack();\n\n//# sourceURL=webpack://Contentstack/./src/core/contentstack.js?"); +eval("\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _stack = __webpack_require__(/*! ./stack */ \"./src/core/stack.js\");\n\nvar _stack2 = _interopRequireDefault(_stack);\n\nvar _index = __webpack_require__(/*! ./cache-provider/index */ \"./src/core/cache-provider/index.js\");\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _contentstackregion = __webpack_require__(/*! ./contentstackregion */ \"./src/core/contentstackregion.js\");\n\nvar _contentstackregion2 = _interopRequireDefault(_contentstackregion);\n\nvar _utils = __webpack_require__(/*! @contentstack/utils */ \"./node_modules/@contentstack/utils/dist/index.es.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n* @class \n Contentstack \n* @description Creates an instance of `Contentstack`.\n* @instance\n*/\n\nvar Contentstack = function () {\n\tfunction Contentstack() {\n\t\t_classCallCheck(this, Contentstack);\n\n\t\t/**\n * @memberOf Contentstack\n * @description CachePolicy contains different cache policies constants.\n * @example\n * Contentstack.CachePolicy.IGNORE_CACHE\n * Contentstack.CachePolicy.ONLY_NETWORK\n * Contentstack.CachePolicy.CACHE_ELSE_NETWORK\n * Contentstack.CachePolicy.NETWORK_ELSE_CACHE\n * Contentstack.CachePolicy.CACHE_THEN_NETWORK\n */\n\t\tthis.CachePolicy = _index2.default.policies;\n\t\tthis.Region = _contentstackregion2.default;\n\n\t\tthis.Utils = {\n\t\t\t/**\n * @memberof Contentstack\n * @description Renders embedded objects in Rich text from Entry or Multiple Entry Object.\n * \n * @param {EntryEmbedable| EntryEmbedable[]} entry - Objects that contains RTE with embedded objects\n * @param {string[]} keyPaths - Key paths for RTE contents in Entry object\n * @param {RenderOption?} renderOption - Optional render options to render content\n */\n\t\t\trender: _utils.render,\n\t\t\t/**\n * @memberof Contentstack\n * @description Renders embedded objects in Rich text from String or String of array.\n * @param {string | string[]} content - RTE content to render \n * @param {EntryEmbedable} options.entry - Entry object containing embedded objects\n * @param {RenderOption?} options.renderOption - Optional render options to render content\n */\n\t\t\trenderContent: _utils.renderContent\n\t\t};\n\t}\n\t/**\n \n * @memberOf Contentstack\n */\n\n\n\t_createClass(Contentstack, [{\n\t\tkey: \"Stack\",\n\t\tvalue: function Stack() {\n\t\t\tfor (var _len = arguments.length, stack_arguments = Array(_len), _key = 0; _key < _len; _key++) {\n\t\t\t\tstack_arguments[_key] = arguments[_key];\n\t\t\t}\n\n\t\t\treturn new (Function.prototype.bind.apply(_stack2.default, [null].concat(stack_arguments)))();\n\t\t}\n\t}]);\n\n\treturn Contentstack;\n}();\n\nmodule.exports = new Contentstack();\n\n//# sourceURL=webpack://Contentstack/./src/core/contentstack.js?"); /***/ }), @@ -203,7 +346,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = Request;\n\nvar _utils = __webpack_require__(/*! ./utils.js */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _http = __webpack_require__(/*! runtime/http.js */ \"./src/runtime/node/http.js\");\n\nvar _http2 = _interopRequireDefault(_http);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n//JS SDK version\nvar version = '3.12.2';\nvar environment = void 0,\n api_key = void 0;\nfunction Request(options, fetchOptions) {\n return new Promise(function (resolve, reject) {\n var queryParams = void 0;\n var serialize = function serialize(obj, prefix) {\n\n var str = [],\n p = void 0;\n if ((typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj)) === \"object\" && obj.length !== undefined) {\n for (var i = 0, _i = obj.length; i < _i; i++) {\n str.push(prefix + '[]=' + obj[i]);\n }\n } else {\n for (p in obj) {\n var k = prefix ? prefix + \"[\" + p + \"]\" : p,\n v = obj[p];\n str.push(v !== null && (typeof v === \"undefined\" ? \"undefined\" : _typeof(v)) === \"object\" && p !== 'query' ? serialize(v, k) : k + \"=\" + encodeURIComponent(p !== 'query' ? v : JSON.stringify(v)));\n }\n }\n return str.join(\"&\");\n };\n\n var url = options.url,\n headers = options.headers;\n\n // setting headers\n headers['Content-Type'] = 'application/json; charset=UTF-8';\n headers['X-User-Agent'] = 'contentstack-nodejs/' + version;\n\n if (options.body && _typeof(options.body) === 'object') {\n delete options.body._method;\n if (_typeof(options.body.query) === \"object\" && Object.keys(options.body.query).length === 0) delete options.body.query;\n queryParams = serialize(options.body);\n }\n\n return fetchRetry(url + '?' + queryParams, headers, fetchOptions.retryDelay, fetchOptions.retryLimit, fetchOptions, resolve, reject);\n });\n}\n\nfunction wait(retryDelay) {\n return new Promise(function (resolve) {\n setTimeout(resolve, retryDelay);\n });\n}\nasync function safeParseJSON(response) {\n var body = await response.text();\n}\nfunction fetchRetry(url, headers) {\n var retryDelay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var retryLimit = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 5;\n var fetchOptions = arguments[4];\n var resolve = arguments[5];\n var reject = arguments[6];\n\n var option = Object.assign({\n method: 'GET',\n headers: headers,\n timeout: 30000\n }, fetchOptions);\n\n function onError(error) {\n if (retryLimit === 0) {\n reject(error);\n } else {\n var msDelay = retryDelay;\n retryLimit = retryLimit - 1;\n var retryCount = fetchOptions.retryLimit - retryLimit;\n if (fetchOptions.retryDelayOptions) {\n if (fetchOptions.retryDelayOptions.base) {\n msDelay = fetchOptions.retryDelayOptions.base * retryCount;\n } else if (fetchOptions.retryDelayOptions.customBackoff) {\n msDelay = fetchOptions.retryDelayOptions.customBackoff(retryCount, error);\n }\n }\n wait(msDelay).then(function () {\n return fetchRetry(url, headers, retryDelay, retryLimit, fetchOptions, resolve, reject);\n });\n }\n }\n (0, _http2.default)(url, option).then(function (response) {\n var data = response.json();\n if (response.ok && response.status === 200) {\n resolve(data);\n } else {\n data.then(function (json) {\n if (fetchOptions.retryCondition && fetchOptions.retryCondition(response)) {\n onError(json);\n } else {\n reject(json);\n }\n }).catch(function () {\n reject({ status: response.status, statusText: response.statusText });\n });\n }\n }).catch(function (error) {\n reject(error);\n });\n}\n\n//# sourceURL=webpack://Contentstack/./src/core/lib/request.js?"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = Request;\n\nvar _utils = __webpack_require__(/*! ./utils.js */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _http = __webpack_require__(/*! runtime/http.js */ \"./src/runtime/node/http.js\");\n\nvar _http2 = _interopRequireDefault(_http);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n//JS SDK version\nvar version = '3.13.0';\nvar environment = void 0,\n api_key = void 0;\nfunction Request(options, fetchOptions) {\n return new Promise(function (resolve, reject) {\n var queryParams = void 0;\n var serialize = function serialize(obj, prefix) {\n\n var str = [],\n p = void 0;\n if ((typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj)) === \"object\" && obj.length !== undefined) {\n for (var i = 0, _i = obj.length; i < _i; i++) {\n str.push(prefix + '[]=' + obj[i]);\n }\n } else {\n for (p in obj) {\n var k = prefix ? prefix + \"[\" + p + \"]\" : p,\n v = obj[p];\n str.push(v !== null && (typeof v === \"undefined\" ? \"undefined\" : _typeof(v)) === \"object\" && p !== 'query' ? serialize(v, k) : k + \"=\" + encodeURIComponent(p !== 'query' ? v : JSON.stringify(v)));\n }\n }\n return str.join(\"&\");\n };\n\n var url = options.url,\n headers = options.headers;\n\n // setting headers\n headers['Content-Type'] = 'application/json; charset=UTF-8';\n headers['X-User-Agent'] = 'contentstack-nodejs/' + version;\n\n if (options.body && _typeof(options.body) === 'object') {\n delete options.body._method;\n if (_typeof(options.body.query) === \"object\" && Object.keys(options.body.query).length === 0) delete options.body.query;\n queryParams = serialize(options.body);\n }\n\n return fetchRetry(url + '?' + queryParams, headers, fetchOptions.retryDelay, fetchOptions.retryLimit, fetchOptions, resolve, reject);\n });\n}\n\nfunction wait(retryDelay) {\n return new Promise(function (resolve) {\n setTimeout(resolve, retryDelay);\n });\n}\nasync function safeParseJSON(response) {\n var body = await response.text();\n}\nfunction fetchRetry(url, headers) {\n var retryDelay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var retryLimit = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 5;\n var fetchOptions = arguments[4];\n var resolve = arguments[5];\n var reject = arguments[6];\n\n var option = Object.assign({\n method: 'GET',\n headers: headers,\n timeout: 30000\n }, fetchOptions);\n\n function onError(error) {\n if (retryLimit === 0) {\n reject(error);\n } else {\n var msDelay = retryDelay;\n retryLimit = retryLimit - 1;\n var retryCount = fetchOptions.retryLimit - retryLimit;\n if (fetchOptions.retryDelayOptions) {\n if (fetchOptions.retryDelayOptions.base) {\n msDelay = fetchOptions.retryDelayOptions.base * retryCount;\n } else if (fetchOptions.retryDelayOptions.customBackoff) {\n msDelay = fetchOptions.retryDelayOptions.customBackoff(retryCount, error);\n }\n }\n wait(msDelay).then(function () {\n return fetchRetry(url, headers, retryDelay, retryLimit, fetchOptions, resolve, reject);\n });\n }\n }\n (0, _http2.default)(url, option).then(function (response) {\n var data = response.json();\n if (response.ok && response.status === 200) {\n resolve(data);\n } else {\n data.then(function (json) {\n if (fetchOptions.retryCondition && fetchOptions.retryCondition(response)) {\n onError(json);\n } else {\n reject(json);\n }\n }).catch(function () {\n reject({ status: response.status, statusText: response.statusText });\n });\n }\n }).catch(function (error) {\n reject(error);\n });\n}\n\n//# sourceURL=webpack://Contentstack/./src/core/lib/request.js?"); /***/ }), @@ -215,7 +358,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof2 = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.transform = transform;\nexports._type = _type;\nexports.mergeDeep = mergeDeep;\nexports.merge = merge;\nexports.isBrowser = isBrowser;\nexports.parseQueryFromParams = parseQueryFromParams;\nexports.getHash = getHash;\nexports.generateHash = generateHash;\nexports.resultWrapper = resultWrapper;\nexports.spreadResult = spreadResult;\nexports.sendRequest = sendRequest;\n\nvar _request = __webpack_require__(/*! ./request */ \"./src/core/lib/request.js\");\n\nvar _request2 = _interopRequireDefault(_request);\n\nvar _result = __webpack_require__(/*! ../modules/result */ \"./src/core/modules/result.js\");\n\nvar _result2 = _interopRequireDefault(_result);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @method addSpread\n * @description method to add the spread.\n */\n(function addSpread() {\n if (Promise.prototype.spread) return;\n Promise.prototype.spread = function (fn, errFunc) {\n errFunc = errFunc || function (err) {};\n return this.then(function (args) {\n return fn.apply(fn, args);\n }).catch(function (err) {\n errFunc(err);\n });\n };\n})();\n\nfunction transform(type) {\n return function () {\n this._query[type] = this._query[type] || {};\n switch (arguments.length) {\n case 1:\n if (Array.isArray(arguments[0]) || typeof arguments[0] === \"string\") {\n var query = this._query[type]['BASE'] || [];\n query = query.concat(arguments[0]);\n this._query[type]['BASE'] = query;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters\");\n }\n break;\n case 2:\n if (typeof arguments[0] === \"string\" && (Array.isArray(arguments[1]) || typeof arguments[1] === \"string\")) {\n var _query2 = this._query[type][arguments[0]] || [];\n _query2 = _query2.concat(arguments[1]);\n this._query[type][arguments[0]] = _query2;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters\");\n }\n break;\n default:\n console.error(\"Kindly provide valid parameters\");\n }\n };\n}\n\nfunction _type(val) {\n var _typeof = void 0,\n __typeof = typeof val === 'undefined' ? 'undefined' : _typeof2(val);\n switch (__typeof) {\n case 'object':\n _typeof = __typeof;\n if (Array.isArray(val)) {\n __typeof = 'array';\n }\n break;\n default:\n _typeof = __typeof;\n }\n return __typeof;\n};\n\n// merge two objects\nfunction mergeDeep(target, source) {\n var self = this;\n var _merge_recursive = function _merge_recursive(target, source) {\n for (var key in source) {\n if (self._type(source[key]) == 'object' && self._type(target[key]) == self._type(source[key])) {\n _merge_recursive(target[key], source[key]);\n } else if (self._type(source[key]) == 'array' && self._type(target[key]) == self._type(source[key])) {\n target[key] = target[key].concat(source[key]);\n } else {\n target[key] = source[key];\n }\n }\n };\n _merge_recursive(target, source);\n return target;\n};\n\n// merge two objects\nfunction merge(target, source) {\n if (target && source) {\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target;\n};\n\n// return true if process is running in browser else false\nfunction isBrowser() {\n return typeof window !== \"undefined\" && (typeof process === 'undefined' ? 'undefined' : _typeof2(process)) === \"object\" && process.title === \"browser\";\n};\n\n// return the query from the params\nfunction parseQueryFromParams(queryObject, single, toJSON) {\n if (queryObject && queryObject.requestParams) {\n var _query = merge({}, queryObject.requestParams.body ? queryObject.requestParams.body.query || {} : {});\n if (_query.environment_uid) {\n delete _query.environment_uid;\n _query.environment = queryObject.environment;\n }\n _query.environment = queryObject.environment;\n return {\n content_type_uid: queryObject.content_type_uid,\n locale: _query.locale || 'en-us',\n query: _query,\n entry_uid: queryObject.entry_uid,\n asset_uid: queryObject.asset_uid,\n single: single || \"false\",\n toJSON: toJSON || \"false\",\n api_key: queryObject.requestParams.headers ? queryObject.requestParams.headers.api_key : \"\"\n };\n }\n};\n\n// returrn the hash value of the query\nfunction getHash(query) {\n try {\n var hashValue = generateHash(JSON.stringify(query)),\n keyArray = [];\n keyArray.push(query.content_type_uid);\n keyArray.push(query.locale);\n if (query.entry_uid) keyArray.push(query.entry_uid);\n if (query.asset_uid) keyArray.push(query.asset_uid);\n keyArray.push(hashValue);\n return keyArray.join('.');\n } catch (e) {}\n};\n\n// return the hash value of the string\nfunction generateHash(str) {\n var hash = 0,\n i = void 0,\n chr = void 0,\n len = void 0;\n if (str.length === 0) return hash;\n for (i = 0, len = str.length; i < len; i++) {\n chr = str.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0; // Convert to 32bit integer\n }\n return hash < -1 ? hash * -1 : hash;\n};\n\n// generate the Result object\nfunction resultWrapper(result) {\n if (result && typeof result.entries !== 'undefined') {\n if (result.entries && result.entries.length) {\n for (var i = 0, _i = result.entries.length; i < _i; i++) {\n result.entries[i] = (0, _result2.default)(result.entries[i]);\n }\n } else {\n result.entries = [];\n }\n } else if (result && result.assets && typeof result.assets !== 'undefined') {\n if (result.assets && result.assets.length) {\n for (var j = 0, _j = result.assets.length; j < _j; j++) {\n result.assets[j] = (0, _result2.default)(result.assets[j]);\n }\n } else {\n result.assets = [];\n }\n } else if (result && typeof result.entry !== 'undefined') {\n result.entry = (0, _result2.default)(result.entry);\n } else if (result && typeof result.asset !== 'undefined') {\n result.asset = (0, _result2.default)(result.asset);\n } else if (result && typeof result.items !== 'undefined') {\n result.items = (0, _result2.default)(result.items).toJSON();\n }\n\n return result;\n};\n\n// // spread the result object\n// export function spreadResult(result) {\n// let _results = [];\n// if (result && Object.keys(result).length) {\n// if (typeof result.entries !== 'undefined') _results.push(result.entries);\n// if (typeof result.assets !== 'undefined') _results.push(result.assets);\n// if (typeof result.content_type !== 'undefined' || typeof result.schema !== 'undefined') _results.push(result.content_type || result.schema);\n// if (typeof result.count !== 'undefined') _results.push(result.count);\n// if (typeof result.entry !== 'undefined') _results = result.entry;\n// if (typeof result.asset !== 'undefined') _results = result.asset;\n// if (typeof result.items !== 'undefined') _results.push(result);\n// }\n// return _results;\n// };\n\n// spread the result object\nfunction spreadResult(result) {\n var _results = [];\n if (result && Object.keys(result).length) {\n if (typeof result.entries !== 'undefined') {\n _results.push(result.entries);\n if (result.content_type) {\n _results['schema'] = result.content_type;\n }\n }\n if (typeof result.assets !== 'undefined') _results.push(result.assets);\n if (typeof result.content_type !== 'undefined' || typeof result.schema !== 'undefined') _results.push(result.content_type || result.schema);\n if (typeof result.count !== 'undefined') _results.push(result.count);\n if (typeof result.entry !== 'undefined') {\n _results = result.entry;\n if (result.schema) {\n _results['schema'] = result.schema;\n }\n if (result.content_type) {\n _results['content_type'] = result.content_type;\n }\n }\n if (typeof result.asset !== 'undefined') _results = result.asset;\n if (typeof result.items !== 'undefined') _results.push(result);\n }\n return _results;\n};\n\nfunction sendRequest(queryObject, options) {\n\n var env_uid = queryObject.environment_uid;\n if (env_uid) {\n queryObject._query.environment_uid = env_uid;\n } else {\n if (queryObject._query) {\n queryObject._query.environment = queryObject.environment;\n } else {\n queryObject['_query'] = {};\n queryObject._query['environment'] = queryObject.environment;\n }\n }\n\n var self = queryObject;\n var continueFlag = false;\n var cachePolicy = typeof self.queryCachePolicy !== 'undefined' ? self.queryCachePolicy : self.cachePolicy;\n var tojson = typeof self.tojson !== 'undefined' ? self.tojson : false;\n var isSingle = self.entry_uid || self.singleEntry || self.asset_uid ? true : false;\n var hashQuery = getHash(parseQueryFromParams(self, isSingle, tojson));\n\n /**\n for new api v3\n */\n if (queryObject && queryObject.requestParams && queryObject.requestParams.body && queryObject.requestParams.body.query) {\n var cloneQueryObj = JSON.parse(JSON.stringify(queryObject.requestParams.body.query));\n if ((typeof cloneQueryObj === 'undefined' ? 'undefined' : _typeof2(cloneQueryObj)) !== 'object') {\n cloneQueryObj = JSON.parse(cloneQueryObj);\n }\n delete queryObject.requestParams.body.query;\n queryObject.requestParams.body = merge(queryObject.requestParams.body, cloneQueryObj);\n }\n\n var getCacheCallback = function getCacheCallback() {\n return function (err, entries) {\n return new Promise(function (resolve, reject) {\n try {\n if (err) throw err;\n if (!tojson) entries = resultWrapper(entries);\n resolve(spreadResult(entries));\n } catch (e) {\n reject(e);\n }\n });\n };\n };\n\n var callback = function callback(continueFlag, resolve, reject) {\n if (continueFlag) {\n (0, _request2.default)(queryObject.requestParams, options).then(function (data) {\n try {\n self.entry_uid = self.asset_uid = self.tojson = self.queryCachePolicy = undefined;\n var entries = {};\n var syncstack = {};\n if (queryObject.singleEntry) {\n queryObject.singleEntry = false;\n if (data.schema) entries.schema = data.schema;\n if (data.content_type) {\n entries.content_type = data.content_type;\n delete entries.schema;\n }\n if (data.entries && data.entries.length) {\n entries.entry = data.entries[0];\n } else if (data.assets && data.assets.length) {\n entries.assets = data.assets[0];\n } else {\n if (cachePolicy === 2 && self.provider !== null) {\n self.provider.get(hashQuery, getCacheCallback());\n } else {\n return reject({ error_code: 141, error_message: 'The requested entry doesn\\'t exist.' });\n }\n return;\n }\n } else if (data.items) {\n syncstack = {\n items: data.items,\n pagination_token: data.pagination_token,\n sync_token: data.sync_token,\n total_count: data.total_count\n };\n } else {\n entries = data;\n }\n\n if (cachePolicy !== -1 && self.provider !== null) {\n self.provider.set(hashQuery, entries, function (err) {\n try {\n if (err) throw err;\n if (!tojson) entries = resultWrapper(entries);\n return resolve(spreadResult(entries));\n } catch (e) {\n return reject(e);\n }\n });\n return resolve(spreadResult(entries));\n }\n\n if (Object.keys(syncstack).length) {\n return resolve(syncstack);\n }\n\n if (!tojson) entries = resultWrapper(entries);\n return resolve(spreadResult(entries));\n } catch (e) {\n return reject({\n message: e.message\n });\n }\n }.bind(self)).catch(function (error) {\n if (cachePolicy === 2 && self.provider !== null) {\n self.provider.get(hashQuery, getCacheCallback());\n } else {\n return reject(error);\n }\n });\n }\n };\n switch (cachePolicy) {\n case 1:\n return new Promise(function (resolve, reject) {\n if (self.provider !== null) {\n self.provider.get(hashQuery, function (err, _data) {\n try {\n if (err || !_data) {\n callback(true, resolve, reject);\n } else {\n if (!tojson) _data = resultWrapper(_data);\n return resolve(spreadResult(_data));\n }\n } catch (e) {\n return reject(e);\n }\n });\n } else {\n callback(true, resolve, reject);\n }\n });\n break;\n case 2:\n case 0:\n case undefined:\n case -1:\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n };\n\n if (cachePolicy === 3) {\n\n var promise = new Promise(function (resolve, reject) {\n if (self.provider !== null) {\n self.provider.get(hashQuery, function (err, _data) {\n try {\n if (err || !_data) {\n reject(err);\n //reject(Error(\"It broke\"));\n } else {\n if (!tojson) _data = resultWrapper(_data);\n resolve(spreadResult(_data));\n }\n } catch (e) {\n reject(e);\n }\n });\n }\n });\n\n return promise.then(function () {\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n }).catch(function (error) {\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n console.error(error);\n });\n }\n};\n\n//# sourceURL=webpack://Contentstack/./src/core/lib/utils.js?"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof2 = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.transform = transform;\nexports._type = _type;\nexports.mergeDeep = mergeDeep;\nexports.merge = merge;\nexports.isBrowser = isBrowser;\nexports.parseQueryFromParams = parseQueryFromParams;\nexports.getHash = getHash;\nexports.generateHash = generateHash;\nexports.resultWrapper = resultWrapper;\nexports.spreadResult = spreadResult;\nexports.sendRequest = sendRequest;\n\nvar _request = __webpack_require__(/*! ./request */ \"./src/core/lib/request.js\");\n\nvar _request2 = _interopRequireDefault(_request);\n\nvar _result = __webpack_require__(/*! ../modules/result */ \"./src/core/modules/result.js\");\n\nvar _result2 = _interopRequireDefault(_result);\n\nvar _config = __webpack_require__(/*! ../../../config */ \"./config.js\");\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @method addSpread\n * @description method to add the spread.\n */\n(function addSpread() {\n if (Promise.prototype.spread) return;\n Promise.prototype.spread = function (fn, errFunc) {\n errFunc = errFunc || function (err) {};\n return this.then(function (args) {\n return fn.apply(fn, args);\n }).catch(function (err) {\n errFunc(err);\n });\n };\n})();\n\nfunction transform(type) {\n return function () {\n this._query[type] = this._query[type] || {};\n switch (arguments.length) {\n case 1:\n if (Array.isArray(arguments[0]) || typeof arguments[0] === \"string\") {\n var query = this._query[type]['BASE'] || [];\n query = query.concat(arguments[0]);\n this._query[type]['BASE'] = query;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters\");\n }\n break;\n case 2:\n if (typeof arguments[0] === \"string\" && (Array.isArray(arguments[1]) || typeof arguments[1] === \"string\")) {\n var _query2 = this._query[type][arguments[0]] || [];\n _query2 = _query2.concat(arguments[1]);\n this._query[type][arguments[0]] = _query2;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters\");\n }\n break;\n default:\n console.error(\"Kindly provide valid parameters\");\n }\n };\n}\n\nfunction _type(val) {\n var _typeof = void 0,\n __typeof = typeof val === 'undefined' ? 'undefined' : _typeof2(val);\n switch (__typeof) {\n case 'object':\n _typeof = __typeof;\n if (Array.isArray(val)) {\n __typeof = 'array';\n }\n break;\n default:\n _typeof = __typeof;\n }\n return __typeof;\n};\n\n// merge two objects\nfunction mergeDeep(target, source) {\n var self = this;\n var _merge_recursive = function _merge_recursive(target, source) {\n for (var key in source) {\n if (self._type(source[key]) == 'object' && self._type(target[key]) == self._type(source[key])) {\n _merge_recursive(target[key], source[key]);\n } else if (self._type(source[key]) == 'array' && self._type(target[key]) == self._type(source[key])) {\n target[key] = target[key].concat(source[key]);\n } else {\n target[key] = source[key];\n }\n }\n };\n _merge_recursive(target, source);\n return target;\n};\n\n// merge two objects\nfunction merge(target, source) {\n if (target && source) {\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target;\n};\n\n// return true if process is running in browser else false\nfunction isBrowser() {\n return typeof window !== \"undefined\" && (typeof process === 'undefined' ? 'undefined' : _typeof2(process)) === \"object\" && process.title === \"browser\";\n};\n\n// return the query from the params\nfunction parseQueryFromParams(queryObject, single, toJSON) {\n if (queryObject && queryObject.requestParams) {\n var _query = merge({}, queryObject.requestParams.body ? queryObject.requestParams.body.query || {} : {});\n if (_query.environment_uid) {\n delete _query.environment_uid;\n _query.environment = queryObject.environment;\n }\n _query.environment = queryObject.environment;\n return {\n content_type_uid: queryObject.content_type_uid,\n locale: _query.locale || 'en-us',\n query: _query,\n entry_uid: queryObject.entry_uid,\n asset_uid: queryObject.asset_uid,\n single: single || \"false\",\n toJSON: toJSON || \"false\",\n api_key: queryObject.requestParams.headers ? queryObject.requestParams.headers.api_key : \"\"\n };\n }\n};\n\n// returrn the hash value of the query\nfunction getHash(query) {\n try {\n var hashValue = generateHash(JSON.stringify(query)),\n keyArray = [];\n keyArray.push(query.content_type_uid);\n keyArray.push(query.locale);\n if (query.entry_uid) keyArray.push(query.entry_uid);\n if (query.asset_uid) keyArray.push(query.asset_uid);\n keyArray.push(hashValue);\n return keyArray.join('.');\n } catch (e) {}\n};\n\n// return the hash value of the string\nfunction generateHash(str) {\n var hash = 0,\n i = void 0,\n chr = void 0,\n len = void 0;\n if (str.length === 0) return hash;\n for (i = 0, len = str.length; i < len; i++) {\n chr = str.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0; // Convert to 32bit integer\n }\n return hash < -1 ? hash * -1 : hash;\n};\n\n// generate the Result object\nfunction resultWrapper(result) {\n if (result && typeof result.entries !== 'undefined') {\n if (result.entries && result.entries.length) {\n for (var i = 0, _i = result.entries.length; i < _i; i++) {\n result.entries[i] = (0, _result2.default)(result.entries[i]);\n }\n } else {\n result.entries = [];\n }\n } else if (result && result.assets && typeof result.assets !== 'undefined') {\n if (result.assets && result.assets.length) {\n for (var j = 0, _j = result.assets.length; j < _j; j++) {\n result.assets[j] = (0, _result2.default)(result.assets[j]);\n }\n } else {\n result.assets = [];\n }\n } else if (result && typeof result.entry !== 'undefined') {\n result.entry = (0, _result2.default)(result.entry);\n } else if (result && typeof result.asset !== 'undefined') {\n result.asset = (0, _result2.default)(result.asset);\n } else if (result && typeof result.items !== 'undefined') {\n result.items = (0, _result2.default)(result.items).toJSON();\n }\n\n return result;\n};\n\n// // spread the result object\n// export function spreadResult(result) {\n// let _results = [];\n// if (result && Object.keys(result).length) {\n// if (typeof result.entries !== 'undefined') _results.push(result.entries);\n// if (typeof result.assets !== 'undefined') _results.push(result.assets);\n// if (typeof result.content_type !== 'undefined' || typeof result.schema !== 'undefined') _results.push(result.content_type || result.schema);\n// if (typeof result.count !== 'undefined') _results.push(result.count);\n// if (typeof result.entry !== 'undefined') _results = result.entry;\n// if (typeof result.asset !== 'undefined') _results = result.asset;\n// if (typeof result.items !== 'undefined') _results.push(result);\n// }\n// return _results;\n// };\n\n// spread the result object\nfunction spreadResult(result) {\n var _results = [];\n if (result && Object.keys(result).length) {\n if (typeof result.entries !== 'undefined') {\n _results.push(result.entries);\n if (result.content_type) {\n _results['schema'] = result.content_type;\n }\n }\n if (typeof result.assets !== 'undefined') _results.push(result.assets);\n if (typeof result.content_type !== 'undefined' || typeof result.schema !== 'undefined') _results.push(result.content_type || result.schema);\n if (typeof result.count !== 'undefined') _results.push(result.count);\n if (typeof result.entry !== 'undefined') {\n _results = result.entry;\n if (result.schema) {\n _results['schema'] = result.schema;\n }\n if (result.content_type) {\n _results['content_type'] = result.content_type;\n }\n }\n if (typeof result.asset !== 'undefined') _results = result.asset;\n if (typeof result.items !== 'undefined') _results.push(result);\n }\n return _results;\n};\n\nfunction sendRequest(queryObject, options) {\n\n var env_uid = queryObject.environment_uid;\n if (env_uid) {\n queryObject._query.environment_uid = env_uid;\n } else {\n if (queryObject._query) {\n queryObject._query.environment = queryObject.environment;\n } else {\n queryObject['_query'] = {};\n queryObject._query['environment'] = queryObject.environment;\n }\n }\n\n var self = queryObject;\n var continueFlag = false;\n var cachePolicy = typeof self.queryCachePolicy !== 'undefined' ? self.queryCachePolicy : self.cachePolicy;\n var tojson = typeof self.tojson !== 'undefined' ? self.tojson : false;\n var isSingle = self.entry_uid || self.singleEntry || self.asset_uid ? true : false;\n var hashQuery = getHash(parseQueryFromParams(self, isSingle, tojson));\n if (queryObject.requestParams.url.includes(_config2.default.urls.sync)) {\n cachePolicy = -1;\n }\n /**\n for new api v3\n */\n if (queryObject && queryObject.requestParams && queryObject.requestParams.body && queryObject.requestParams.body.query) {\n var cloneQueryObj = JSON.parse(JSON.stringify(queryObject.requestParams.body.query));\n if ((typeof cloneQueryObj === 'undefined' ? 'undefined' : _typeof2(cloneQueryObj)) !== 'object') {\n cloneQueryObj = JSON.parse(cloneQueryObj);\n }\n delete queryObject.requestParams.body.query;\n queryObject.requestParams.body = merge(queryObject.requestParams.body, cloneQueryObj);\n }\n\n var getCacheCallback = function getCacheCallback() {\n return function (err, entries) {\n return new Promise(function (resolve, reject) {\n try {\n if (err) throw err;\n if (!tojson) entries = resultWrapper(entries);\n resolve(spreadResult(entries));\n } catch (e) {\n reject(e);\n }\n });\n };\n };\n\n var callback = function callback(continueFlag, resolve, reject) {\n if (continueFlag) {\n (0, _request2.default)(queryObject.requestParams, options).then(function (data) {\n try {\n self.entry_uid = self.asset_uid = self.tojson = self.queryCachePolicy = undefined;\n var entries = {};\n var syncstack = {};\n if (queryObject.singleEntry) {\n queryObject.singleEntry = false;\n if (data.schema) entries.schema = data.schema;\n if (data.content_type) {\n entries.content_type = data.content_type;\n delete entries.schema;\n }\n if (data.entries && data.entries.length) {\n entries.entry = data.entries[0];\n } else if (data.assets && data.assets.length) {\n entries.assets = data.assets[0];\n } else {\n if (cachePolicy === 2 && self.provider !== null) {\n self.provider.get(hashQuery, getCacheCallback());\n } else {\n return reject({ error_code: 141, error_message: 'The requested entry doesn\\'t exist.' });\n }\n return;\n }\n } else if (data.items) {\n syncstack = {\n items: data.items,\n pagination_token: data.pagination_token,\n sync_token: data.sync_token,\n total_count: data.total_count\n };\n } else {\n entries = data;\n }\n\n if (cachePolicy !== -1 && self.provider !== null) {\n self.provider.set(hashQuery, entries, function (err) {\n try {\n if (err) throw err;\n if (!tojson) entries = resultWrapper(entries);\n return resolve(spreadResult(entries));\n } catch (e) {\n return reject(e);\n }\n });\n return resolve(spreadResult(entries));\n }\n\n if (Object.keys(syncstack).length) {\n return resolve(syncstack);\n }\n\n if (!tojson) entries = resultWrapper(entries);\n return resolve(spreadResult(entries));\n } catch (e) {\n return reject({\n message: e.message\n });\n }\n }.bind(self)).catch(function (error) {\n if (cachePolicy === 2 && self.provider !== null) {\n self.provider.get(hashQuery, getCacheCallback());\n } else {\n return reject(error);\n }\n });\n }\n };\n switch (cachePolicy) {\n case 1:\n return new Promise(function (resolve, reject) {\n if (self.provider !== null) {\n self.provider.get(hashQuery, function (err, _data) {\n try {\n if (err || !_data) {\n callback(true, resolve, reject);\n } else {\n if (!tojson) _data = resultWrapper(_data);\n return resolve(spreadResult(_data));\n }\n } catch (e) {\n return reject(e);\n }\n });\n } else {\n callback(true, resolve, reject);\n }\n });\n break;\n case 2:\n case 0:\n case undefined:\n case -1:\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n };\n\n if (cachePolicy === 3) {\n\n var promise = new Promise(function (resolve, reject) {\n if (self.provider !== null) {\n self.provider.get(hashQuery, function (err, _data) {\n try {\n if (err || !_data) {\n reject(err);\n //reject(Error(\"It broke\"));\n } else {\n if (!tojson) _data = resultWrapper(_data);\n resolve(spreadResult(_data));\n }\n } catch (e) {\n reject(e);\n }\n });\n }\n });\n\n return promise.then(function () {\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n }).catch(function (error) {\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n console.error(error);\n });\n }\n};\n\n//# sourceURL=webpack://Contentstack/./src/core/lib/utils.js?"); /***/ }), @@ -239,7 +382,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _utils = __webpack_require__(/*! ../lib/utils */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _stack = __webpack_require__(/*! ../stack */ \"./src/core/stack.js\");\n\nvar _stack2 = _interopRequireDefault(_stack);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * @class \n Entry \n* @summary Creates an instance of `Entry`. \n* @description An initializer is responsible for creating Entry object.\n* @param {String} uid - uid of the entry\n* @example\n* let Entry = Stack.ContentType('example').Entry('entry_uid');\n* @returns {Entry}\n* @instance\n*/\n\nvar Entry = function () {\n function Entry() {\n _classCallCheck(this, Entry);\n\n this._query = {};\n /**\n * @method only\n * @memberOf Entry\n * @description Displays values of only the specified fields of entries or assets in the response\n * @param {String} [key=BASE] - Assets:
\n *

Retrieves specified field of asset

\n * @param {String} - Entries:
\n *

- retrieves default fields of the schema.

\n *

- referenced_content-type-uid : retrieves fields of the referred content type.

\n * @param {Array} values - array of fields that you want to display in the response\n * @example\n * The only function with field_uid will include the data of only the specified fields for each entry and exclude the data of all other fields. \n * Stack.ContentType('contentTypeUid').Query().only('title').toJSON().find()\n * @example\n * The only function with an array of field_uids will include multiple fields for each entry and exclude the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().only(['title','description']).toJSON().find()\n * @example\n * In only, we have the only with a reference parameter, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter to include the data of only the specified field_uid for each entry and exclude the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').only('reference_field_uid','title').toJSON().find()\n * @example\n * In only, we have the only with a reference parameter with an array, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter with an array of fields to include the data of only the specified array of field_uids for each entry and exclude the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').only('reference_field_uid', ['title', 'description']).toJSON().find()\n * \n * @returns {Entry}\n * @instance\n */\n this.only = Utils.transform('only');\n /**\n * @method except\n * @memberOf Entry\n * @description Displays all data of an entries or assets excluding the data of the specified fields.\n * @param {String} [key=BASE] - BASE (default value) - retrieves default fields of the schema.\n - referenced_content-type-uid - retrieves fields of the referred content type.\n * @param {Array} values - array of fields that you want to skip in the response\n * @example\n * The except function with field_uid will exclude the data of only the specified fields for each entry and includes the data of all other fields. \n * Stack.ContentType('contentTypeUid').Query().except('title').toJSON().find()\n * @example\n * The except function with an array of field_uids will except multiple fields for each entry and include the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().except(['title','description']).toJSON().find()\n * @example\n * In except, we have the only with a reference parameter, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter to except the data of only the specified field_uid for each entry and include the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').except('reference_field_uid','title').toJSON().find()\n * @example\n * In except, we have the only with a reference parameter with an array, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter with an array of fields to except the data of only the specified array of field_uids for each entry and include the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').except('reference_field_uid', ['title', 'description']).toJSON().find()\n * @returns {Entry}\n * @instance \n */\n this.except = Utils.transform('except');\n return this;\n }\n\n _createClass(Entry, [{\n key: \"setCacheProvider\",\n value: function setCacheProvider(provider) {\n if (provider && (typeof provider === \"undefined\" ? \"undefined\" : _typeof(provider)) === 'object') {\n this.provider = provider;\n }\n return this;\n }\n }, {\n key: \"setCachePolicy\",\n value: function setCachePolicy(policy) {\n if (typeof policy === 'number' && policy >= -1 && policy < 4) {\n if (!this._query) {\n this.cachePolicy = policy;\n } else {\n this.queryCachePolicy = policy;\n }\n } else {\n console.error(\"Kindly provide the valid policy\");\n }\n return this;\n }\n\n /**\n * @method includeReference\n * @memberOf Entry\n * @description Fetches the entire content of referenced entry(ies). Read More\n * @example\n * .includeReference with reference_field_uids as array \n * var Query = Stack.ContentType(contentTypes.source).Query();\n Query\n .includeReference(['reference_field_uid', 'other_reference_field_uid'])\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including reference entries.\n })\n * @example\n * .includeReference with reference_field_uids and its children reference \n * var Query = Stack.ContentType(contentTypes.source).Query();\n Query\n .includeReference(['reference_field_uid', 'reference_field_uid.child_reference_field_uid'])\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including reference entries.\n })\n * @example\n * .includeReference with reference_field_uids \n * var Query = Stack.ContentType(contentTypes.source).Query(); \n Query\n .includeReference('reference_field_uid')\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including particular reference using reference_uid.\n })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeReference\",\n value: function includeReference() {\n for (var _len = arguments.length, val = Array(_len), _key = 0; _key < _len; _key++) {\n val[_key] = arguments[_key];\n }\n\n if (Array.isArray(val) || typeof val === \"string\") {\n if (arguments.length) {\n for (var i = 0; i < arguments.length; i++) {\n this._query['include'] = this._query['include'] || [];\n this._query['include'] = this._query['include'].concat(arguments[i]);\n }\n }\n return this;\n } else {\n console.error(\"Argument should be a String or an Array.\");\n }\n }\n\n /**\n * Sets the language code of which you want to retrieve data.\n * @param {String} language_code - language code. e.g. 'en-us', 'ja-jp', etc.\n * @memberOf Entry\n * @example \n * let data = Stack.ContentType(contentTypeUid).Entry(entryUid).language('ja-jp').fetch()\n * data\n * .then(function(result) {\n * // 'result' is an object used to retrieve data of ja-jp language.\n * }, function(error) {\n * // error function\n * })\n * \n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"language\",\n value: function language(language_code) {\n if (language_code && typeof language_code === 'string') {\n this._query['locale'] = language_code;\n return this;\n } else {\n console.error(\"Argument should be a String.\");\n }\n }\n\n /**\n * @method addQuery\n * @memberOf Entry\n * @description Adds query to Entry object\n * @param {String} key - key of the query\n * @param {String} value - value of the query\n * @example Stack.ContentType(contentTypeUid).Entry(entry_uid).addQuery('include_schema',true)\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"addQuery\",\n value: function addQuery(key, value) {\n if (key && value && typeof key === 'string') {\n this._query[key] = value;\n return this;\n } else {\n console.error(\"First argument should be a String.\");\n }\n }\n\n /**\n * @method includeSchema\n * @memberOf Entry\n * @deprecated since verion 3.3.0\n * @description Include schema of the current content type along with entry/entries details.\n * @example Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeSchema().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeSchema\",\n value: function includeSchema() {\n this._query['include_schema'] = true;\n return this;\n }\n\n /**\n * @method includeReferenceContentTypeUid\n * @memberOf Entry\n * @description This method also includes the content type UIDs of the referenced entries returned in the response.\n * @example Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeReferenceContentTypeUID().fetch()\n * @example \n * Query = Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeReferenceContentTypeUID().fetch()\n * Query\n * .toJSON()\n * .then(function (result) {\n * let value = result.get(field_uid)\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeReferenceContentTypeUID\",\n value: function includeReferenceContentTypeUID() {\n this._query['include_reference_content_type_uid'] = true;\n return this;\n }\n\n /**\n * @method includeFallback\n * @memberOf Entry\n * @description Include the fallback locale publish content, if specified locale content is not publish.\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeFallback().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeFallback\",\n value: function includeFallback() {\n this._query['include_fallback'] = true;\n return this;\n }\n\n /**\n * @method includeContentType\n * @memberOf Entry\n * @description Include the details of the content type along with the entry/entries details.\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeContentType().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeContentType\",\n value: function includeContentType() {\n this._query['include_content_type'] = true;\n return this;\n }\n\n /**\n * @method includeOwner\n * @memberOf Entry \n * @description Includes the owner details of the entry/entries\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeOwner().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeOwner\",\n value: function includeOwner() {\n this._query['include_owner'] = true;\n return this;\n }\n\n /**\n * @method toJSON\n * @memberOf Entry \n * @description Converts your response into plain JavasScript object.Supports both entry and asset queries.\n * @example\n * Query = Stack.ContentType(contentTypeUid).Entry(entryUid).fetch()\n * Query\n * .toJSON()\n * .then(function (result) {\n * let value = result.get(field_uid)\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n this.tojson = true;\n return this;\n }\n\n /**\n * @method addParam\n * @memberOf Entry \n * @description Includes query parameters in your queries.\n * @example var data = Stack.ContentType(contentTypeUid).Entry(entryUid).addParam('include_count', 'true').fetch()\n * data.then(function (result) {\n * // 'result' is an object which content the data including count in json object form\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"addParam\",\n value: function addParam(key, value) {\n if (key && value && typeof key === 'string' && typeof value === 'string') {\n this._query[key] = value;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters.\");\n }\n }\n\n /**\n * @method fetch\n * @memberOf Entry \n * @description Fetches a particular entry based on the provided entry UID.\n * @example\n * Stack.ContentType(contentTypeUid).Entry(entryUid).toJSON().fetch()\n * \n * @example\n * Stack.ContentType(contentTypeUid).Entry(entryUid).toJSON().fetch({\n * \n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: \"fetch\",\n value: function fetch(fetchOptions) {\n if (this.entry_uid) {\n this.requestParams = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types + this.content_type_uid + this.config.urls.entries + this.entry_uid,\n body: {\n _method: 'GET',\n query: this._query\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return Utils.sendRequest(this, options);\n } else {\n console.error(\"Kindly provide an entry uid. e.g. .Entry('bltsomething123')\");\n }\n }\n }]);\n\n return Entry;\n}();\n\nexports.default = Entry;\n\n//# sourceURL=webpack://Contentstack/./src/core/modules/entry.js?"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _utils = __webpack_require__(/*! ../lib/utils */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _stack = __webpack_require__(/*! ../stack */ \"./src/core/stack.js\");\n\nvar _stack2 = _interopRequireDefault(_stack);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * @class \n Entry \n* @summary Creates an instance of `Entry`. \n* @description An initializer is responsible for creating Entry object.\n* @param {String} uid - uid of the entry\n* @example\n* let Entry = Stack.ContentType('example').Entry('entry_uid');\n* @returns {Entry}\n* @instance\n*/\n\nvar Entry = function () {\n function Entry() {\n _classCallCheck(this, Entry);\n\n this._query = {};\n /**\n * @method only\n * @memberOf Entry\n * @description Displays values of only the specified fields of entries or assets in the response\n * @param {String} [key=BASE] - Assets:
\n *

Retrieves specified field of asset

\n * @param {String} - Entries:
\n *

- retrieves default fields of the schema.

\n *

- referenced_content-type-uid : retrieves fields of the referred content type.

\n * @param {Array} values - array of fields that you want to display in the response\n * @example\n * The only function with field_uid will include the data of only the specified fields for each entry and exclude the data of all other fields. \n * Stack.ContentType('contentTypeUid').Query().only('title').toJSON().find()\n * @example\n * The only function with an array of field_uids will include multiple fields for each entry and exclude the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().only(['title','description']).toJSON().find()\n * @example\n * In only, we have the only with a reference parameter, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter to include the data of only the specified field_uid for each entry and exclude the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').only('reference_field_uid','title').toJSON().find()\n * @example\n * In only, we have the only with a reference parameter with an array, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter with an array of fields to include the data of only the specified array of field_uids for each entry and exclude the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').only('reference_field_uid', ['title', 'description']).toJSON().find()\n * \n * @returns {Entry}\n * @instance\n */\n this.only = Utils.transform('only');\n /**\n * @method except\n * @memberOf Entry\n * @description Displays all data of an entries or assets excluding the data of the specified fields.\n * @param {String} [key=BASE] - BASE (default value) - retrieves default fields of the schema.\n - referenced_content-type-uid - retrieves fields of the referred content type.\n * @param {Array} values - array of fields that you want to skip in the response\n * @example\n * The except function with field_uid will exclude the data of only the specified fields for each entry and includes the data of all other fields. \n * Stack.ContentType('contentTypeUid').Query().except('title').toJSON().find()\n * @example\n * The except function with an array of field_uids will except multiple fields for each entry and include the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().except(['title','description']).toJSON().find()\n * @example\n * In except, we have the only with a reference parameter, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter to except the data of only the specified field_uid for each entry and include the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').except('reference_field_uid','title').toJSON().find()\n * @example\n * In except, we have the only with a reference parameter with an array, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter with an array of fields to except the data of only the specified array of field_uids for each entry and include the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').except('reference_field_uid', ['title', 'description']).toJSON().find()\n * @returns {Entry}\n * @instance \n */\n this.except = Utils.transform('except');\n return this;\n }\n\n _createClass(Entry, [{\n key: \"setCacheProvider\",\n value: function setCacheProvider(provider) {\n if (provider && (typeof provider === \"undefined\" ? \"undefined\" : _typeof(provider)) === 'object') {\n this.provider = provider;\n }\n return this;\n }\n }, {\n key: \"setCachePolicy\",\n value: function setCachePolicy(policy) {\n if (typeof policy === 'number' && policy >= -1 && policy < 4) {\n if (!this._query) {\n this.cachePolicy = policy;\n } else {\n this.queryCachePolicy = policy;\n }\n } else {\n console.error(\"Kindly provide the valid policy\");\n }\n return this;\n }\n\n /**\n * @method includeReference\n * @memberOf Entry\n * @description Fetches the entire content of referenced entry(ies). Read More\n * @example\n * .includeReference with reference_field_uids as array \n * var Query = Stack.ContentType(contentTypes.source).Query();\n Query\n .includeReference(['reference_field_uid', 'other_reference_field_uid'])\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including reference entries.\n })\n * @example\n * .includeReference with reference_field_uids and its children reference \n * var Query = Stack.ContentType(contentTypes.source).Query();\n Query\n .includeReference(['reference_field_uid', 'reference_field_uid.child_reference_field_uid'])\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including reference entries.\n })\n * @example\n * .includeReference with reference_field_uids \n * var Query = Stack.ContentType(contentTypes.source).Query(); \n Query\n .includeReference('reference_field_uid')\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including particular reference using reference_uid.\n })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeReference\",\n value: function includeReference() {\n for (var _len = arguments.length, val = Array(_len), _key = 0; _key < _len; _key++) {\n val[_key] = arguments[_key];\n }\n\n if (Array.isArray(val) || typeof val === \"string\") {\n if (arguments.length) {\n for (var i = 0; i < arguments.length; i++) {\n this._query['include'] = this._query['include'] || [];\n this._query['include'] = this._query['include'].concat(arguments[i]);\n }\n }\n return this;\n } else {\n console.error(\"Argument should be a String or an Array.\");\n }\n }\n\n /**\n * Sets the language code of which you want to retrieve data.\n * @param {String} language_code - language code. e.g. 'en-us', 'ja-jp', etc.\n * @memberOf Entry\n * @example \n * let data = Stack.ContentType(contentTypeUid).Entry(entryUid).language('ja-jp').fetch()\n * data\n * .then(function(result) {\n * // 'result' is an object used to retrieve data of ja-jp language.\n * }, function(error) {\n * // error function\n * })\n * \n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"language\",\n value: function language(language_code) {\n if (language_code && typeof language_code === 'string') {\n this._query['locale'] = language_code;\n return this;\n } else {\n console.error(\"Argument should be a String.\");\n }\n }\n\n /**\n * @method addQuery\n * @memberOf Entry\n * @description Adds query to Entry object\n * @param {String} key - key of the query\n * @param {String} value - value of the query\n * @example Stack.ContentType(contentTypeUid).Entry(entry_uid).addQuery('include_schema',true)\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"addQuery\",\n value: function addQuery(key, value) {\n if (key && value && typeof key === 'string') {\n this._query[key] = value;\n return this;\n } else {\n console.error(\"First argument should be a String.\");\n }\n }\n\n /**\n * @method includeEmbeddedObjects\n * @memberOf Entry\n * @description Include Embedded Objects (Entries and Assets) along with entry/entries details.\n * @example Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeEmbeddedObjects().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeEmbeddedItems\",\n value: function includeEmbeddedItems() {\n this._query['include_embedded_items'] = [\"BASE\"];\n return this;\n }\n\n /**\n * @method includeSchema\n * @memberOf Entry\n * @deprecated since verion 3.3.0\n * @description Include schema of the current content type along with entry/entries details.\n * @example Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeSchema().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeSchema\",\n value: function includeSchema() {\n this._query['include_schema'] = true;\n return this;\n }\n\n /**\n * @method includeReferenceContentTypeUid\n * @memberOf Entry\n * @description This method also includes the content type UIDs of the referenced entries returned in the response.\n * @example Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeReferenceContentTypeUID().fetch()\n * @example \n * Query = Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeReferenceContentTypeUID().fetch()\n * Query\n * .toJSON()\n * .then(function (result) {\n * let value = result.get(field_uid)\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeReferenceContentTypeUID\",\n value: function includeReferenceContentTypeUID() {\n this._query['include_reference_content_type_uid'] = true;\n return this;\n }\n\n /**\n * @method includeFallback\n * @memberOf Entry\n * @description Include the fallback locale publish content, if specified locale content is not publish.\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeFallback().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeFallback\",\n value: function includeFallback() {\n this._query['include_fallback'] = true;\n return this;\n }\n\n /**\n * @method includeContentType\n * @memberOf Entry\n * @description Include the details of the content type along with the entry/entries details.\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeContentType().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeContentType\",\n value: function includeContentType() {\n this._query['include_content_type'] = true;\n return this;\n }\n\n /**\n * @method includeOwner\n * @memberOf Entry \n * @description Includes the owner details of the entry/entries\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeOwner().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeOwner\",\n value: function includeOwner() {\n this._query['include_owner'] = true;\n return this;\n }\n\n /**\n * @method toJSON\n * @memberOf Entry \n * @description Converts your response into plain JavasScript object.Supports both entry and asset queries.\n * @example\n * Query = Stack.ContentType(contentTypeUid).Entry(entryUid).fetch()\n * Query\n * .toJSON()\n * .then(function (result) {\n * let value = result.get(field_uid)\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n this.tojson = true;\n return this;\n }\n\n /**\n * @method addParam\n * @memberOf Entry \n * @description Includes query parameters in your queries.\n * @example var data = Stack.ContentType(contentTypeUid).Entry(entryUid).addParam('include_count', 'true').fetch()\n * data.then(function (result) {\n * // 'result' is an object which content the data including count in json object form\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"addParam\",\n value: function addParam(key, value) {\n if (key && value && typeof key === 'string' && typeof value === 'string') {\n this._query[key] = value;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters.\");\n }\n }\n\n /**\n * @method fetch\n * @memberOf Entry \n * @description Fetches a particular entry based on the provided entry UID.\n * @example\n * Stack.ContentType(contentTypeUid).Entry(entryUid).toJSON().fetch()\n * \n * @example\n * Stack.ContentType(contentTypeUid).Entry(entryUid).toJSON().fetch({\n * \n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: \"fetch\",\n value: function fetch(fetchOptions) {\n if (this.entry_uid) {\n this.requestParams = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types + this.content_type_uid + this.config.urls.entries + this.entry_uid,\n body: {\n _method: 'GET',\n query: this._query\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return Utils.sendRequest(this, options);\n } else {\n console.error(\"Kindly provide an entry uid. e.g. .Entry('bltsomething123')\");\n }\n }\n }]);\n\n return Entry;\n}();\n\nexports.default = Entry;\n\n//# sourceURL=webpack://Contentstack/./src/core/modules/entry.js?"); /***/ }), @@ -275,7 +418,7 @@ eval("\n\nvar _createClass = function () { function defineProperties(target, pro /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _config = __webpack_require__(/*! ../../config */ \"./config.js\");\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _utils = __webpack_require__(/*! ./lib/utils */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _entry = __webpack_require__(/*! ./modules/entry */ \"./src/core/modules/entry.js\");\n\nvar _entry2 = _interopRequireDefault(_entry);\n\nvar _assets = __webpack_require__(/*! ./modules/assets */ \"./src/core/modules/assets.js\");\n\nvar _assets2 = _interopRequireDefault(_assets);\n\nvar _query = __webpack_require__(/*! ./modules/query */ \"./src/core/modules/query.js\");\n\nvar _query2 = _interopRequireDefault(_query);\n\nvar _request = __webpack_require__(/*! ./lib/request */ \"./src/core/lib/request.js\");\n\nvar _request2 = _interopRequireDefault(_request);\n\nvar _cache = __webpack_require__(/*! ./cache */ \"./src/core/cache.js\");\n\nvar cache = _interopRequireWildcard(_cache);\n\nvar _index = __webpack_require__(/*! ./cache-provider/index */ \"./src/core/cache-provider/index.js\");\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar errorRetry = [408, 429];\n\n/**\n * @class \n Stack \n * @description Initialize an instance of ‘Stack’\n * @param api_key - Stack API Key.\n * @param delivery_token - Stack Delivery token.\n * @param environment - Stack Environment name.\n * @param region - DB region for Stack.\n * @param fetchOptions - Custom setting for the request.\n * @param fetchOptions.timeout - Set timeout for the request.\n * @param fetchOptions.retryLimit - The number of retries before failure. Default is 5\n * @param fetchOptions.retryDelay - The number of ms to use for operation retries. Default is 300ms\n * @param fetchOptions.retryCondition - A function to determine if the error can be retried. Default retry is on status codes 408, 429, and greter than equal to 500.\n * @param fetchOptions.retryDelayOptions.base - The base number of milliseconds to use in the exponential backoff for operation retries.\n * @param fetchOptions.retryDelayOptions.customBackoff - A custom function that accepts a retry count and error and returns the amount of time to delay in milliseconds.\n * @example\n * var Stack = Contentstack.Stack({\n * 'api_key':'api_key',\n * 'delivery_token':'delivery_token',\n * 'environment':'environment_name',\n * 'region': 'us',\n * 'fetchOptions': {\n * \n * }\n * });\n * \n * @example\n * var Stack = Contentstack.Stack('api_key', 'access_token', 'environment', {\n * \n * });\n * \n * @example\n * // For Setting the European Region:\n * // If you want to set and use European region, refer to the code below:\n * const Stack = Contentstack.Stack(\"api_key\", \"delivery_token\", \"environment_name\", Contentstack.Region.EU);\n * \n * @returns {Stack}\n * @instance\n */\n\nvar Stack = function () {\n function Stack() {\n _classCallCheck(this, Stack);\n\n this.fetchOptions = {\n retryLimit: 5,\n retryCondition: function retryCondition(error) {\n if (errorRetry.includes(error.status)) {\n return true;\n }\n return false;\n }\n };\n this.config = Object.assign({}, _config2.default);\n\n for (var _len = arguments.length, stack_arguments = Array(_len), _key = 0; _key < _len; _key++) {\n stack_arguments[_key] = arguments[_key];\n }\n\n if (stack_arguments[0].region && stack_arguments[0].region !== undefined && stack_arguments[0].region !== \"us\") {\n this.config['host'] = stack_arguments[0].region + \"-\" + \"cdn.contentstack.com\";\n }\n\n if (stack_arguments[0].fetchOptions && stack_arguments[0].fetchOptions !== undefined) {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[0].fetchOptions);\n }\n\n this.cachePolicy = _index2.default.policies.IGNORE_CACHE;\n this.provider = _index2.default.providers('localstorage');\n\n switch (stack_arguments.length) {\n case 1:\n if (_typeof(stack_arguments[0]) === \"object\" && typeof stack_arguments[0].api_key === \"string\" && typeof stack_arguments[0].delivery_token === \"string\" && typeof stack_arguments[0].environment === \"string\") {\n this.headers = {\n api_key: stack_arguments[0].api_key,\n access_token: stack_arguments[0].delivery_token\n };\n this.environment = stack_arguments[0].environment;\n return this;\n } else {\n console.error(\"Kindly provide valid object parameters. The specified API Key, Delivery Token, or Environment Name is invalid.\");\n }\n case 3:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n return this;\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n case 4:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n if (stack_arguments[3]) {\n if (typeof stack_arguments[3] === \"string\" && stack_arguments[3] !== undefined && stack_arguments[3] !== \"us\") {\n this.config['host'] = stack_arguments[3] + \"-\" + \"cdn.contentstack.com\";\n } else if (_typeof(stack_arguments[3]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[3]);\n }\n }\n return this;\n case 5:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n\n if (stack_arguments[3]) {\n if (typeof stack_arguments[3] === \"string\" && stack_arguments[3] !== undefined && stack_arguments[3] !== \"us\") {\n this.config['host'] = stack_arguments[3] + \"-\" + \"cdn.contentstack.com\";\n } else if (_typeof(stack_arguments[3]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[3]);\n }\n }\n if (stack_arguments[4] && _typeof(stack_arguments[4]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[4]);\n }\n return this;\n default:\n console.error(\"Kindly provide valid parameters to initialize the Contentstack javascript-SDK Stack.\");\n }\n }\n\n /**\n * @method setPort\n * @memberOf Stack\n * @description Sets the port of the host\n * @param {Number} port - Port Number\n * @return {Stack}\n * @instance\n * */\n\n\n _createClass(Stack, [{\n key: 'setPort',\n value: function setPort(port) {\n if (typeof port === \"number\") this.config.port = port;\n return this;\n }\n\n /**\n * @method setProtocol\n * @memberOf Stack\n * @description Sets the protocol for the host\n * @param {String} protocol - http/https protocol\n * @return {Stack}\n * @instance\n * */\n\n }, {\n key: 'setProtocol',\n value: function setProtocol(protocol) {\n if (typeof protocol === \"string\" && ~[\"https\", \"http\"].indexOf(protocol)) this.config.protocol = protocol;\n return this;\n }\n\n /**\n * @method setHost\n * @memberOf Stack\n * @description Sets the host of the API server\n * @param {String} host - valid ip or host\n * @return {Stack}\n * @instance\n * */\n\n }, {\n key: 'setHost',\n value: function setHost(host) {\n if (typeof host === \"string\" && host) this.config.host = host;\n return this;\n }\n\n /**\n * @method setCachePolicy\n * @memberOf Stack\n * @description Allows you to set cache policies\n * @param {Constant} [key=ONLY_NETWORK] - Cache policy to be applied on Stack or Query.\n * @example\n * Stack.setCachePolicy(Contentstack.CachePolicy.IGNORE_CACHE)\n * Stack.setCachePolicy(Contentstack.CachePolicy.ONLY_NETWORK)\n * Stack.setCachePolicy(Contentstack.CachePolicy.CACHE_ELSE_NETWORK)\n * Stack.setCachePolicy(Contentstack.CachePolicy.NETWORK_ELSE_CACHE)\n * Stack.setCachePolicy(Contentstack.CachePolicy.CACHE_THEN_NETWORK)\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'setCachePolicy',\n value: function setCachePolicy(policy) {\n if (typeof policy === 'number' && policy >= -1 && policy < 4) {\n if (!this._query) {\n this.cachePolicy = policy;\n } else {\n this.queryCachePolicy = policy;\n }\n } else {\n console.error(\"Kindly provide the valid policy\");\n }\n return this;\n }\n\n /**\n * @method setCacheProvider\n * @memberOf Stack\n * @description Allows you to set an object of the cache provider\n * @example\n * Stack\n * .setCacheProvider({\n * get: function (key, callback) {\n * // custom logic\n * },\n * set: function (key, value, callback) {\n * // custom logic\n * }\n * });\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'setCacheProvider',\n value: function setCacheProvider(provider) {\n if (provider && (typeof provider === 'undefined' ? 'undefined' : _typeof(provider)) === 'object') {\n this.provider = provider;\n }\n return this;\n }\n\n /**\n * @method clearByQuery\n * @memberOf Stack\n * @description 'clearByQuery' function to clear the query from the cache.\n * @example\n * Stack.clearQuery(query, callback);\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'clearByQuery',\n value: function clearByQuery() {\n if (this.provider && typeof this.provider.clearByQuery === 'function') {\n return this.provider.clearByQuery.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method clearByContentType\n * @memberOf Stack\n * @description 'clearByContentType' function to clear the query from the cache by specified content type.\n * @example\n * Stack.clearByContentType(content_type_uid, callback);\n * Stack.clearByContentType(content_type_uid, language_uid, callback);\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'clearByContentType',\n value: function clearByContentType() {\n if (this.provider && typeof this.provider.clearByContentType === 'function') {\n return this.provider.clearByContentType.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method clearAll\n * @memberOf Stack\n * @description 'clearAll' function to clear all the queries from cache.\n * @example\n * Stack.clearAll(callback);\n * @returns {Stack}\n * @instance \n */\n\n }, {\n key: 'clearAll',\n value: function clearAll() {\n if (this.provider && typeof this.provider.clearAll === 'function') {\n return this.provider.clearAll.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method getCacheProvider\n * @memberOf Stack\n * @description Returns the currently set object of 'CacheProvider'\n * @example Stack.getCacheProvider();\n * @returns {object}\n * @instance\n */\n\n }, {\n key: 'getCacheProvider',\n value: function getCacheProvider() {\n return this.provider;\n }\n\n /**\n * @method ContentType\n * @memberOf Stack\n * @description Set the content type of which you want to retrieve the entries\n * @param {String} [content_type_uid] - uid of the existing content type\n * @example \n * let data = Stack.ContentType('blog').Query().toJSON().find()\n * data\n * .then(function(result) {\n * // 'result' content the list of entries of particular content type blog. \n * }, function(error) {\n * // error function\n * })\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'ContentType',\n value: function ContentType(uid) {\n if (uid && typeof uid === 'string') {\n this.content_type_uid = uid;\n this.type = \"contentType\";\n }\n return this;\n }\n\n /**\n * @method Entry\n * @memberOf ContentType\n * @param {String} uid - uid of the entry \n * @description An initializer is responsible for creating Entry object\n * @returns {Entry}\n * @instance \n */\n\n }, {\n key: 'Entry',\n value: function Entry(uid) {\n var entry = new _entry2.default();\n if (uid && typeof uid === \"string\") {\n entry.entry_uid = uid;\n }\n return Utils.merge(entry, this);\n }\n\n /**\n * @method fetch\n * @memberOf ContentType\n * @description This method returns the complete information of a specific content type.\n * @example\n * let single_contenttype = Stack.ContentType(content_type_uid).fetch()\n * single_contenttype\n * .then(function(result) {\n * // 'result' is a single contentType information. \n * }).catch((error) => {\n * console.log(error)\n * });\n * @returns {promise}\n * @instance \n */\n\n }, {\n key: 'fetch',\n value: function fetch(fetchOptions) {\n var result = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types + this.content_type_uid,\n body: {\n _method: 'GET',\n environment: this.environment\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return (0, _request2.default)(result, options);\n }\n\n /**\n * @method Assets\n * @memberOf Stack\n * @param {String} uid - uid of the asset \n * @description Retrieves all assets of a stack by default. To retrieve a single asset, specify its UID.\n * @example \n * // Retrieves all assets\n * let data = Stack.Assets().Query().toJSON().find()\n * data\n * .then(function(result) {\n * // All the asset with limit of 100\n * // Use skip and limit functions to paginate\n * // ‘result’ will display all assets present in stack \n * }, function(error) {\n * // error function\n * })\n * \n * @example \n * let data = Stack.Assets('bltsomething123').toJSON().fetch()\n * data\n * .then(function(result) {\n * // ‘result’ is a single asset object of specified uid \n * }, function(error) {\n * // error function\n * })\n * \n * @returns {Assets}\n * @instance \n */\n\n }, {\n key: 'Assets',\n value: function Assets(uid) {\n this.type = 'asset';\n if (uid && typeof uid === \"string\") {\n var asset = new _assets2.default();\n asset.asset_uid = uid;\n return Utils.merge(asset, this);\n }\n return this;\n }\n\n /**\n * @method Query\n * @memberOf Stack\n * @description An initializer is responsible for creating Query object.Provides support for all search queries\n * @returns {Query}\n * @instance \n */\n\n }, {\n key: 'Query',\n value: function Query() {\n var query = new _query2.default();\n return Utils.merge(query, this);\n }\n\n /**\n * @method getLastActivites\n * @memberOf Stack\n * @description getLastActivites get all the ContentTypes whose last activity updated.\n * @example Stack.getLastActivites()\n * @example \n * let data = Stack.getLastActivites().toJSON().fetch()\n * data\n * .then(function(result) {\n * // 'result' is list of contentTypes whose last activity updated. \n * }, function(error) {\n * // error function\n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'getLastActivities',\n value: function getLastActivities() {\n var query = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types,\n body: {\n _method: 'GET',\n only_last_activity: true,\n environment: this.environment\n }\n };\n return (0, _request2.default)(query, this.fetchOptions);\n }\n\n /**\n * @method getContentTypes\n * @memberOf Stack\n * @param {String} param - Query on contentTypes\n * @description This method returns comprehensive information of all the content types of a particular stack in your account.\n * @example \n * let data = Stack.getContentTypes({\"include_global_field_schema\": true})\n * data\n * .then(function(result) {\n * // 'result' is list of contentTypes. \n * }, function(error) {\n * // error function\n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'getContentTypes',\n value: function getContentTypes() {\n var param = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var query = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types,\n body: {\n _method: 'GET',\n environment: this.environment\n }\n };\n if (param && param !== undefined) {\n for (var key in param) {\n query.body[key] = param[key];\n }\n }\n return (0, _request2.default)(query, this.fetchOptions);\n }\n\n /**\n * @method sync\n * @memberOf Stack\n * @description Syncs your Contentstack data with your app and ensures that the data is always up-to-date by providing delta updates\n * @param {object} params - params is an object that supports ‘locale’, ‘start_date’, ‘content_type_uid’, and ‘type’ queries.\n * @example \n * Stack.sync({'init': true}) // For initializing sync\n * @example \n * Stack.sync({'init': true, 'locale': 'en-us'}) //For initializing sync with entries of a specific locale\n * @example \n * Stack.sync({'init': true, 'start_date': '2018-10-22'}) //For initializing sync with entries published after a specific date\n * @example \n * Stack.sync({'init': true, 'content_type_uid': 'session'}) //For initializing sync with entries of a specific content type\n * @example \n * Stack.sync({'init': true, 'type': 'entry_published'}) //Use the type parameter to get a specific type of content.Supports 'asset_published', 'entry_published', 'asset_unpublished', 'entry_unpublished', 'asset_deleted', 'entry_deleted', 'content_type_deleted'.\n * @example \n * Stack.sync({'pagination_token': ''}) // For fetching the next batch of entries using pagination token\n * @example \n * Stack.sync({'sync_token': ''}) // For performing subsequent sync after initial sync\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'sync',\n value: function sync(params, fetchOptions) {\n this._query = {};\n this._query = Object.assign(this._query, params);\n this.requestParams = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.sync,\n body: {\n _method: 'GET',\n query: this._query\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return Utils.sendRequest(this, options);\n }\n\n /**\n * @method imageTransform\n * @memberOf Stack\n * @description Performs transformations on images of mentioned url based on transformation parameters \n * @param {String} url - Image url on which transformations need to be applied.\n * @param {String} params - Object with transformation parameters\n * @example\n * Stack.imageTransform(imageURL, {height: 100, width: 200, disable: \"upscale\"});\n * @example\n * Stack.imageTransform(imageURL, {crop: \"150,100\"});\n * @example\n * Stack.imageTransform(imageURL, {format: \"png\", crop: \"150,100\"});\n * @returns {string} [Image url with transformation parameters.]\n * @instance\n */\n\n }, {\n key: 'imageTransform',\n value: function imageTransform(url, params) {\n if (url && typeof url === \"string\" && (typeof params === 'undefined' ? 'undefined' : _typeof(params)) === \"object\" && params.length === undefined) {\n var queryParams = [];\n for (var operation in params) {\n queryParams.push(operation + '=' + params[operation]);\n }\n url += url.indexOf(\"?\") <= -1 ? \"?\" + queryParams.join('&') : \"&\" + queryParams.join('&');\n }\n\n return url;\n }\n }]);\n\n return Stack;\n}();\n\nexports.default = Stack;\n\n//# sourceURL=webpack://Contentstack/./src/core/stack.js?"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _config = __webpack_require__(/*! ../../config */ \"./config.js\");\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _utils = __webpack_require__(/*! ./lib/utils */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _entry = __webpack_require__(/*! ./modules/entry */ \"./src/core/modules/entry.js\");\n\nvar _entry2 = _interopRequireDefault(_entry);\n\nvar _assets = __webpack_require__(/*! ./modules/assets */ \"./src/core/modules/assets.js\");\n\nvar _assets2 = _interopRequireDefault(_assets);\n\nvar _query = __webpack_require__(/*! ./modules/query */ \"./src/core/modules/query.js\");\n\nvar _query2 = _interopRequireDefault(_query);\n\nvar _request = __webpack_require__(/*! ./lib/request */ \"./src/core/lib/request.js\");\n\nvar _request2 = _interopRequireDefault(_request);\n\nvar _index = __webpack_require__(/*! ./cache-provider/index */ \"./src/core/cache-provider/index.js\");\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar errorRetry = [408, 429];\n\n/**\n * @class \n Stack \n * @description Initialize an instance of ‘Stack’\n * @param api_key - Stack API Key.\n * @param delivery_token - Stack Delivery token.\n * @param environment - Stack Environment name.\n * @param region - DB region for Stack.\n * @param fetchOptions - Custom setting for the request.\n * @param fetchOptions.timeout - Set timeout for the request.\n * @param fetchOptions.retryLimit - The number of retries before failure. Default is 5\n * @param fetchOptions.retryDelay - The number of ms to use for operation retries. Default is 300ms\n * @param fetchOptions.retryCondition - A function to determine if the error can be retried. Default retry is on status codes 408, 429.\n * @param fetchOptions.retryDelayOptions.base - The base number of milliseconds to use in the exponential backoff for operation retries.\n * @param fetchOptions.retryDelayOptions.customBackoff - A custom function that accepts a retry count and error and returns the amount of time to delay in milliseconds.\n * @example\n * var Stack = Contentstack.Stack({\n * 'api_key':'api_key',\n * 'delivery_token':'delivery_token',\n * 'environment':'environment_name',\n * 'region': 'us',\n * 'fetchOptions': {\n * \n * }\n * });\n * \n * @example\n * var Stack = Contentstack.Stack('api_key', 'access_token', 'environment', {\n * \n * });\n * \n * @example\n * // For Setting the European Region:\n * // If you want to set and use European region, refer to the code below:\n * const Stack = Contentstack.Stack(\"api_key\", \"delivery_token\", \"environment_name\", Contentstack.Region.EU);\n * \n * @returns {Stack}\n * @instance\n */\n\nvar Stack = function () {\n function Stack() {\n _classCallCheck(this, Stack);\n\n this.fetchOptions = {\n retryLimit: 5,\n retryCondition: function retryCondition(error) {\n if (errorRetry.includes(error.status)) {\n return true;\n }\n return false;\n }\n };\n this.config = Object.assign({}, _config2.default);\n\n for (var _len = arguments.length, stack_arguments = Array(_len), _key = 0; _key < _len; _key++) {\n stack_arguments[_key] = arguments[_key];\n }\n\n if (stack_arguments[0].region && stack_arguments[0].region !== undefined && stack_arguments[0].region !== \"us\") {\n this.config['host'] = stack_arguments[0].region + \"-\" + \"cdn.contentstack.com\";\n }\n\n if (stack_arguments[0].fetchOptions && stack_arguments[0].fetchOptions !== undefined) {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[0].fetchOptions);\n }\n\n this.cachePolicy = _index2.default.policies.IGNORE_CACHE;\n this.provider = _index2.default.providers('localstorage');\n\n switch (stack_arguments.length) {\n case 1:\n if (_typeof(stack_arguments[0]) === \"object\" && typeof stack_arguments[0].api_key === \"string\" && typeof stack_arguments[0].delivery_token === \"string\" && typeof stack_arguments[0].environment === \"string\") {\n this.headers = {\n api_key: stack_arguments[0].api_key,\n access_token: stack_arguments[0].delivery_token\n };\n this.environment = stack_arguments[0].environment;\n return this;\n } else {\n console.error(\"Kindly provide valid object parameters. The specified API Key, Delivery Token, or Environment Name is invalid.\");\n }\n case 3:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n return this;\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n case 4:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n if (stack_arguments[3]) {\n if (typeof stack_arguments[3] === \"string\" && stack_arguments[3] !== undefined && stack_arguments[3] !== \"us\") {\n this.config['host'] = stack_arguments[3] + \"-\" + \"cdn.contentstack.com\";\n } else if (_typeof(stack_arguments[3]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[3]);\n }\n }\n return this;\n case 5:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n\n if (stack_arguments[3]) {\n if (typeof stack_arguments[3] === \"string\" && stack_arguments[3] !== undefined && stack_arguments[3] !== \"us\") {\n this.config['host'] = stack_arguments[3] + \"-\" + \"cdn.contentstack.com\";\n } else if (_typeof(stack_arguments[3]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[3]);\n }\n }\n if (stack_arguments[4] && _typeof(stack_arguments[4]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[4]);\n }\n return this;\n default:\n console.error(\"Kindly provide valid parameters to initialize the Contentstack javascript-SDK Stack.\");\n }\n }\n\n /**\n * @method setPort\n * @memberOf Stack\n * @description Sets the port of the host\n * @param {Number} port - Port Number\n * @return {Stack}\n * @instance\n * */\n\n\n _createClass(Stack, [{\n key: 'setPort',\n value: function setPort(port) {\n if (typeof port === \"number\") this.config.port = port;\n return this;\n }\n\n /**\n * @method setProtocol\n * @memberOf Stack\n * @description Sets the protocol for the host\n * @param {String} protocol - http/https protocol\n * @return {Stack}\n * @instance\n * */\n\n }, {\n key: 'setProtocol',\n value: function setProtocol(protocol) {\n if (typeof protocol === \"string\" && ~[\"https\", \"http\"].indexOf(protocol)) this.config.protocol = protocol;\n return this;\n }\n\n /**\n * @method setHost\n * @memberOf Stack\n * @description Sets the host of the API server\n * @param {String} host - valid ip or host\n * @return {Stack}\n * @instance\n * */\n\n }, {\n key: 'setHost',\n value: function setHost(host) {\n if (typeof host === \"string\" && host) this.config.host = host;\n return this;\n }\n\n /**\n * @method setCachePolicy\n * @memberOf Stack\n * @description Allows you to set cache policies\n * @param {Constant} [key=ONLY_NETWORK] - Cache policy to be applied on Stack or Query.\n * @example\n * Stack.setCachePolicy(Contentstack.CachePolicy.IGNORE_CACHE)\n * Stack.setCachePolicy(Contentstack.CachePolicy.ONLY_NETWORK)\n * Stack.setCachePolicy(Contentstack.CachePolicy.CACHE_ELSE_NETWORK)\n * Stack.setCachePolicy(Contentstack.CachePolicy.NETWORK_ELSE_CACHE)\n * Stack.setCachePolicy(Contentstack.CachePolicy.CACHE_THEN_NETWORK)\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'setCachePolicy',\n value: function setCachePolicy(policy) {\n if (typeof policy === 'number' && policy >= -1 && policy < 4) {\n if (!this._query) {\n this.cachePolicy = policy;\n } else {\n this.queryCachePolicy = policy;\n }\n } else {\n console.error(\"Kindly provide the valid policy\");\n }\n return this;\n }\n\n /**\n * @method setCacheProvider\n * @memberOf Stack\n * @description Allows you to set an object of the cache provider\n * @example\n * Stack\n * .setCacheProvider({\n * get: function (key, callback) {\n * // custom logic\n * },\n * set: function (key, value, callback) {\n * // custom logic\n * }\n * });\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'setCacheProvider',\n value: function setCacheProvider(provider) {\n if (provider && (typeof provider === 'undefined' ? 'undefined' : _typeof(provider)) === 'object') {\n this.provider = provider;\n }\n return this;\n }\n\n /**\n * @method clearByQuery\n * @memberOf Stack\n * @description 'clearByQuery' function to clear the query from the cache.\n * @example\n * Stack.clearQuery(query, callback);\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'clearByQuery',\n value: function clearByQuery() {\n if (this.provider && typeof this.provider.clearByQuery === 'function') {\n return this.provider.clearByQuery.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method clearByContentType\n * @memberOf Stack\n * @description 'clearByContentType' function to clear the query from the cache by specified content type.\n * @example\n * Stack.clearByContentType(content_type_uid, callback);\n * Stack.clearByContentType(content_type_uid, language_uid, callback);\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'clearByContentType',\n value: function clearByContentType() {\n if (this.provider && typeof this.provider.clearByContentType === 'function') {\n return this.provider.clearByContentType.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method clearAll\n * @memberOf Stack\n * @description 'clearAll' function to clear all the queries from cache.\n * @example\n * Stack.clearAll(callback);\n * @returns {Stack}\n * @instance \n */\n\n }, {\n key: 'clearAll',\n value: function clearAll() {\n if (this.provider && typeof this.provider.clearAll === 'function') {\n return this.provider.clearAll.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method getCacheProvider\n * @memberOf Stack\n * @description Returns the currently set object of 'CacheProvider'\n * @example Stack.getCacheProvider();\n * @returns {object}\n * @instance\n */\n\n }, {\n key: 'getCacheProvider',\n value: function getCacheProvider() {\n return this.provider;\n }\n\n /**\n * @method ContentType\n * @memberOf Stack\n * @description Set the content type of which you want to retrieve the entries\n * @param {String} [content_type_uid] - uid of the existing content type\n * @example \n * let data = Stack.ContentType('blog').Query().toJSON().find()\n * data\n * .then(function(result) {\n * // 'result' content the list of entries of particular content type blog. \n * }, function(error) {\n * // error function\n * })\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'ContentType',\n value: function ContentType(uid) {\n if (uid && typeof uid === 'string') {\n this.content_type_uid = uid;\n this.type = \"contentType\";\n }\n return this;\n }\n\n /**\n * @method Entry\n * @memberOf ContentType\n * @param {String} uid - uid of the entry \n * @description An initializer is responsible for creating Entry object\n * @returns {Entry}\n * @instance \n */\n\n }, {\n key: 'Entry',\n value: function Entry(uid) {\n var entry = new _entry2.default();\n if (uid && typeof uid === \"string\") {\n entry.entry_uid = uid;\n }\n return Utils.merge(entry, this);\n }\n\n /**\n * @method fetch\n * @memberOf ContentType\n * @description This method returns the complete information of a specific content type.\n * @example\n * let single_contenttype = Stack.ContentType(content_type_uid).fetch()\n * single_contenttype\n * .then(function(result) {\n * // 'result' is a single contentType information. \n * }).catch((error) => {\n * console.log(error)\n * });\n * @returns {promise}\n * @instance \n */\n\n }, {\n key: 'fetch',\n value: function fetch(fetchOptions) {\n var result = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types + this.content_type_uid,\n body: {\n _method: 'GET',\n environment: this.environment\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return (0, _request2.default)(result, options);\n }\n\n /**\n * @method Assets\n * @memberOf Stack\n * @param {String} uid - uid of the asset \n * @description Retrieves all assets of a stack by default. To retrieve a single asset, specify its UID.\n * @example \n * // Retrieves all assets\n * let data = Stack.Assets().Query().toJSON().find()\n * data\n * .then(function(result) {\n * // All the asset with limit of 100\n * // Use skip and limit functions to paginate\n * // ‘result’ will display all assets present in stack \n * }, function(error) {\n * // error function\n * })\n * \n * @example \n * let data = Stack.Assets('bltsomething123').toJSON().fetch()\n * data\n * .then(function(result) {\n * // ‘result’ is a single asset object of specified uid \n * }, function(error) {\n * // error function\n * })\n * \n * @returns {Assets}\n * @instance \n */\n\n }, {\n key: 'Assets',\n value: function Assets(uid) {\n this.type = 'asset';\n if (uid && typeof uid === \"string\") {\n var asset = new _assets2.default();\n asset.asset_uid = uid;\n return Utils.merge(asset, this);\n }\n return this;\n }\n\n /**\n * @method Query\n * @memberOf Stack\n * @description An initializer is responsible for creating Query object.Provides support for all search queries\n * @returns {Query}\n * @instance \n */\n\n }, {\n key: 'Query',\n value: function Query() {\n var query = new _query2.default();\n return Utils.merge(query, this);\n }\n\n /**\n * @method getLastActivities\n * @memberOf Stack\n * @description getLastActivities get all the ContentTypes whose last activity updated.\n * @example Stack.getLastActivities()\n * @example \n * let data = Stack.getLastActivities().toJSON().fetch()\n * data\n * .then(function(result) {\n * // 'result' is list of contentTypes whose last activity updated. \n * }, function(error) {\n * // error function\n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'getLastActivities',\n value: function getLastActivities() {\n var query = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types,\n body: {\n _method: 'GET',\n only_last_activity: true,\n environment: this.environment\n }\n };\n return (0, _request2.default)(query, this.fetchOptions);\n }\n\n /**\n * @method getContentTypes\n * @memberOf Stack\n * @param {String} param - Query on contentTypes\n * @description This method returns comprehensive information of all the content types of a particular stack in your account.\n * @example \n * let data = Stack.getContentTypes({\"include_global_field_schema\": true})\n * data\n * .then(function(result) {\n * // 'result' is list of contentTypes. \n * }, function(error) {\n * // error function\n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'getContentTypes',\n value: function getContentTypes() {\n var param = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var query = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types,\n body: {\n _method: 'GET',\n environment: this.environment\n }\n };\n if (param && param !== undefined) {\n for (var key in param) {\n query.body[key] = param[key];\n }\n }\n return (0, _request2.default)(query, this.fetchOptions);\n }\n\n /**\n * @method sync\n * @memberOf Stack\n * @description Syncs your Contentstack data with your app and ensures that the data is always up-to-date by providing delta updates\n * @param {object} params - params is an object that supports ‘locale’, ‘start_date’, ‘content_type_uid’, and ‘type’ queries.\n * @example \n * Stack.sync({'init': true}) // For initializing sync\n * @example \n * Stack.sync({'init': true, 'locale': 'en-us'}) //For initializing sync with entries of a specific locale\n * @example \n * Stack.sync({'init': true, 'start_date': '2018-10-22'}) //For initializing sync with entries published after a specific date\n * @example \n * Stack.sync({'init': true, 'content_type_uid': 'session'}) //For initializing sync with entries of a specific content type\n * @example \n * Stack.sync({'init': true, 'type': 'entry_published'}) //Use the type parameter to get a specific type of content.Supports 'asset_published', 'entry_published', 'asset_unpublished', 'entry_unpublished', 'asset_deleted', 'entry_deleted', 'content_type_deleted'.\n * @example \n * Stack.sync({'pagination_token': ''}) // For fetching the next batch of entries using pagination token\n * @example \n * Stack.sync({'sync_token': ''}) // For performing subsequent sync after initial sync\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'sync',\n value: function sync(params, fetchOptions) {\n this._query = {};\n this._query = Object.assign(this._query, params);\n this.requestParams = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.sync,\n body: {\n _method: 'GET',\n query: this._query\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return Utils.sendRequest(this, options);\n }\n\n /**\n * @method imageTransform\n * @memberOf Stack\n * @description Performs transformations on images of mentioned url based on transformation parameters \n * @param {String} url - Image url on which transformations need to be applied.\n * @param {String} params - Object with transformation parameters\n * @example\n * Stack.imageTransform(imageURL, {height: 100, width: 200, disable: \"upscale\"});\n * @example\n * Stack.imageTransform(imageURL, {crop: \"150,100\"});\n * @example\n * Stack.imageTransform(imageURL, {format: \"png\", crop: \"150,100\"});\n * @returns {string} [Image url with transformation parameters.]\n * @instance\n */\n\n }, {\n key: 'imageTransform',\n value: function imageTransform(url, params) {\n if (url && typeof url === \"string\" && (typeof params === 'undefined' ? 'undefined' : _typeof(params)) === \"object\" && params.length === undefined) {\n var queryParams = [];\n for (var operation in params) {\n queryParams.push(operation + '=' + params[operation]);\n }\n url += url.indexOf(\"?\") <= -1 ? \"?\" + queryParams.join('&') : \"&\" + queryParams.join('&');\n }\n\n return url;\n }\n }]);\n\n return Stack;\n}();\n\nexports.default = Stack;\n\n//# sourceURL=webpack://Contentstack/./src/core/stack.js?"); /***/ }), diff --git a/dist/react-native/contentstack.js b/dist/react-native/contentstack.js index 7189ea3a..0056d297 100644 --- a/dist/react-native/contentstack.js +++ b/dist/react-native/contentstack.js @@ -99,6 +99,30 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); /***/ }), +/***/ "./node_modules/@contentstack/utils/dist/index.es.js": +/*!***********************************************************!*\ + !*** ./node_modules/@contentstack/utils/dist/index.es.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar nodeHtmlParser = __webpack_require__(/*! node-html-parser */ \"./node_modules/node-html-parser/dist/esm/index.js\");\n\nvar StyleType;\n(function (StyleType) {\n StyleType[\"BLOCK\"] = \"block\";\n StyleType[\"INLINE\"] = \"inline\";\n StyleType[\"LINK\"] = \"link\";\n StyleType[\"DISPLAY\"] = \"display\";\n StyleType[\"DOWNLOAD\"] = \"download\";\n})(StyleType || (StyleType = {}));\nvar StyleType$1 = StyleType;\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n return t;\n };\n return _assign.apply(this, arguments);\n};\n\nfunction elementToJson(element) {\n var obj = _assign({}, element.rawAttributes);\n element.childNodes.forEach(function (chileNode) {\n var node = chileNode;\n obj = _assign(_assign({}, obj), parseElement(node));\n });\n return obj;\n}\nfunction parseElement(node) {\n var obj = {};\n if (node.nodeType === 3) {\n obj['#text'] = node.text;\n } else if (node.nodeType === 1) {\n obj[node.tagName.toLowerCase()] = elementToJson(node);\n }\n return obj;\n}\n\nfunction createMetadata(attribute) {\n var metadata = {\n text: attribute['#text'],\n itemUid: attribute[\"data-sys-entry-uid\"] || attribute[\"data-sys-asset-uid\"],\n itemType: attribute.type,\n styleType: attribute[\"sys-style-type\"],\n attributes: attribute,\n contentTypeUid: attribute[\"data-sys-content-type-uid\"]\n };\n return metadata;\n}\n\nvar frameflag = 'documentfragmentcontainer';\nString.prototype.forEachEmbeddedObject = function (callbackfn) {\n var str = \"<\" + frameflag + \">\" + this.toString() + \"\";\n var root = nodeHtmlParser.parse(str);\n var embeddedEntries = root.querySelectorAll(\".embedded-entry\");\n embeddedEntries.forEach(function (element) {\n callbackfn(element.outerHTML, createMetadata(elementToJson(element)));\n });\n var embeddedAsset = root.querySelectorAll(\".embedded-asset\");\n embeddedAsset.forEach(function (element) {\n callbackfn(element.outerHTML, createMetadata(elementToJson(element)));\n });\n};\n\nvar _a;\nvar defaultOptions = (_a = {}, _a[StyleType$1.BLOCK] = function (entry) {\n return \"

\" + (entry.title || entry.uid) + \"

Content type: \" + entry._content_type_uid + \"

\";\n}, _a[StyleType$1.INLINE] = function (entry) {\n return \"\" + (entry.title || entry.uid) + \"\";\n}, _a[StyleType$1.LINK] = function (entry, metadata) {\n return \"\" + (metadata.text || entry.title || entry.uid) + \"\";\n}, _a[StyleType$1.DISPLAY] = function (asset, metadata) {\n return \"\\\"\"\";\n}, _a[StyleType$1.DOWNLOAD] = function (entry, metadata) {\n return \"\" + (metadata.text || entry.title || entry.uid) + \"\";\n}, _a);\n\n// This function will find Embedded object present in string\nfunction findEmbeddedEntry(uid, contentTypeUid, embeddeditems) {\n if (embeddeditems === void 0) {\n embeddeditems = [];\n }\n return embeddeditems.filter(function (entry) {\n if (entry.uid === uid && entry._content_type_uid === contentTypeUid) {\n return entry;\n }\n });\n}\nfunction findEmbeddedAsset(uid, embeddedAssets) {\n if (embeddedAssets === void 0) {\n embeddedAssets = [];\n }\n return embeddedAssets.filter(function (asset) {\n if (asset.uid === uid) {\n return asset;\n }\n });\n}\nfunction findEmbeddedObjects(object, entry) {\n if (object && object !== undefined && entry && entry !== undefined) {\n if (entry._embedded_items !== undefined) {\n var entryEmbedable = entry;\n if (object.itemType === 'entry') {\n return findEmbeddedEntry(object.itemUid, object.contentTypeUid, Object.values(entryEmbedable._embedded_items || []).reduce(function (accumulator, value) {\n return accumulator.concat(value);\n }, []));\n } else {\n return findEmbeddedAsset(object.itemUid, Object.values(entryEmbedable._embedded_items || []).reduce(function (accumulator, value) {\n return accumulator.concat(value);\n }, []));\n }\n }\n }\n return [];\n}\nfunction findRenderString(metadata, renderModel, renderOptions) {\n if (!renderModel && renderModel === undefined || !metadata && metadata === undefined) {\n return '';\n }\n if (renderOptions && renderOptions[metadata.styleType] !== undefined) {\n var renderFunction = renderOptions[metadata.styleType];\n if (metadata.attributes['data-sys-content-type-uid'] !== undefined && typeof renderFunction !== 'function' && renderFunction[metadata.attributes['data-sys-content-type-uid']] !== undefined) {\n return renderFunction[metadata.attributes['data-sys-content-type-uid']](renderModel, metadata);\n } else if (metadata.attributes['data-sys-content-type-uid'] !== undefined && typeof renderFunction !== 'function' && renderFunction.$default !== undefined) {\n return renderFunction.$default(renderModel, metadata);\n } else if (typeof renderFunction === 'function') {\n return renderFunction(renderModel, metadata);\n }\n }\n var defaultRenderFunction = defaultOptions[metadata.styleType];\n return defaultRenderFunction(renderModel, metadata);\n}\n\nfunction findRenderContent(keyPaths, entry, render) {\n getContent(keyPaths.split(\".\"), entry, render);\n}\nfunction getContent(keys, object, render) {\n if (keys) {\n var key = keys[0];\n if (keys.length === 1 && object[key]) {\n object[key] = render(object[key]);\n } else if (keys.length > 0) {\n if (object[key]) {\n var newKeys = keys.slice(1);\n if (Array.isArray(object[key])) {\n // tslint:disable-next-line: prefer-for-of\n for (var i = 0; i < object[key].length; i++) {\n getContent(newKeys, object[key][i], render);\n }\n } else if (_typeof(object[key]) === 'object') {\n getContent(newKeys, object[key], render);\n }\n }\n }\n }\n}\n\n/**\r\n *\r\n * @param {EntryEmbedable| EntryEmbedable[]} entry - Objects that contains RTE with embedded objects\r\n * @param {string[]} paths - Key paths for RTE contents in Entry object\r\n * @param {RenderOption?} renderOption - Optional render options to render content\r\n */\nfunction render(option) {\n function findContent(path, entry) {\n findRenderContent(path, entry, function (content) {\n return renderContent(content, { entry: entry, renderOption: option.renderOption });\n });\n }\n function findAndRender(entry) {\n if (!option.paths || option.paths.length === 0) {\n Object.keys(_assign({}, entry._embedded_items)).forEach(function (path) {\n findContent(path, entry);\n });\n } else {\n option.paths.forEach(function (path) {\n findContent(path, entry);\n });\n }\n }\n if (option.entry instanceof Array) {\n option.entry.forEach(function (entry) {\n findAndRender(entry);\n });\n } else {\n findAndRender(option.entry);\n }\n}\n/**\r\n *\r\n * @param {string | string[]} content - RTE content to render\r\n * @param {EntryEmbedable} options.entry - Entry object containing embedded objects\r\n * @param {RenderOption?} options.renderOption - Optional render options to render content\r\n */\nfunction renderContent(content, option) {\n // return blank if content not present\n if (!content || content === undefined) {\n return '';\n }\n // render content of type string\n if (typeof content === 'string') {\n var contentToReplace_1 = content;\n content.forEachEmbeddedObject(function (embededObjectTag, object) {\n contentToReplace_1 = findAndReplaceEmbeddedObject(contentToReplace_1, embededObjectTag, object, option);\n });\n return contentToReplace_1;\n }\n // render content of type array of string\n var resultContent = [];\n content.forEach(function (element) {\n resultContent.push(renderContent(element, option));\n });\n return resultContent;\n}\nfunction findAndReplaceEmbeddedObject(content, embededObjectTag, object, option) {\n var embeddedObjects = findEmbeddedObjects(object, option.entry);\n var renderString = findRenderString(object, embeddedObjects[0], option.renderOption);\n return content.replace(embededObjectTag, renderString);\n}\n\nexports.StyleType = StyleType$1;\nexports.render = render;\nexports.renderContent = renderContent;\n//# sourceMappingURL=index.es.js.map\n\n//# sourceURL=webpack://Contentstack/./node_modules/@contentstack/utils/dist/index.es.js?"); + +/***/ }), + +/***/ "./node_modules/he/he.js": +/*!*******************************!*\ + !*** ./node_modules/he/he.js ***! + \*******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n;(function (root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = ( false ? undefined : _typeof(exports)) == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = ( false ? undefined : _typeof(module)) == 'object' && module && module.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`.\n\tvar freeGlobal = (typeof global === 'undefined' ? 'undefined' : _typeof(global)) == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// All astral symbols.\n\tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\t// All ASCII symbols (not just printable ASCII) except those listed in the\n\t// first column of the overrides table.\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\n\tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\n\t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\n\t// code points listed in the first column of the overrides table on\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\n\tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n\n\tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\n\tvar encodeMap = { '\\xAD': 'shy', '\\u200C': 'zwnj', '\\u200D': 'zwj', '\\u200E': 'lrm', '\\u2063': 'ic', '\\u2062': 'it', '\\u2061': 'af', '\\u200F': 'rlm', '\\u200B': 'ZeroWidthSpace', '\\u2060': 'NoBreak', '\\u0311': 'DownBreve', '\\u20DB': 'tdot', '\\u20DC': 'DotDot', '\\t': 'Tab', '\\n': 'NewLine', '\\u2008': 'puncsp', '\\u205F': 'MediumSpace', '\\u2009': 'thinsp', '\\u200A': 'hairsp', '\\u2004': 'emsp13', '\\u2002': 'ensp', '\\u2005': 'emsp14', '\\u2003': 'emsp', '\\u2007': 'numsp', '\\xA0': 'nbsp', '\\u205F\\u200A': 'ThickSpace', '\\u203E': 'oline', '_': 'lowbar', '\\u2010': 'dash', '\\u2013': 'ndash', '\\u2014': 'mdash', '\\u2015': 'horbar', ',': 'comma', ';': 'semi', '\\u204F': 'bsemi', ':': 'colon', '\\u2A74': 'Colone', '!': 'excl', '\\xA1': 'iexcl', '?': 'quest', '\\xBF': 'iquest', '.': 'period', '\\u2025': 'nldr', '\\u2026': 'mldr', '\\xB7': 'middot', '\\'': 'apos', '\\u2018': 'lsquo', '\\u2019': 'rsquo', '\\u201A': 'sbquo', '\\u2039': 'lsaquo', '\\u203A': 'rsaquo', '\"': 'quot', '\\u201C': 'ldquo', '\\u201D': 'rdquo', '\\u201E': 'bdquo', '\\xAB': 'laquo', '\\xBB': 'raquo', '(': 'lpar', ')': 'rpar', '[': 'lsqb', ']': 'rsqb', '{': 'lcub', '}': 'rcub', '\\u2308': 'lceil', '\\u2309': 'rceil', '\\u230A': 'lfloor', '\\u230B': 'rfloor', '\\u2985': 'lopar', '\\u2986': 'ropar', '\\u298B': 'lbrke', '\\u298C': 'rbrke', '\\u298D': 'lbrkslu', '\\u298E': 'rbrksld', '\\u298F': 'lbrksld', '\\u2990': 'rbrkslu', '\\u2991': 'langd', '\\u2992': 'rangd', '\\u2993': 'lparlt', '\\u2994': 'rpargt', '\\u2995': 'gtlPar', '\\u2996': 'ltrPar', '\\u27E6': 'lobrk', '\\u27E7': 'robrk', '\\u27E8': 'lang', '\\u27E9': 'rang', '\\u27EA': 'Lang', '\\u27EB': 'Rang', '\\u27EC': 'loang', '\\u27ED': 'roang', '\\u2772': 'lbbrk', '\\u2773': 'rbbrk', '\\u2016': 'Vert', '\\xA7': 'sect', '\\xB6': 'para', '@': 'commat', '*': 'ast', '/': 'sol', 'undefined': null, '&': 'amp', '#': 'num', '%': 'percnt', '\\u2030': 'permil', '\\u2031': 'pertenk', '\\u2020': 'dagger', '\\u2021': 'Dagger', '\\u2022': 'bull', '\\u2043': 'hybull', '\\u2032': 'prime', '\\u2033': 'Prime', '\\u2034': 'tprime', '\\u2057': 'qprime', '\\u2035': 'bprime', '\\u2041': 'caret', '`': 'grave', '\\xB4': 'acute', '\\u02DC': 'tilde', '^': 'Hat', '\\xAF': 'macr', '\\u02D8': 'breve', '\\u02D9': 'dot', '\\xA8': 'die', '\\u02DA': 'ring', '\\u02DD': 'dblac', '\\xB8': 'cedil', '\\u02DB': 'ogon', '\\u02C6': 'circ', '\\u02C7': 'caron', '\\xB0': 'deg', '\\xA9': 'copy', '\\xAE': 'reg', '\\u2117': 'copysr', '\\u2118': 'wp', '\\u211E': 'rx', '\\u2127': 'mho', '\\u2129': 'iiota', '\\u2190': 'larr', '\\u219A': 'nlarr', '\\u2192': 'rarr', '\\u219B': 'nrarr', '\\u2191': 'uarr', '\\u2193': 'darr', '\\u2194': 'harr', '\\u21AE': 'nharr', '\\u2195': 'varr', '\\u2196': 'nwarr', '\\u2197': 'nearr', '\\u2198': 'searr', '\\u2199': 'swarr', '\\u219D': 'rarrw', '\\u219D\\u0338': 'nrarrw', '\\u219E': 'Larr', '\\u219F': 'Uarr', '\\u21A0': 'Rarr', '\\u21A1': 'Darr', '\\u21A2': 'larrtl', '\\u21A3': 'rarrtl', '\\u21A4': 'mapstoleft', '\\u21A5': 'mapstoup', '\\u21A6': 'map', '\\u21A7': 'mapstodown', '\\u21A9': 'larrhk', '\\u21AA': 'rarrhk', '\\u21AB': 'larrlp', '\\u21AC': 'rarrlp', '\\u21AD': 'harrw', '\\u21B0': 'lsh', '\\u21B1': 'rsh', '\\u21B2': 'ldsh', '\\u21B3': 'rdsh', '\\u21B5': 'crarr', '\\u21B6': 'cularr', '\\u21B7': 'curarr', '\\u21BA': 'olarr', '\\u21BB': 'orarr', '\\u21BC': 'lharu', '\\u21BD': 'lhard', '\\u21BE': 'uharr', '\\u21BF': 'uharl', '\\u21C0': 'rharu', '\\u21C1': 'rhard', '\\u21C2': 'dharr', '\\u21C3': 'dharl', '\\u21C4': 'rlarr', '\\u21C5': 'udarr', '\\u21C6': 'lrarr', '\\u21C7': 'llarr', '\\u21C8': 'uuarr', '\\u21C9': 'rrarr', '\\u21CA': 'ddarr', '\\u21CB': 'lrhar', '\\u21CC': 'rlhar', '\\u21D0': 'lArr', '\\u21CD': 'nlArr', '\\u21D1': 'uArr', '\\u21D2': 'rArr', '\\u21CF': 'nrArr', '\\u21D3': 'dArr', '\\u21D4': 'iff', '\\u21CE': 'nhArr', '\\u21D5': 'vArr', '\\u21D6': 'nwArr', '\\u21D7': 'neArr', '\\u21D8': 'seArr', '\\u21D9': 'swArr', '\\u21DA': 'lAarr', '\\u21DB': 'rAarr', '\\u21DD': 'zigrarr', '\\u21E4': 'larrb', '\\u21E5': 'rarrb', '\\u21F5': 'duarr', '\\u21FD': 'loarr', '\\u21FE': 'roarr', '\\u21FF': 'hoarr', '\\u2200': 'forall', '\\u2201': 'comp', '\\u2202': 'part', '\\u2202\\u0338': 'npart', '\\u2203': 'exist', '\\u2204': 'nexist', '\\u2205': 'empty', '\\u2207': 'Del', '\\u2208': 'in', '\\u2209': 'notin', '\\u220B': 'ni', '\\u220C': 'notni', '\\u03F6': 'bepsi', '\\u220F': 'prod', '\\u2210': 'coprod', '\\u2211': 'sum', '+': 'plus', '\\xB1': 'pm', '\\xF7': 'div', '\\xD7': 'times', '<': 'lt', '\\u226E': 'nlt', '<\\u20D2': 'nvlt', '=': 'equals', '\\u2260': 'ne', '=\\u20E5': 'bne', '\\u2A75': 'Equal', '>': 'gt', '\\u226F': 'ngt', '>\\u20D2': 'nvgt', '\\xAC': 'not', '|': 'vert', '\\xA6': 'brvbar', '\\u2212': 'minus', '\\u2213': 'mp', '\\u2214': 'plusdo', '\\u2044': 'frasl', '\\u2216': 'setmn', '\\u2217': 'lowast', '\\u2218': 'compfn', '\\u221A': 'Sqrt', '\\u221D': 'prop', '\\u221E': 'infin', '\\u221F': 'angrt', '\\u2220': 'ang', '\\u2220\\u20D2': 'nang', '\\u2221': 'angmsd', '\\u2222': 'angsph', '\\u2223': 'mid', '\\u2224': 'nmid', '\\u2225': 'par', '\\u2226': 'npar', '\\u2227': 'and', '\\u2228': 'or', '\\u2229': 'cap', '\\u2229\\uFE00': 'caps', '\\u222A': 'cup', '\\u222A\\uFE00': 'cups', '\\u222B': 'int', '\\u222C': 'Int', '\\u222D': 'tint', '\\u2A0C': 'qint', '\\u222E': 'oint', '\\u222F': 'Conint', '\\u2230': 'Cconint', '\\u2231': 'cwint', '\\u2232': 'cwconint', '\\u2233': 'awconint', '\\u2234': 'there4', '\\u2235': 'becaus', '\\u2236': 'ratio', '\\u2237': 'Colon', '\\u2238': 'minusd', '\\u223A': 'mDDot', '\\u223B': 'homtht', '\\u223C': 'sim', '\\u2241': 'nsim', '\\u223C\\u20D2': 'nvsim', '\\u223D': 'bsim', '\\u223D\\u0331': 'race', '\\u223E': 'ac', '\\u223E\\u0333': 'acE', '\\u223F': 'acd', '\\u2240': 'wr', '\\u2242': 'esim', '\\u2242\\u0338': 'nesim', '\\u2243': 'sime', '\\u2244': 'nsime', '\\u2245': 'cong', '\\u2247': 'ncong', '\\u2246': 'simne', '\\u2248': 'ap', '\\u2249': 'nap', '\\u224A': 'ape', '\\u224B': 'apid', '\\u224B\\u0338': 'napid', '\\u224C': 'bcong', '\\u224D': 'CupCap', '\\u226D': 'NotCupCap', '\\u224D\\u20D2': 'nvap', '\\u224E': 'bump', '\\u224E\\u0338': 'nbump', '\\u224F': 'bumpe', '\\u224F\\u0338': 'nbumpe', '\\u2250': 'doteq', '\\u2250\\u0338': 'nedot', '\\u2251': 'eDot', '\\u2252': 'efDot', '\\u2253': 'erDot', '\\u2254': 'colone', '\\u2255': 'ecolon', '\\u2256': 'ecir', '\\u2257': 'cire', '\\u2259': 'wedgeq', '\\u225A': 'veeeq', '\\u225C': 'trie', '\\u225F': 'equest', '\\u2261': 'equiv', '\\u2262': 'nequiv', '\\u2261\\u20E5': 'bnequiv', '\\u2264': 'le', '\\u2270': 'nle', '\\u2264\\u20D2': 'nvle', '\\u2265': 'ge', '\\u2271': 'nge', '\\u2265\\u20D2': 'nvge', '\\u2266': 'lE', '\\u2266\\u0338': 'nlE', '\\u2267': 'gE', '\\u2267\\u0338': 'ngE', '\\u2268\\uFE00': 'lvnE', '\\u2268': 'lnE', '\\u2269': 'gnE', '\\u2269\\uFE00': 'gvnE', '\\u226A': 'll', '\\u226A\\u0338': 'nLtv', '\\u226A\\u20D2': 'nLt', '\\u226B': 'gg', '\\u226B\\u0338': 'nGtv', '\\u226B\\u20D2': 'nGt', '\\u226C': 'twixt', '\\u2272': 'lsim', '\\u2274': 'nlsim', '\\u2273': 'gsim', '\\u2275': 'ngsim', '\\u2276': 'lg', '\\u2278': 'ntlg', '\\u2277': 'gl', '\\u2279': 'ntgl', '\\u227A': 'pr', '\\u2280': 'npr', '\\u227B': 'sc', '\\u2281': 'nsc', '\\u227C': 'prcue', '\\u22E0': 'nprcue', '\\u227D': 'sccue', '\\u22E1': 'nsccue', '\\u227E': 'prsim', '\\u227F': 'scsim', '\\u227F\\u0338': 'NotSucceedsTilde', '\\u2282': 'sub', '\\u2284': 'nsub', '\\u2282\\u20D2': 'vnsub', '\\u2283': 'sup', '\\u2285': 'nsup', '\\u2283\\u20D2': 'vnsup', '\\u2286': 'sube', '\\u2288': 'nsube', '\\u2287': 'supe', '\\u2289': 'nsupe', '\\u228A\\uFE00': 'vsubne', '\\u228A': 'subne', '\\u228B\\uFE00': 'vsupne', '\\u228B': 'supne', '\\u228D': 'cupdot', '\\u228E': 'uplus', '\\u228F': 'sqsub', '\\u228F\\u0338': 'NotSquareSubset', '\\u2290': 'sqsup', '\\u2290\\u0338': 'NotSquareSuperset', '\\u2291': 'sqsube', '\\u22E2': 'nsqsube', '\\u2292': 'sqsupe', '\\u22E3': 'nsqsupe', '\\u2293': 'sqcap', '\\u2293\\uFE00': 'sqcaps', '\\u2294': 'sqcup', '\\u2294\\uFE00': 'sqcups', '\\u2295': 'oplus', '\\u2296': 'ominus', '\\u2297': 'otimes', '\\u2298': 'osol', '\\u2299': 'odot', '\\u229A': 'ocir', '\\u229B': 'oast', '\\u229D': 'odash', '\\u229E': 'plusb', '\\u229F': 'minusb', '\\u22A0': 'timesb', '\\u22A1': 'sdotb', '\\u22A2': 'vdash', '\\u22AC': 'nvdash', '\\u22A3': 'dashv', '\\u22A4': 'top', '\\u22A5': 'bot', '\\u22A7': 'models', '\\u22A8': 'vDash', '\\u22AD': 'nvDash', '\\u22A9': 'Vdash', '\\u22AE': 'nVdash', '\\u22AA': 'Vvdash', '\\u22AB': 'VDash', '\\u22AF': 'nVDash', '\\u22B0': 'prurel', '\\u22B2': 'vltri', '\\u22EA': 'nltri', '\\u22B3': 'vrtri', '\\u22EB': 'nrtri', '\\u22B4': 'ltrie', '\\u22EC': 'nltrie', '\\u22B4\\u20D2': 'nvltrie', '\\u22B5': 'rtrie', '\\u22ED': 'nrtrie', '\\u22B5\\u20D2': 'nvrtrie', '\\u22B6': 'origof', '\\u22B7': 'imof', '\\u22B8': 'mumap', '\\u22B9': 'hercon', '\\u22BA': 'intcal', '\\u22BB': 'veebar', '\\u22BD': 'barvee', '\\u22BE': 'angrtvb', '\\u22BF': 'lrtri', '\\u22C0': 'Wedge', '\\u22C1': 'Vee', '\\u22C2': 'xcap', '\\u22C3': 'xcup', '\\u22C4': 'diam', '\\u22C5': 'sdot', '\\u22C6': 'Star', '\\u22C7': 'divonx', '\\u22C8': 'bowtie', '\\u22C9': 'ltimes', '\\u22CA': 'rtimes', '\\u22CB': 'lthree', '\\u22CC': 'rthree', '\\u22CD': 'bsime', '\\u22CE': 'cuvee', '\\u22CF': 'cuwed', '\\u22D0': 'Sub', '\\u22D1': 'Sup', '\\u22D2': 'Cap', '\\u22D3': 'Cup', '\\u22D4': 'fork', '\\u22D5': 'epar', '\\u22D6': 'ltdot', '\\u22D7': 'gtdot', '\\u22D8': 'Ll', '\\u22D8\\u0338': 'nLl', '\\u22D9': 'Gg', '\\u22D9\\u0338': 'nGg', '\\u22DA\\uFE00': 'lesg', '\\u22DA': 'leg', '\\u22DB': 'gel', '\\u22DB\\uFE00': 'gesl', '\\u22DE': 'cuepr', '\\u22DF': 'cuesc', '\\u22E6': 'lnsim', '\\u22E7': 'gnsim', '\\u22E8': 'prnsim', '\\u22E9': 'scnsim', '\\u22EE': 'vellip', '\\u22EF': 'ctdot', '\\u22F0': 'utdot', '\\u22F1': 'dtdot', '\\u22F2': 'disin', '\\u22F3': 'isinsv', '\\u22F4': 'isins', '\\u22F5': 'isindot', '\\u22F5\\u0338': 'notindot', '\\u22F6': 'notinvc', '\\u22F7': 'notinvb', '\\u22F9': 'isinE', '\\u22F9\\u0338': 'notinE', '\\u22FA': 'nisd', '\\u22FB': 'xnis', '\\u22FC': 'nis', '\\u22FD': 'notnivc', '\\u22FE': 'notnivb', '\\u2305': 'barwed', '\\u2306': 'Barwed', '\\u230C': 'drcrop', '\\u230D': 'dlcrop', '\\u230E': 'urcrop', '\\u230F': 'ulcrop', '\\u2310': 'bnot', '\\u2312': 'profline', '\\u2313': 'profsurf', '\\u2315': 'telrec', '\\u2316': 'target', '\\u231C': 'ulcorn', '\\u231D': 'urcorn', '\\u231E': 'dlcorn', '\\u231F': 'drcorn', '\\u2322': 'frown', '\\u2323': 'smile', '\\u232D': 'cylcty', '\\u232E': 'profalar', '\\u2336': 'topbot', '\\u233D': 'ovbar', '\\u233F': 'solbar', '\\u237C': 'angzarr', '\\u23B0': 'lmoust', '\\u23B1': 'rmoust', '\\u23B4': 'tbrk', '\\u23B5': 'bbrk', '\\u23B6': 'bbrktbrk', '\\u23DC': 'OverParenthesis', '\\u23DD': 'UnderParenthesis', '\\u23DE': 'OverBrace', '\\u23DF': 'UnderBrace', '\\u23E2': 'trpezium', '\\u23E7': 'elinters', '\\u2423': 'blank', '\\u2500': 'boxh', '\\u2502': 'boxv', '\\u250C': 'boxdr', '\\u2510': 'boxdl', '\\u2514': 'boxur', '\\u2518': 'boxul', '\\u251C': 'boxvr', '\\u2524': 'boxvl', '\\u252C': 'boxhd', '\\u2534': 'boxhu', '\\u253C': 'boxvh', '\\u2550': 'boxH', '\\u2551': 'boxV', '\\u2552': 'boxdR', '\\u2553': 'boxDr', '\\u2554': 'boxDR', '\\u2555': 'boxdL', '\\u2556': 'boxDl', '\\u2557': 'boxDL', '\\u2558': 'boxuR', '\\u2559': 'boxUr', '\\u255A': 'boxUR', '\\u255B': 'boxuL', '\\u255C': 'boxUl', '\\u255D': 'boxUL', '\\u255E': 'boxvR', '\\u255F': 'boxVr', '\\u2560': 'boxVR', '\\u2561': 'boxvL', '\\u2562': 'boxVl', '\\u2563': 'boxVL', '\\u2564': 'boxHd', '\\u2565': 'boxhD', '\\u2566': 'boxHD', '\\u2567': 'boxHu', '\\u2568': 'boxhU', '\\u2569': 'boxHU', '\\u256A': 'boxvH', '\\u256B': 'boxVh', '\\u256C': 'boxVH', '\\u2580': 'uhblk', '\\u2584': 'lhblk', '\\u2588': 'block', '\\u2591': 'blk14', '\\u2592': 'blk12', '\\u2593': 'blk34', '\\u25A1': 'squ', '\\u25AA': 'squf', '\\u25AB': 'EmptyVerySmallSquare', '\\u25AD': 'rect', '\\u25AE': 'marker', '\\u25B1': 'fltns', '\\u25B3': 'xutri', '\\u25B4': 'utrif', '\\u25B5': 'utri', '\\u25B8': 'rtrif', '\\u25B9': 'rtri', '\\u25BD': 'xdtri', '\\u25BE': 'dtrif', '\\u25BF': 'dtri', '\\u25C2': 'ltrif', '\\u25C3': 'ltri', '\\u25CA': 'loz', '\\u25CB': 'cir', '\\u25EC': 'tridot', '\\u25EF': 'xcirc', '\\u25F8': 'ultri', '\\u25F9': 'urtri', '\\u25FA': 'lltri', '\\u25FB': 'EmptySmallSquare', '\\u25FC': 'FilledSmallSquare', '\\u2605': 'starf', '\\u2606': 'star', '\\u260E': 'phone', '\\u2640': 'female', '\\u2642': 'male', '\\u2660': 'spades', '\\u2663': 'clubs', '\\u2665': 'hearts', '\\u2666': 'diams', '\\u266A': 'sung', '\\u2713': 'check', '\\u2717': 'cross', '\\u2720': 'malt', '\\u2736': 'sext', '\\u2758': 'VerticalSeparator', '\\u27C8': 'bsolhsub', '\\u27C9': 'suphsol', '\\u27F5': 'xlarr', '\\u27F6': 'xrarr', '\\u27F7': 'xharr', '\\u27F8': 'xlArr', '\\u27F9': 'xrArr', '\\u27FA': 'xhArr', '\\u27FC': 'xmap', '\\u27FF': 'dzigrarr', '\\u2902': 'nvlArr', '\\u2903': 'nvrArr', '\\u2904': 'nvHarr', '\\u2905': 'Map', '\\u290C': 'lbarr', '\\u290D': 'rbarr', '\\u290E': 'lBarr', '\\u290F': 'rBarr', '\\u2910': 'RBarr', '\\u2911': 'DDotrahd', '\\u2912': 'UpArrowBar', '\\u2913': 'DownArrowBar', '\\u2916': 'Rarrtl', '\\u2919': 'latail', '\\u291A': 'ratail', '\\u291B': 'lAtail', '\\u291C': 'rAtail', '\\u291D': 'larrfs', '\\u291E': 'rarrfs', '\\u291F': 'larrbfs', '\\u2920': 'rarrbfs', '\\u2923': 'nwarhk', '\\u2924': 'nearhk', '\\u2925': 'searhk', '\\u2926': 'swarhk', '\\u2927': 'nwnear', '\\u2928': 'toea', '\\u2929': 'tosa', '\\u292A': 'swnwar', '\\u2933': 'rarrc', '\\u2933\\u0338': 'nrarrc', '\\u2935': 'cudarrr', '\\u2936': 'ldca', '\\u2937': 'rdca', '\\u2938': 'cudarrl', '\\u2939': 'larrpl', '\\u293C': 'curarrm', '\\u293D': 'cularrp', '\\u2945': 'rarrpl', '\\u2948': 'harrcir', '\\u2949': 'Uarrocir', '\\u294A': 'lurdshar', '\\u294B': 'ldrushar', '\\u294E': 'LeftRightVector', '\\u294F': 'RightUpDownVector', '\\u2950': 'DownLeftRightVector', '\\u2951': 'LeftUpDownVector', '\\u2952': 'LeftVectorBar', '\\u2953': 'RightVectorBar', '\\u2954': 'RightUpVectorBar', '\\u2955': 'RightDownVectorBar', '\\u2956': 'DownLeftVectorBar', '\\u2957': 'DownRightVectorBar', '\\u2958': 'LeftUpVectorBar', '\\u2959': 'LeftDownVectorBar', '\\u295A': 'LeftTeeVector', '\\u295B': 'RightTeeVector', '\\u295C': 'RightUpTeeVector', '\\u295D': 'RightDownTeeVector', '\\u295E': 'DownLeftTeeVector', '\\u295F': 'DownRightTeeVector', '\\u2960': 'LeftUpTeeVector', '\\u2961': 'LeftDownTeeVector', '\\u2962': 'lHar', '\\u2963': 'uHar', '\\u2964': 'rHar', '\\u2965': 'dHar', '\\u2966': 'luruhar', '\\u2967': 'ldrdhar', '\\u2968': 'ruluhar', '\\u2969': 'rdldhar', '\\u296A': 'lharul', '\\u296B': 'llhard', '\\u296C': 'rharul', '\\u296D': 'lrhard', '\\u296E': 'udhar', '\\u296F': 'duhar', '\\u2970': 'RoundImplies', '\\u2971': 'erarr', '\\u2972': 'simrarr', '\\u2973': 'larrsim', '\\u2974': 'rarrsim', '\\u2975': 'rarrap', '\\u2976': 'ltlarr', '\\u2978': 'gtrarr', '\\u2979': 'subrarr', '\\u297B': 'suplarr', '\\u297C': 'lfisht', '\\u297D': 'rfisht', '\\u297E': 'ufisht', '\\u297F': 'dfisht', '\\u299A': 'vzigzag', '\\u299C': 'vangrt', '\\u299D': 'angrtvbd', '\\u29A4': 'ange', '\\u29A5': 'range', '\\u29A6': 'dwangle', '\\u29A7': 'uwangle', '\\u29A8': 'angmsdaa', '\\u29A9': 'angmsdab', '\\u29AA': 'angmsdac', '\\u29AB': 'angmsdad', '\\u29AC': 'angmsdae', '\\u29AD': 'angmsdaf', '\\u29AE': 'angmsdag', '\\u29AF': 'angmsdah', '\\u29B0': 'bemptyv', '\\u29B1': 'demptyv', '\\u29B2': 'cemptyv', '\\u29B3': 'raemptyv', '\\u29B4': 'laemptyv', '\\u29B5': 'ohbar', '\\u29B6': 'omid', '\\u29B7': 'opar', '\\u29B9': 'operp', '\\u29BB': 'olcross', '\\u29BC': 'odsold', '\\u29BE': 'olcir', '\\u29BF': 'ofcir', '\\u29C0': 'olt', '\\u29C1': 'ogt', '\\u29C2': 'cirscir', '\\u29C3': 'cirE', '\\u29C4': 'solb', '\\u29C5': 'bsolb', '\\u29C9': 'boxbox', '\\u29CD': 'trisb', '\\u29CE': 'rtriltri', '\\u29CF': 'LeftTriangleBar', '\\u29CF\\u0338': 'NotLeftTriangleBar', '\\u29D0': 'RightTriangleBar', '\\u29D0\\u0338': 'NotRightTriangleBar', '\\u29DC': 'iinfin', '\\u29DD': 'infintie', '\\u29DE': 'nvinfin', '\\u29E3': 'eparsl', '\\u29E4': 'smeparsl', '\\u29E5': 'eqvparsl', '\\u29EB': 'lozf', '\\u29F4': 'RuleDelayed', '\\u29F6': 'dsol', '\\u2A00': 'xodot', '\\u2A01': 'xoplus', '\\u2A02': 'xotime', '\\u2A04': 'xuplus', '\\u2A06': 'xsqcup', '\\u2A0D': 'fpartint', '\\u2A10': 'cirfnint', '\\u2A11': 'awint', '\\u2A12': 'rppolint', '\\u2A13': 'scpolint', '\\u2A14': 'npolint', '\\u2A15': 'pointint', '\\u2A16': 'quatint', '\\u2A17': 'intlarhk', '\\u2A22': 'pluscir', '\\u2A23': 'plusacir', '\\u2A24': 'simplus', '\\u2A25': 'plusdu', '\\u2A26': 'plussim', '\\u2A27': 'plustwo', '\\u2A29': 'mcomma', '\\u2A2A': 'minusdu', '\\u2A2D': 'loplus', '\\u2A2E': 'roplus', '\\u2A2F': 'Cross', '\\u2A30': 'timesd', '\\u2A31': 'timesbar', '\\u2A33': 'smashp', '\\u2A34': 'lotimes', '\\u2A35': 'rotimes', '\\u2A36': 'otimesas', '\\u2A37': 'Otimes', '\\u2A38': 'odiv', '\\u2A39': 'triplus', '\\u2A3A': 'triminus', '\\u2A3B': 'tritime', '\\u2A3C': 'iprod', '\\u2A3F': 'amalg', '\\u2A40': 'capdot', '\\u2A42': 'ncup', '\\u2A43': 'ncap', '\\u2A44': 'capand', '\\u2A45': 'cupor', '\\u2A46': 'cupcap', '\\u2A47': 'capcup', '\\u2A48': 'cupbrcap', '\\u2A49': 'capbrcup', '\\u2A4A': 'cupcup', '\\u2A4B': 'capcap', '\\u2A4C': 'ccups', '\\u2A4D': 'ccaps', '\\u2A50': 'ccupssm', '\\u2A53': 'And', '\\u2A54': 'Or', '\\u2A55': 'andand', '\\u2A56': 'oror', '\\u2A57': 'orslope', '\\u2A58': 'andslope', '\\u2A5A': 'andv', '\\u2A5B': 'orv', '\\u2A5C': 'andd', '\\u2A5D': 'ord', '\\u2A5F': 'wedbar', '\\u2A66': 'sdote', '\\u2A6A': 'simdot', '\\u2A6D': 'congdot', '\\u2A6D\\u0338': 'ncongdot', '\\u2A6E': 'easter', '\\u2A6F': 'apacir', '\\u2A70': 'apE', '\\u2A70\\u0338': 'napE', '\\u2A71': 'eplus', '\\u2A72': 'pluse', '\\u2A73': 'Esim', '\\u2A77': 'eDDot', '\\u2A78': 'equivDD', '\\u2A79': 'ltcir', '\\u2A7A': 'gtcir', '\\u2A7B': 'ltquest', '\\u2A7C': 'gtquest', '\\u2A7D': 'les', '\\u2A7D\\u0338': 'nles', '\\u2A7E': 'ges', '\\u2A7E\\u0338': 'nges', '\\u2A7F': 'lesdot', '\\u2A80': 'gesdot', '\\u2A81': 'lesdoto', '\\u2A82': 'gesdoto', '\\u2A83': 'lesdotor', '\\u2A84': 'gesdotol', '\\u2A85': 'lap', '\\u2A86': 'gap', '\\u2A87': 'lne', '\\u2A88': 'gne', '\\u2A89': 'lnap', '\\u2A8A': 'gnap', '\\u2A8B': 'lEg', '\\u2A8C': 'gEl', '\\u2A8D': 'lsime', '\\u2A8E': 'gsime', '\\u2A8F': 'lsimg', '\\u2A90': 'gsiml', '\\u2A91': 'lgE', '\\u2A92': 'glE', '\\u2A93': 'lesges', '\\u2A94': 'gesles', '\\u2A95': 'els', '\\u2A96': 'egs', '\\u2A97': 'elsdot', '\\u2A98': 'egsdot', '\\u2A99': 'el', '\\u2A9A': 'eg', '\\u2A9D': 'siml', '\\u2A9E': 'simg', '\\u2A9F': 'simlE', '\\u2AA0': 'simgE', '\\u2AA1': 'LessLess', '\\u2AA1\\u0338': 'NotNestedLessLess', '\\u2AA2': 'GreaterGreater', '\\u2AA2\\u0338': 'NotNestedGreaterGreater', '\\u2AA4': 'glj', '\\u2AA5': 'gla', '\\u2AA6': 'ltcc', '\\u2AA7': 'gtcc', '\\u2AA8': 'lescc', '\\u2AA9': 'gescc', '\\u2AAA': 'smt', '\\u2AAB': 'lat', '\\u2AAC': 'smte', '\\u2AAC\\uFE00': 'smtes', '\\u2AAD': 'late', '\\u2AAD\\uFE00': 'lates', '\\u2AAE': 'bumpE', '\\u2AAF': 'pre', '\\u2AAF\\u0338': 'npre', '\\u2AB0': 'sce', '\\u2AB0\\u0338': 'nsce', '\\u2AB3': 'prE', '\\u2AB4': 'scE', '\\u2AB5': 'prnE', '\\u2AB6': 'scnE', '\\u2AB7': 'prap', '\\u2AB8': 'scap', '\\u2AB9': 'prnap', '\\u2ABA': 'scnap', '\\u2ABB': 'Pr', '\\u2ABC': 'Sc', '\\u2ABD': 'subdot', '\\u2ABE': 'supdot', '\\u2ABF': 'subplus', '\\u2AC0': 'supplus', '\\u2AC1': 'submult', '\\u2AC2': 'supmult', '\\u2AC3': 'subedot', '\\u2AC4': 'supedot', '\\u2AC5': 'subE', '\\u2AC5\\u0338': 'nsubE', '\\u2AC6': 'supE', '\\u2AC6\\u0338': 'nsupE', '\\u2AC7': 'subsim', '\\u2AC8': 'supsim', '\\u2ACB\\uFE00': 'vsubnE', '\\u2ACB': 'subnE', '\\u2ACC\\uFE00': 'vsupnE', '\\u2ACC': 'supnE', '\\u2ACF': 'csub', '\\u2AD0': 'csup', '\\u2AD1': 'csube', '\\u2AD2': 'csupe', '\\u2AD3': 'subsup', '\\u2AD4': 'supsub', '\\u2AD5': 'subsub', '\\u2AD6': 'supsup', '\\u2AD7': 'suphsub', '\\u2AD8': 'supdsub', '\\u2AD9': 'forkv', '\\u2ADA': 'topfork', '\\u2ADB': 'mlcp', '\\u2AE4': 'Dashv', '\\u2AE6': 'Vdashl', '\\u2AE7': 'Barv', '\\u2AE8': 'vBar', '\\u2AE9': 'vBarv', '\\u2AEB': 'Vbar', '\\u2AEC': 'Not', '\\u2AED': 'bNot', '\\u2AEE': 'rnmid', '\\u2AEF': 'cirmid', '\\u2AF0': 'midcir', '\\u2AF1': 'topcir', '\\u2AF2': 'nhpar', '\\u2AF3': 'parsim', '\\u2AFD': 'parsl', '\\u2AFD\\u20E5': 'nparsl', '\\u266D': 'flat', '\\u266E': 'natur', '\\u266F': 'sharp', '\\xA4': 'curren', '\\xA2': 'cent', '$': 'dollar', '\\xA3': 'pound', '\\xA5': 'yen', '\\u20AC': 'euro', '\\xB9': 'sup1', '\\xBD': 'half', '\\u2153': 'frac13', '\\xBC': 'frac14', '\\u2155': 'frac15', '\\u2159': 'frac16', '\\u215B': 'frac18', '\\xB2': 'sup2', '\\u2154': 'frac23', '\\u2156': 'frac25', '\\xB3': 'sup3', '\\xBE': 'frac34', '\\u2157': 'frac35', '\\u215C': 'frac38', '\\u2158': 'frac45', '\\u215A': 'frac56', '\\u215D': 'frac58', '\\u215E': 'frac78', '\\uD835\\uDCB6': 'ascr', '\\uD835\\uDD52': 'aopf', '\\uD835\\uDD1E': 'afr', '\\uD835\\uDD38': 'Aopf', '\\uD835\\uDD04': 'Afr', '\\uD835\\uDC9C': 'Ascr', '\\xAA': 'ordf', '\\xE1': 'aacute', '\\xC1': 'Aacute', '\\xE0': 'agrave', '\\xC0': 'Agrave', '\\u0103': 'abreve', '\\u0102': 'Abreve', '\\xE2': 'acirc', '\\xC2': 'Acirc', '\\xE5': 'aring', '\\xC5': 'angst', '\\xE4': 'auml', '\\xC4': 'Auml', '\\xE3': 'atilde', '\\xC3': 'Atilde', '\\u0105': 'aogon', '\\u0104': 'Aogon', '\\u0101': 'amacr', '\\u0100': 'Amacr', '\\xE6': 'aelig', '\\xC6': 'AElig', '\\uD835\\uDCB7': 'bscr', '\\uD835\\uDD53': 'bopf', '\\uD835\\uDD1F': 'bfr', '\\uD835\\uDD39': 'Bopf', '\\u212C': 'Bscr', '\\uD835\\uDD05': 'Bfr', '\\uD835\\uDD20': 'cfr', '\\uD835\\uDCB8': 'cscr', '\\uD835\\uDD54': 'copf', '\\u212D': 'Cfr', '\\uD835\\uDC9E': 'Cscr', '\\u2102': 'Copf', '\\u0107': 'cacute', '\\u0106': 'Cacute', '\\u0109': 'ccirc', '\\u0108': 'Ccirc', '\\u010D': 'ccaron', '\\u010C': 'Ccaron', '\\u010B': 'cdot', '\\u010A': 'Cdot', '\\xE7': 'ccedil', '\\xC7': 'Ccedil', '\\u2105': 'incare', '\\uD835\\uDD21': 'dfr', '\\u2146': 'dd', '\\uD835\\uDD55': 'dopf', '\\uD835\\uDCB9': 'dscr', '\\uD835\\uDC9F': 'Dscr', '\\uD835\\uDD07': 'Dfr', '\\u2145': 'DD', '\\uD835\\uDD3B': 'Dopf', '\\u010F': 'dcaron', '\\u010E': 'Dcaron', '\\u0111': 'dstrok', '\\u0110': 'Dstrok', '\\xF0': 'eth', '\\xD0': 'ETH', '\\u2147': 'ee', '\\u212F': 'escr', '\\uD835\\uDD22': 'efr', '\\uD835\\uDD56': 'eopf', '\\u2130': 'Escr', '\\uD835\\uDD08': 'Efr', '\\uD835\\uDD3C': 'Eopf', '\\xE9': 'eacute', '\\xC9': 'Eacute', '\\xE8': 'egrave', '\\xC8': 'Egrave', '\\xEA': 'ecirc', '\\xCA': 'Ecirc', '\\u011B': 'ecaron', '\\u011A': 'Ecaron', '\\xEB': 'euml', '\\xCB': 'Euml', '\\u0117': 'edot', '\\u0116': 'Edot', '\\u0119': 'eogon', '\\u0118': 'Eogon', '\\u0113': 'emacr', '\\u0112': 'Emacr', '\\uD835\\uDD23': 'ffr', '\\uD835\\uDD57': 'fopf', '\\uD835\\uDCBB': 'fscr', '\\uD835\\uDD09': 'Ffr', '\\uD835\\uDD3D': 'Fopf', '\\u2131': 'Fscr', '\\uFB00': 'fflig', '\\uFB03': 'ffilig', '\\uFB04': 'ffllig', '\\uFB01': 'filig', 'fj': 'fjlig', '\\uFB02': 'fllig', '\\u0192': 'fnof', '\\u210A': 'gscr', '\\uD835\\uDD58': 'gopf', '\\uD835\\uDD24': 'gfr', '\\uD835\\uDCA2': 'Gscr', '\\uD835\\uDD3E': 'Gopf', '\\uD835\\uDD0A': 'Gfr', '\\u01F5': 'gacute', '\\u011F': 'gbreve', '\\u011E': 'Gbreve', '\\u011D': 'gcirc', '\\u011C': 'Gcirc', '\\u0121': 'gdot', '\\u0120': 'Gdot', '\\u0122': 'Gcedil', '\\uD835\\uDD25': 'hfr', '\\u210E': 'planckh', '\\uD835\\uDCBD': 'hscr', '\\uD835\\uDD59': 'hopf', '\\u210B': 'Hscr', '\\u210C': 'Hfr', '\\u210D': 'Hopf', '\\u0125': 'hcirc', '\\u0124': 'Hcirc', '\\u210F': 'hbar', '\\u0127': 'hstrok', '\\u0126': 'Hstrok', '\\uD835\\uDD5A': 'iopf', '\\uD835\\uDD26': 'ifr', '\\uD835\\uDCBE': 'iscr', '\\u2148': 'ii', '\\uD835\\uDD40': 'Iopf', '\\u2110': 'Iscr', '\\u2111': 'Im', '\\xED': 'iacute', '\\xCD': 'Iacute', '\\xEC': 'igrave', '\\xCC': 'Igrave', '\\xEE': 'icirc', '\\xCE': 'Icirc', '\\xEF': 'iuml', '\\xCF': 'Iuml', '\\u0129': 'itilde', '\\u0128': 'Itilde', '\\u0130': 'Idot', '\\u012F': 'iogon', '\\u012E': 'Iogon', '\\u012B': 'imacr', '\\u012A': 'Imacr', '\\u0133': 'ijlig', '\\u0132': 'IJlig', '\\u0131': 'imath', '\\uD835\\uDCBF': 'jscr', '\\uD835\\uDD5B': 'jopf', '\\uD835\\uDD27': 'jfr', '\\uD835\\uDCA5': 'Jscr', '\\uD835\\uDD0D': 'Jfr', '\\uD835\\uDD41': 'Jopf', '\\u0135': 'jcirc', '\\u0134': 'Jcirc', '\\u0237': 'jmath', '\\uD835\\uDD5C': 'kopf', '\\uD835\\uDCC0': 'kscr', '\\uD835\\uDD28': 'kfr', '\\uD835\\uDCA6': 'Kscr', '\\uD835\\uDD42': 'Kopf', '\\uD835\\uDD0E': 'Kfr', '\\u0137': 'kcedil', '\\u0136': 'Kcedil', '\\uD835\\uDD29': 'lfr', '\\uD835\\uDCC1': 'lscr', '\\u2113': 'ell', '\\uD835\\uDD5D': 'lopf', '\\u2112': 'Lscr', '\\uD835\\uDD0F': 'Lfr', '\\uD835\\uDD43': 'Lopf', '\\u013A': 'lacute', '\\u0139': 'Lacute', '\\u013E': 'lcaron', '\\u013D': 'Lcaron', '\\u013C': 'lcedil', '\\u013B': 'Lcedil', '\\u0142': 'lstrok', '\\u0141': 'Lstrok', '\\u0140': 'lmidot', '\\u013F': 'Lmidot', '\\uD835\\uDD2A': 'mfr', '\\uD835\\uDD5E': 'mopf', '\\uD835\\uDCC2': 'mscr', '\\uD835\\uDD10': 'Mfr', '\\uD835\\uDD44': 'Mopf', '\\u2133': 'Mscr', '\\uD835\\uDD2B': 'nfr', '\\uD835\\uDD5F': 'nopf', '\\uD835\\uDCC3': 'nscr', '\\u2115': 'Nopf', '\\uD835\\uDCA9': 'Nscr', '\\uD835\\uDD11': 'Nfr', '\\u0144': 'nacute', '\\u0143': 'Nacute', '\\u0148': 'ncaron', '\\u0147': 'Ncaron', '\\xF1': 'ntilde', '\\xD1': 'Ntilde', '\\u0146': 'ncedil', '\\u0145': 'Ncedil', '\\u2116': 'numero', '\\u014B': 'eng', '\\u014A': 'ENG', '\\uD835\\uDD60': 'oopf', '\\uD835\\uDD2C': 'ofr', '\\u2134': 'oscr', '\\uD835\\uDCAA': 'Oscr', '\\uD835\\uDD12': 'Ofr', '\\uD835\\uDD46': 'Oopf', '\\xBA': 'ordm', '\\xF3': 'oacute', '\\xD3': 'Oacute', '\\xF2': 'ograve', '\\xD2': 'Ograve', '\\xF4': 'ocirc', '\\xD4': 'Ocirc', '\\xF6': 'ouml', '\\xD6': 'Ouml', '\\u0151': 'odblac', '\\u0150': 'Odblac', '\\xF5': 'otilde', '\\xD5': 'Otilde', '\\xF8': 'oslash', '\\xD8': 'Oslash', '\\u014D': 'omacr', '\\u014C': 'Omacr', '\\u0153': 'oelig', '\\u0152': 'OElig', '\\uD835\\uDD2D': 'pfr', '\\uD835\\uDCC5': 'pscr', '\\uD835\\uDD61': 'popf', '\\u2119': 'Popf', '\\uD835\\uDD13': 'Pfr', '\\uD835\\uDCAB': 'Pscr', '\\uD835\\uDD62': 'qopf', '\\uD835\\uDD2E': 'qfr', '\\uD835\\uDCC6': 'qscr', '\\uD835\\uDCAC': 'Qscr', '\\uD835\\uDD14': 'Qfr', '\\u211A': 'Qopf', '\\u0138': 'kgreen', '\\uD835\\uDD2F': 'rfr', '\\uD835\\uDD63': 'ropf', '\\uD835\\uDCC7': 'rscr', '\\u211B': 'Rscr', '\\u211C': 'Re', '\\u211D': 'Ropf', '\\u0155': 'racute', '\\u0154': 'Racute', '\\u0159': 'rcaron', '\\u0158': 'Rcaron', '\\u0157': 'rcedil', '\\u0156': 'Rcedil', '\\uD835\\uDD64': 'sopf', '\\uD835\\uDCC8': 'sscr', '\\uD835\\uDD30': 'sfr', '\\uD835\\uDD4A': 'Sopf', '\\uD835\\uDD16': 'Sfr', '\\uD835\\uDCAE': 'Sscr', '\\u24C8': 'oS', '\\u015B': 'sacute', '\\u015A': 'Sacute', '\\u015D': 'scirc', '\\u015C': 'Scirc', '\\u0161': 'scaron', '\\u0160': 'Scaron', '\\u015F': 'scedil', '\\u015E': 'Scedil', '\\xDF': 'szlig', '\\uD835\\uDD31': 'tfr', '\\uD835\\uDCC9': 'tscr', '\\uD835\\uDD65': 'topf', '\\uD835\\uDCAF': 'Tscr', '\\uD835\\uDD17': 'Tfr', '\\uD835\\uDD4B': 'Topf', '\\u0165': 'tcaron', '\\u0164': 'Tcaron', '\\u0163': 'tcedil', '\\u0162': 'Tcedil', '\\u2122': 'trade', '\\u0167': 'tstrok', '\\u0166': 'Tstrok', '\\uD835\\uDCCA': 'uscr', '\\uD835\\uDD66': 'uopf', '\\uD835\\uDD32': 'ufr', '\\uD835\\uDD4C': 'Uopf', '\\uD835\\uDD18': 'Ufr', '\\uD835\\uDCB0': 'Uscr', '\\xFA': 'uacute', '\\xDA': 'Uacute', '\\xF9': 'ugrave', '\\xD9': 'Ugrave', '\\u016D': 'ubreve', '\\u016C': 'Ubreve', '\\xFB': 'ucirc', '\\xDB': 'Ucirc', '\\u016F': 'uring', '\\u016E': 'Uring', '\\xFC': 'uuml', '\\xDC': 'Uuml', '\\u0171': 'udblac', '\\u0170': 'Udblac', '\\u0169': 'utilde', '\\u0168': 'Utilde', '\\u0173': 'uogon', '\\u0172': 'Uogon', '\\u016B': 'umacr', '\\u016A': 'Umacr', '\\uD835\\uDD33': 'vfr', '\\uD835\\uDD67': 'vopf', '\\uD835\\uDCCB': 'vscr', '\\uD835\\uDD19': 'Vfr', '\\uD835\\uDD4D': 'Vopf', '\\uD835\\uDCB1': 'Vscr', '\\uD835\\uDD68': 'wopf', '\\uD835\\uDCCC': 'wscr', '\\uD835\\uDD34': 'wfr', '\\uD835\\uDCB2': 'Wscr', '\\uD835\\uDD4E': 'Wopf', '\\uD835\\uDD1A': 'Wfr', '\\u0175': 'wcirc', '\\u0174': 'Wcirc', '\\uD835\\uDD35': 'xfr', '\\uD835\\uDCCD': 'xscr', '\\uD835\\uDD69': 'xopf', '\\uD835\\uDD4F': 'Xopf', '\\uD835\\uDD1B': 'Xfr', '\\uD835\\uDCB3': 'Xscr', '\\uD835\\uDD36': 'yfr', '\\uD835\\uDCCE': 'yscr', '\\uD835\\uDD6A': 'yopf', '\\uD835\\uDCB4': 'Yscr', '\\uD835\\uDD1C': 'Yfr', '\\uD835\\uDD50': 'Yopf', '\\xFD': 'yacute', '\\xDD': 'Yacute', '\\u0177': 'ycirc', '\\u0176': 'Ycirc', '\\xFF': 'yuml', '\\u0178': 'Yuml', '\\uD835\\uDCCF': 'zscr', '\\uD835\\uDD37': 'zfr', '\\uD835\\uDD6B': 'zopf', '\\u2128': 'Zfr', '\\u2124': 'Zopf', '\\uD835\\uDCB5': 'Zscr', '\\u017A': 'zacute', '\\u0179': 'Zacute', '\\u017E': 'zcaron', '\\u017D': 'Zcaron', '\\u017C': 'zdot', '\\u017B': 'Zdot', '\\u01B5': 'imped', '\\xFE': 'thorn', '\\xDE': 'THORN', '\\u0149': 'napos', '\\u03B1': 'alpha', '\\u0391': 'Alpha', '\\u03B2': 'beta', '\\u0392': 'Beta', '\\u03B3': 'gamma', '\\u0393': 'Gamma', '\\u03B4': 'delta', '\\u0394': 'Delta', '\\u03B5': 'epsi', '\\u03F5': 'epsiv', '\\u0395': 'Epsilon', '\\u03DD': 'gammad', '\\u03DC': 'Gammad', '\\u03B6': 'zeta', '\\u0396': 'Zeta', '\\u03B7': 'eta', '\\u0397': 'Eta', '\\u03B8': 'theta', '\\u03D1': 'thetav', '\\u0398': 'Theta', '\\u03B9': 'iota', '\\u0399': 'Iota', '\\u03BA': 'kappa', '\\u03F0': 'kappav', '\\u039A': 'Kappa', '\\u03BB': 'lambda', '\\u039B': 'Lambda', '\\u03BC': 'mu', '\\xB5': 'micro', '\\u039C': 'Mu', '\\u03BD': 'nu', '\\u039D': 'Nu', '\\u03BE': 'xi', '\\u039E': 'Xi', '\\u03BF': 'omicron', '\\u039F': 'Omicron', '\\u03C0': 'pi', '\\u03D6': 'piv', '\\u03A0': 'Pi', '\\u03C1': 'rho', '\\u03F1': 'rhov', '\\u03A1': 'Rho', '\\u03C3': 'sigma', '\\u03A3': 'Sigma', '\\u03C2': 'sigmaf', '\\u03C4': 'tau', '\\u03A4': 'Tau', '\\u03C5': 'upsi', '\\u03A5': 'Upsilon', '\\u03D2': 'Upsi', '\\u03C6': 'phi', '\\u03D5': 'phiv', '\\u03A6': 'Phi', '\\u03C7': 'chi', '\\u03A7': 'Chi', '\\u03C8': 'psi', '\\u03A8': 'Psi', '\\u03C9': 'omega', '\\u03A9': 'ohm', '\\u0430': 'acy', '\\u0410': 'Acy', '\\u0431': 'bcy', '\\u0411': 'Bcy', '\\u0432': 'vcy', '\\u0412': 'Vcy', '\\u0433': 'gcy', '\\u0413': 'Gcy', '\\u0453': 'gjcy', '\\u0403': 'GJcy', '\\u0434': 'dcy', '\\u0414': 'Dcy', '\\u0452': 'djcy', '\\u0402': 'DJcy', '\\u0435': 'iecy', '\\u0415': 'IEcy', '\\u0451': 'iocy', '\\u0401': 'IOcy', '\\u0454': 'jukcy', '\\u0404': 'Jukcy', '\\u0436': 'zhcy', '\\u0416': 'ZHcy', '\\u0437': 'zcy', '\\u0417': 'Zcy', '\\u0455': 'dscy', '\\u0405': 'DScy', '\\u0438': 'icy', '\\u0418': 'Icy', '\\u0456': 'iukcy', '\\u0406': 'Iukcy', '\\u0457': 'yicy', '\\u0407': 'YIcy', '\\u0439': 'jcy', '\\u0419': 'Jcy', '\\u0458': 'jsercy', '\\u0408': 'Jsercy', '\\u043A': 'kcy', '\\u041A': 'Kcy', '\\u045C': 'kjcy', '\\u040C': 'KJcy', '\\u043B': 'lcy', '\\u041B': 'Lcy', '\\u0459': 'ljcy', '\\u0409': 'LJcy', '\\u043C': 'mcy', '\\u041C': 'Mcy', '\\u043D': 'ncy', '\\u041D': 'Ncy', '\\u045A': 'njcy', '\\u040A': 'NJcy', '\\u043E': 'ocy', '\\u041E': 'Ocy', '\\u043F': 'pcy', '\\u041F': 'Pcy', '\\u0440': 'rcy', '\\u0420': 'Rcy', '\\u0441': 'scy', '\\u0421': 'Scy', '\\u0442': 'tcy', '\\u0422': 'Tcy', '\\u045B': 'tshcy', '\\u040B': 'TSHcy', '\\u0443': 'ucy', '\\u0423': 'Ucy', '\\u045E': 'ubrcy', '\\u040E': 'Ubrcy', '\\u0444': 'fcy', '\\u0424': 'Fcy', '\\u0445': 'khcy', '\\u0425': 'KHcy', '\\u0446': 'tscy', '\\u0426': 'TScy', '\\u0447': 'chcy', '\\u0427': 'CHcy', '\\u045F': 'dzcy', '\\u040F': 'DZcy', '\\u0448': 'shcy', '\\u0428': 'SHcy', '\\u0449': 'shchcy', '\\u0429': 'SHCHcy', '\\u044A': 'hardcy', '\\u042A': 'HARDcy', '\\u044B': 'ycy', '\\u042B': 'Ycy', '\\u044C': 'softcy', '\\u042C': 'SOFTcy', '\\u044D': 'ecy', '\\u042D': 'Ecy', '\\u044E': 'yucy', '\\u042E': 'YUcy', '\\u044F': 'yacy', '\\u042F': 'YAcy', '\\u2135': 'aleph', '\\u2136': 'beth', '\\u2137': 'gimel', '\\u2138': 'daleth' };\n\n\tvar regexEscape = /[\"&'<>`]/g;\n\tvar escapeMap = {\n\t\t'\"': '"',\n\t\t'&': '&',\n\t\t'\\'': ''',\n\t\t'<': '<',\n\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n\t\t// following is not strictly necessary unless it’s part of a tag or an\n\t\t// unquoted attribute value. We’re only escaping it to support those\n\t\t// situations, and for XML support.\n\t\t'>': '>',\n\t\t// In Internet Explorer ≤ 8, the backtick character can be used\n\t\t// to break out of (un)quoted attribute values or HTML comments.\n\t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\n\t\t// http://html5sec.org/#133.\n\t\t'`': '`'\n\t};\n\n\tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\n\tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\n\tvar decodeMap = { 'aacute': '\\xE1', 'Aacute': '\\xC1', 'abreve': '\\u0103', 'Abreve': '\\u0102', 'ac': '\\u223E', 'acd': '\\u223F', 'acE': '\\u223E\\u0333', 'acirc': '\\xE2', 'Acirc': '\\xC2', 'acute': '\\xB4', 'acy': '\\u0430', 'Acy': '\\u0410', 'aelig': '\\xE6', 'AElig': '\\xC6', 'af': '\\u2061', 'afr': '\\uD835\\uDD1E', 'Afr': '\\uD835\\uDD04', 'agrave': '\\xE0', 'Agrave': '\\xC0', 'alefsym': '\\u2135', 'aleph': '\\u2135', 'alpha': '\\u03B1', 'Alpha': '\\u0391', 'amacr': '\\u0101', 'Amacr': '\\u0100', 'amalg': '\\u2A3F', 'amp': '&', 'AMP': '&', 'and': '\\u2227', 'And': '\\u2A53', 'andand': '\\u2A55', 'andd': '\\u2A5C', 'andslope': '\\u2A58', 'andv': '\\u2A5A', 'ang': '\\u2220', 'ange': '\\u29A4', 'angle': '\\u2220', 'angmsd': '\\u2221', 'angmsdaa': '\\u29A8', 'angmsdab': '\\u29A9', 'angmsdac': '\\u29AA', 'angmsdad': '\\u29AB', 'angmsdae': '\\u29AC', 'angmsdaf': '\\u29AD', 'angmsdag': '\\u29AE', 'angmsdah': '\\u29AF', 'angrt': '\\u221F', 'angrtvb': '\\u22BE', 'angrtvbd': '\\u299D', 'angsph': '\\u2222', 'angst': '\\xC5', 'angzarr': '\\u237C', 'aogon': '\\u0105', 'Aogon': '\\u0104', 'aopf': '\\uD835\\uDD52', 'Aopf': '\\uD835\\uDD38', 'ap': '\\u2248', 'apacir': '\\u2A6F', 'ape': '\\u224A', 'apE': '\\u2A70', 'apid': '\\u224B', 'apos': '\\'', 'ApplyFunction': '\\u2061', 'approx': '\\u2248', 'approxeq': '\\u224A', 'aring': '\\xE5', 'Aring': '\\xC5', 'ascr': '\\uD835\\uDCB6', 'Ascr': '\\uD835\\uDC9C', 'Assign': '\\u2254', 'ast': '*', 'asymp': '\\u2248', 'asympeq': '\\u224D', 'atilde': '\\xE3', 'Atilde': '\\xC3', 'auml': '\\xE4', 'Auml': '\\xC4', 'awconint': '\\u2233', 'awint': '\\u2A11', 'backcong': '\\u224C', 'backepsilon': '\\u03F6', 'backprime': '\\u2035', 'backsim': '\\u223D', 'backsimeq': '\\u22CD', 'Backslash': '\\u2216', 'Barv': '\\u2AE7', 'barvee': '\\u22BD', 'barwed': '\\u2305', 'Barwed': '\\u2306', 'barwedge': '\\u2305', 'bbrk': '\\u23B5', 'bbrktbrk': '\\u23B6', 'bcong': '\\u224C', 'bcy': '\\u0431', 'Bcy': '\\u0411', 'bdquo': '\\u201E', 'becaus': '\\u2235', 'because': '\\u2235', 'Because': '\\u2235', 'bemptyv': '\\u29B0', 'bepsi': '\\u03F6', 'bernou': '\\u212C', 'Bernoullis': '\\u212C', 'beta': '\\u03B2', 'Beta': '\\u0392', 'beth': '\\u2136', 'between': '\\u226C', 'bfr': '\\uD835\\uDD1F', 'Bfr': '\\uD835\\uDD05', 'bigcap': '\\u22C2', 'bigcirc': '\\u25EF', 'bigcup': '\\u22C3', 'bigodot': '\\u2A00', 'bigoplus': '\\u2A01', 'bigotimes': '\\u2A02', 'bigsqcup': '\\u2A06', 'bigstar': '\\u2605', 'bigtriangledown': '\\u25BD', 'bigtriangleup': '\\u25B3', 'biguplus': '\\u2A04', 'bigvee': '\\u22C1', 'bigwedge': '\\u22C0', 'bkarow': '\\u290D', 'blacklozenge': '\\u29EB', 'blacksquare': '\\u25AA', 'blacktriangle': '\\u25B4', 'blacktriangledown': '\\u25BE', 'blacktriangleleft': '\\u25C2', 'blacktriangleright': '\\u25B8', 'blank': '\\u2423', 'blk12': '\\u2592', 'blk14': '\\u2591', 'blk34': '\\u2593', 'block': '\\u2588', 'bne': '=\\u20E5', 'bnequiv': '\\u2261\\u20E5', 'bnot': '\\u2310', 'bNot': '\\u2AED', 'bopf': '\\uD835\\uDD53', 'Bopf': '\\uD835\\uDD39', 'bot': '\\u22A5', 'bottom': '\\u22A5', 'bowtie': '\\u22C8', 'boxbox': '\\u29C9', 'boxdl': '\\u2510', 'boxdL': '\\u2555', 'boxDl': '\\u2556', 'boxDL': '\\u2557', 'boxdr': '\\u250C', 'boxdR': '\\u2552', 'boxDr': '\\u2553', 'boxDR': '\\u2554', 'boxh': '\\u2500', 'boxH': '\\u2550', 'boxhd': '\\u252C', 'boxhD': '\\u2565', 'boxHd': '\\u2564', 'boxHD': '\\u2566', 'boxhu': '\\u2534', 'boxhU': '\\u2568', 'boxHu': '\\u2567', 'boxHU': '\\u2569', 'boxminus': '\\u229F', 'boxplus': '\\u229E', 'boxtimes': '\\u22A0', 'boxul': '\\u2518', 'boxuL': '\\u255B', 'boxUl': '\\u255C', 'boxUL': '\\u255D', 'boxur': '\\u2514', 'boxuR': '\\u2558', 'boxUr': '\\u2559', 'boxUR': '\\u255A', 'boxv': '\\u2502', 'boxV': '\\u2551', 'boxvh': '\\u253C', 'boxvH': '\\u256A', 'boxVh': '\\u256B', 'boxVH': '\\u256C', 'boxvl': '\\u2524', 'boxvL': '\\u2561', 'boxVl': '\\u2562', 'boxVL': '\\u2563', 'boxvr': '\\u251C', 'boxvR': '\\u255E', 'boxVr': '\\u255F', 'boxVR': '\\u2560', 'bprime': '\\u2035', 'breve': '\\u02D8', 'Breve': '\\u02D8', 'brvbar': '\\xA6', 'bscr': '\\uD835\\uDCB7', 'Bscr': '\\u212C', 'bsemi': '\\u204F', 'bsim': '\\u223D', 'bsime': '\\u22CD', 'bsol': '\\\\', 'bsolb': '\\u29C5', 'bsolhsub': '\\u27C8', 'bull': '\\u2022', 'bullet': '\\u2022', 'bump': '\\u224E', 'bumpe': '\\u224F', 'bumpE': '\\u2AAE', 'bumpeq': '\\u224F', 'Bumpeq': '\\u224E', 'cacute': '\\u0107', 'Cacute': '\\u0106', 'cap': '\\u2229', 'Cap': '\\u22D2', 'capand': '\\u2A44', 'capbrcup': '\\u2A49', 'capcap': '\\u2A4B', 'capcup': '\\u2A47', 'capdot': '\\u2A40', 'CapitalDifferentialD': '\\u2145', 'caps': '\\u2229\\uFE00', 'caret': '\\u2041', 'caron': '\\u02C7', 'Cayleys': '\\u212D', 'ccaps': '\\u2A4D', 'ccaron': '\\u010D', 'Ccaron': '\\u010C', 'ccedil': '\\xE7', 'Ccedil': '\\xC7', 'ccirc': '\\u0109', 'Ccirc': '\\u0108', 'Cconint': '\\u2230', 'ccups': '\\u2A4C', 'ccupssm': '\\u2A50', 'cdot': '\\u010B', 'Cdot': '\\u010A', 'cedil': '\\xB8', 'Cedilla': '\\xB8', 'cemptyv': '\\u29B2', 'cent': '\\xA2', 'centerdot': '\\xB7', 'CenterDot': '\\xB7', 'cfr': '\\uD835\\uDD20', 'Cfr': '\\u212D', 'chcy': '\\u0447', 'CHcy': '\\u0427', 'check': '\\u2713', 'checkmark': '\\u2713', 'chi': '\\u03C7', 'Chi': '\\u03A7', 'cir': '\\u25CB', 'circ': '\\u02C6', 'circeq': '\\u2257', 'circlearrowleft': '\\u21BA', 'circlearrowright': '\\u21BB', 'circledast': '\\u229B', 'circledcirc': '\\u229A', 'circleddash': '\\u229D', 'CircleDot': '\\u2299', 'circledR': '\\xAE', 'circledS': '\\u24C8', 'CircleMinus': '\\u2296', 'CirclePlus': '\\u2295', 'CircleTimes': '\\u2297', 'cire': '\\u2257', 'cirE': '\\u29C3', 'cirfnint': '\\u2A10', 'cirmid': '\\u2AEF', 'cirscir': '\\u29C2', 'ClockwiseContourIntegral': '\\u2232', 'CloseCurlyDoubleQuote': '\\u201D', 'CloseCurlyQuote': '\\u2019', 'clubs': '\\u2663', 'clubsuit': '\\u2663', 'colon': ':', 'Colon': '\\u2237', 'colone': '\\u2254', 'Colone': '\\u2A74', 'coloneq': '\\u2254', 'comma': ',', 'commat': '@', 'comp': '\\u2201', 'compfn': '\\u2218', 'complement': '\\u2201', 'complexes': '\\u2102', 'cong': '\\u2245', 'congdot': '\\u2A6D', 'Congruent': '\\u2261', 'conint': '\\u222E', 'Conint': '\\u222F', 'ContourIntegral': '\\u222E', 'copf': '\\uD835\\uDD54', 'Copf': '\\u2102', 'coprod': '\\u2210', 'Coproduct': '\\u2210', 'copy': '\\xA9', 'COPY': '\\xA9', 'copysr': '\\u2117', 'CounterClockwiseContourIntegral': '\\u2233', 'crarr': '\\u21B5', 'cross': '\\u2717', 'Cross': '\\u2A2F', 'cscr': '\\uD835\\uDCB8', 'Cscr': '\\uD835\\uDC9E', 'csub': '\\u2ACF', 'csube': '\\u2AD1', 'csup': '\\u2AD0', 'csupe': '\\u2AD2', 'ctdot': '\\u22EF', 'cudarrl': '\\u2938', 'cudarrr': '\\u2935', 'cuepr': '\\u22DE', 'cuesc': '\\u22DF', 'cularr': '\\u21B6', 'cularrp': '\\u293D', 'cup': '\\u222A', 'Cup': '\\u22D3', 'cupbrcap': '\\u2A48', 'cupcap': '\\u2A46', 'CupCap': '\\u224D', 'cupcup': '\\u2A4A', 'cupdot': '\\u228D', 'cupor': '\\u2A45', 'cups': '\\u222A\\uFE00', 'curarr': '\\u21B7', 'curarrm': '\\u293C', 'curlyeqprec': '\\u22DE', 'curlyeqsucc': '\\u22DF', 'curlyvee': '\\u22CE', 'curlywedge': '\\u22CF', 'curren': '\\xA4', 'curvearrowleft': '\\u21B6', 'curvearrowright': '\\u21B7', 'cuvee': '\\u22CE', 'cuwed': '\\u22CF', 'cwconint': '\\u2232', 'cwint': '\\u2231', 'cylcty': '\\u232D', 'dagger': '\\u2020', 'Dagger': '\\u2021', 'daleth': '\\u2138', 'darr': '\\u2193', 'dArr': '\\u21D3', 'Darr': '\\u21A1', 'dash': '\\u2010', 'dashv': '\\u22A3', 'Dashv': '\\u2AE4', 'dbkarow': '\\u290F', 'dblac': '\\u02DD', 'dcaron': '\\u010F', 'Dcaron': '\\u010E', 'dcy': '\\u0434', 'Dcy': '\\u0414', 'dd': '\\u2146', 'DD': '\\u2145', 'ddagger': '\\u2021', 'ddarr': '\\u21CA', 'DDotrahd': '\\u2911', 'ddotseq': '\\u2A77', 'deg': '\\xB0', 'Del': '\\u2207', 'delta': '\\u03B4', 'Delta': '\\u0394', 'demptyv': '\\u29B1', 'dfisht': '\\u297F', 'dfr': '\\uD835\\uDD21', 'Dfr': '\\uD835\\uDD07', 'dHar': '\\u2965', 'dharl': '\\u21C3', 'dharr': '\\u21C2', 'DiacriticalAcute': '\\xB4', 'DiacriticalDot': '\\u02D9', 'DiacriticalDoubleAcute': '\\u02DD', 'DiacriticalGrave': '`', 'DiacriticalTilde': '\\u02DC', 'diam': '\\u22C4', 'diamond': '\\u22C4', 'Diamond': '\\u22C4', 'diamondsuit': '\\u2666', 'diams': '\\u2666', 'die': '\\xA8', 'DifferentialD': '\\u2146', 'digamma': '\\u03DD', 'disin': '\\u22F2', 'div': '\\xF7', 'divide': '\\xF7', 'divideontimes': '\\u22C7', 'divonx': '\\u22C7', 'djcy': '\\u0452', 'DJcy': '\\u0402', 'dlcorn': '\\u231E', 'dlcrop': '\\u230D', 'dollar': '$', 'dopf': '\\uD835\\uDD55', 'Dopf': '\\uD835\\uDD3B', 'dot': '\\u02D9', 'Dot': '\\xA8', 'DotDot': '\\u20DC', 'doteq': '\\u2250', 'doteqdot': '\\u2251', 'DotEqual': '\\u2250', 'dotminus': '\\u2238', 'dotplus': '\\u2214', 'dotsquare': '\\u22A1', 'doublebarwedge': '\\u2306', 'DoubleContourIntegral': '\\u222F', 'DoubleDot': '\\xA8', 'DoubleDownArrow': '\\u21D3', 'DoubleLeftArrow': '\\u21D0', 'DoubleLeftRightArrow': '\\u21D4', 'DoubleLeftTee': '\\u2AE4', 'DoubleLongLeftArrow': '\\u27F8', 'DoubleLongLeftRightArrow': '\\u27FA', 'DoubleLongRightArrow': '\\u27F9', 'DoubleRightArrow': '\\u21D2', 'DoubleRightTee': '\\u22A8', 'DoubleUpArrow': '\\u21D1', 'DoubleUpDownArrow': '\\u21D5', 'DoubleVerticalBar': '\\u2225', 'downarrow': '\\u2193', 'Downarrow': '\\u21D3', 'DownArrow': '\\u2193', 'DownArrowBar': '\\u2913', 'DownArrowUpArrow': '\\u21F5', 'DownBreve': '\\u0311', 'downdownarrows': '\\u21CA', 'downharpoonleft': '\\u21C3', 'downharpoonright': '\\u21C2', 'DownLeftRightVector': '\\u2950', 'DownLeftTeeVector': '\\u295E', 'DownLeftVector': '\\u21BD', 'DownLeftVectorBar': '\\u2956', 'DownRightTeeVector': '\\u295F', 'DownRightVector': '\\u21C1', 'DownRightVectorBar': '\\u2957', 'DownTee': '\\u22A4', 'DownTeeArrow': '\\u21A7', 'drbkarow': '\\u2910', 'drcorn': '\\u231F', 'drcrop': '\\u230C', 'dscr': '\\uD835\\uDCB9', 'Dscr': '\\uD835\\uDC9F', 'dscy': '\\u0455', 'DScy': '\\u0405', 'dsol': '\\u29F6', 'dstrok': '\\u0111', 'Dstrok': '\\u0110', 'dtdot': '\\u22F1', 'dtri': '\\u25BF', 'dtrif': '\\u25BE', 'duarr': '\\u21F5', 'duhar': '\\u296F', 'dwangle': '\\u29A6', 'dzcy': '\\u045F', 'DZcy': '\\u040F', 'dzigrarr': '\\u27FF', 'eacute': '\\xE9', 'Eacute': '\\xC9', 'easter': '\\u2A6E', 'ecaron': '\\u011B', 'Ecaron': '\\u011A', 'ecir': '\\u2256', 'ecirc': '\\xEA', 'Ecirc': '\\xCA', 'ecolon': '\\u2255', 'ecy': '\\u044D', 'Ecy': '\\u042D', 'eDDot': '\\u2A77', 'edot': '\\u0117', 'eDot': '\\u2251', 'Edot': '\\u0116', 'ee': '\\u2147', 'efDot': '\\u2252', 'efr': '\\uD835\\uDD22', 'Efr': '\\uD835\\uDD08', 'eg': '\\u2A9A', 'egrave': '\\xE8', 'Egrave': '\\xC8', 'egs': '\\u2A96', 'egsdot': '\\u2A98', 'el': '\\u2A99', 'Element': '\\u2208', 'elinters': '\\u23E7', 'ell': '\\u2113', 'els': '\\u2A95', 'elsdot': '\\u2A97', 'emacr': '\\u0113', 'Emacr': '\\u0112', 'empty': '\\u2205', 'emptyset': '\\u2205', 'EmptySmallSquare': '\\u25FB', 'emptyv': '\\u2205', 'EmptyVerySmallSquare': '\\u25AB', 'emsp': '\\u2003', 'emsp13': '\\u2004', 'emsp14': '\\u2005', 'eng': '\\u014B', 'ENG': '\\u014A', 'ensp': '\\u2002', 'eogon': '\\u0119', 'Eogon': '\\u0118', 'eopf': '\\uD835\\uDD56', 'Eopf': '\\uD835\\uDD3C', 'epar': '\\u22D5', 'eparsl': '\\u29E3', 'eplus': '\\u2A71', 'epsi': '\\u03B5', 'epsilon': '\\u03B5', 'Epsilon': '\\u0395', 'epsiv': '\\u03F5', 'eqcirc': '\\u2256', 'eqcolon': '\\u2255', 'eqsim': '\\u2242', 'eqslantgtr': '\\u2A96', 'eqslantless': '\\u2A95', 'Equal': '\\u2A75', 'equals': '=', 'EqualTilde': '\\u2242', 'equest': '\\u225F', 'Equilibrium': '\\u21CC', 'equiv': '\\u2261', 'equivDD': '\\u2A78', 'eqvparsl': '\\u29E5', 'erarr': '\\u2971', 'erDot': '\\u2253', 'escr': '\\u212F', 'Escr': '\\u2130', 'esdot': '\\u2250', 'esim': '\\u2242', 'Esim': '\\u2A73', 'eta': '\\u03B7', 'Eta': '\\u0397', 'eth': '\\xF0', 'ETH': '\\xD0', 'euml': '\\xEB', 'Euml': '\\xCB', 'euro': '\\u20AC', 'excl': '!', 'exist': '\\u2203', 'Exists': '\\u2203', 'expectation': '\\u2130', 'exponentiale': '\\u2147', 'ExponentialE': '\\u2147', 'fallingdotseq': '\\u2252', 'fcy': '\\u0444', 'Fcy': '\\u0424', 'female': '\\u2640', 'ffilig': '\\uFB03', 'fflig': '\\uFB00', 'ffllig': '\\uFB04', 'ffr': '\\uD835\\uDD23', 'Ffr': '\\uD835\\uDD09', 'filig': '\\uFB01', 'FilledSmallSquare': '\\u25FC', 'FilledVerySmallSquare': '\\u25AA', 'fjlig': 'fj', 'flat': '\\u266D', 'fllig': '\\uFB02', 'fltns': '\\u25B1', 'fnof': '\\u0192', 'fopf': '\\uD835\\uDD57', 'Fopf': '\\uD835\\uDD3D', 'forall': '\\u2200', 'ForAll': '\\u2200', 'fork': '\\u22D4', 'forkv': '\\u2AD9', 'Fouriertrf': '\\u2131', 'fpartint': '\\u2A0D', 'frac12': '\\xBD', 'frac13': '\\u2153', 'frac14': '\\xBC', 'frac15': '\\u2155', 'frac16': '\\u2159', 'frac18': '\\u215B', 'frac23': '\\u2154', 'frac25': '\\u2156', 'frac34': '\\xBE', 'frac35': '\\u2157', 'frac38': '\\u215C', 'frac45': '\\u2158', 'frac56': '\\u215A', 'frac58': '\\u215D', 'frac78': '\\u215E', 'frasl': '\\u2044', 'frown': '\\u2322', 'fscr': '\\uD835\\uDCBB', 'Fscr': '\\u2131', 'gacute': '\\u01F5', 'gamma': '\\u03B3', 'Gamma': '\\u0393', 'gammad': '\\u03DD', 'Gammad': '\\u03DC', 'gap': '\\u2A86', 'gbreve': '\\u011F', 'Gbreve': '\\u011E', 'Gcedil': '\\u0122', 'gcirc': '\\u011D', 'Gcirc': '\\u011C', 'gcy': '\\u0433', 'Gcy': '\\u0413', 'gdot': '\\u0121', 'Gdot': '\\u0120', 'ge': '\\u2265', 'gE': '\\u2267', 'gel': '\\u22DB', 'gEl': '\\u2A8C', 'geq': '\\u2265', 'geqq': '\\u2267', 'geqslant': '\\u2A7E', 'ges': '\\u2A7E', 'gescc': '\\u2AA9', 'gesdot': '\\u2A80', 'gesdoto': '\\u2A82', 'gesdotol': '\\u2A84', 'gesl': '\\u22DB\\uFE00', 'gesles': '\\u2A94', 'gfr': '\\uD835\\uDD24', 'Gfr': '\\uD835\\uDD0A', 'gg': '\\u226B', 'Gg': '\\u22D9', 'ggg': '\\u22D9', 'gimel': '\\u2137', 'gjcy': '\\u0453', 'GJcy': '\\u0403', 'gl': '\\u2277', 'gla': '\\u2AA5', 'glE': '\\u2A92', 'glj': '\\u2AA4', 'gnap': '\\u2A8A', 'gnapprox': '\\u2A8A', 'gne': '\\u2A88', 'gnE': '\\u2269', 'gneq': '\\u2A88', 'gneqq': '\\u2269', 'gnsim': '\\u22E7', 'gopf': '\\uD835\\uDD58', 'Gopf': '\\uD835\\uDD3E', 'grave': '`', 'GreaterEqual': '\\u2265', 'GreaterEqualLess': '\\u22DB', 'GreaterFullEqual': '\\u2267', 'GreaterGreater': '\\u2AA2', 'GreaterLess': '\\u2277', 'GreaterSlantEqual': '\\u2A7E', 'GreaterTilde': '\\u2273', 'gscr': '\\u210A', 'Gscr': '\\uD835\\uDCA2', 'gsim': '\\u2273', 'gsime': '\\u2A8E', 'gsiml': '\\u2A90', 'gt': '>', 'Gt': '\\u226B', 'GT': '>', 'gtcc': '\\u2AA7', 'gtcir': '\\u2A7A', 'gtdot': '\\u22D7', 'gtlPar': '\\u2995', 'gtquest': '\\u2A7C', 'gtrapprox': '\\u2A86', 'gtrarr': '\\u2978', 'gtrdot': '\\u22D7', 'gtreqless': '\\u22DB', 'gtreqqless': '\\u2A8C', 'gtrless': '\\u2277', 'gtrsim': '\\u2273', 'gvertneqq': '\\u2269\\uFE00', 'gvnE': '\\u2269\\uFE00', 'Hacek': '\\u02C7', 'hairsp': '\\u200A', 'half': '\\xBD', 'hamilt': '\\u210B', 'hardcy': '\\u044A', 'HARDcy': '\\u042A', 'harr': '\\u2194', 'hArr': '\\u21D4', 'harrcir': '\\u2948', 'harrw': '\\u21AD', 'Hat': '^', 'hbar': '\\u210F', 'hcirc': '\\u0125', 'Hcirc': '\\u0124', 'hearts': '\\u2665', 'heartsuit': '\\u2665', 'hellip': '\\u2026', 'hercon': '\\u22B9', 'hfr': '\\uD835\\uDD25', 'Hfr': '\\u210C', 'HilbertSpace': '\\u210B', 'hksearow': '\\u2925', 'hkswarow': '\\u2926', 'hoarr': '\\u21FF', 'homtht': '\\u223B', 'hookleftarrow': '\\u21A9', 'hookrightarrow': '\\u21AA', 'hopf': '\\uD835\\uDD59', 'Hopf': '\\u210D', 'horbar': '\\u2015', 'HorizontalLine': '\\u2500', 'hscr': '\\uD835\\uDCBD', 'Hscr': '\\u210B', 'hslash': '\\u210F', 'hstrok': '\\u0127', 'Hstrok': '\\u0126', 'HumpDownHump': '\\u224E', 'HumpEqual': '\\u224F', 'hybull': '\\u2043', 'hyphen': '\\u2010', 'iacute': '\\xED', 'Iacute': '\\xCD', 'ic': '\\u2063', 'icirc': '\\xEE', 'Icirc': '\\xCE', 'icy': '\\u0438', 'Icy': '\\u0418', 'Idot': '\\u0130', 'iecy': '\\u0435', 'IEcy': '\\u0415', 'iexcl': '\\xA1', 'iff': '\\u21D4', 'ifr': '\\uD835\\uDD26', 'Ifr': '\\u2111', 'igrave': '\\xEC', 'Igrave': '\\xCC', 'ii': '\\u2148', 'iiiint': '\\u2A0C', 'iiint': '\\u222D', 'iinfin': '\\u29DC', 'iiota': '\\u2129', 'ijlig': '\\u0133', 'IJlig': '\\u0132', 'Im': '\\u2111', 'imacr': '\\u012B', 'Imacr': '\\u012A', 'image': '\\u2111', 'ImaginaryI': '\\u2148', 'imagline': '\\u2110', 'imagpart': '\\u2111', 'imath': '\\u0131', 'imof': '\\u22B7', 'imped': '\\u01B5', 'Implies': '\\u21D2', 'in': '\\u2208', 'incare': '\\u2105', 'infin': '\\u221E', 'infintie': '\\u29DD', 'inodot': '\\u0131', 'int': '\\u222B', 'Int': '\\u222C', 'intcal': '\\u22BA', 'integers': '\\u2124', 'Integral': '\\u222B', 'intercal': '\\u22BA', 'Intersection': '\\u22C2', 'intlarhk': '\\u2A17', 'intprod': '\\u2A3C', 'InvisibleComma': '\\u2063', 'InvisibleTimes': '\\u2062', 'iocy': '\\u0451', 'IOcy': '\\u0401', 'iogon': '\\u012F', 'Iogon': '\\u012E', 'iopf': '\\uD835\\uDD5A', 'Iopf': '\\uD835\\uDD40', 'iota': '\\u03B9', 'Iota': '\\u0399', 'iprod': '\\u2A3C', 'iquest': '\\xBF', 'iscr': '\\uD835\\uDCBE', 'Iscr': '\\u2110', 'isin': '\\u2208', 'isindot': '\\u22F5', 'isinE': '\\u22F9', 'isins': '\\u22F4', 'isinsv': '\\u22F3', 'isinv': '\\u2208', 'it': '\\u2062', 'itilde': '\\u0129', 'Itilde': '\\u0128', 'iukcy': '\\u0456', 'Iukcy': '\\u0406', 'iuml': '\\xEF', 'Iuml': '\\xCF', 'jcirc': '\\u0135', 'Jcirc': '\\u0134', 'jcy': '\\u0439', 'Jcy': '\\u0419', 'jfr': '\\uD835\\uDD27', 'Jfr': '\\uD835\\uDD0D', 'jmath': '\\u0237', 'jopf': '\\uD835\\uDD5B', 'Jopf': '\\uD835\\uDD41', 'jscr': '\\uD835\\uDCBF', 'Jscr': '\\uD835\\uDCA5', 'jsercy': '\\u0458', 'Jsercy': '\\u0408', 'jukcy': '\\u0454', 'Jukcy': '\\u0404', 'kappa': '\\u03BA', 'Kappa': '\\u039A', 'kappav': '\\u03F0', 'kcedil': '\\u0137', 'Kcedil': '\\u0136', 'kcy': '\\u043A', 'Kcy': '\\u041A', 'kfr': '\\uD835\\uDD28', 'Kfr': '\\uD835\\uDD0E', 'kgreen': '\\u0138', 'khcy': '\\u0445', 'KHcy': '\\u0425', 'kjcy': '\\u045C', 'KJcy': '\\u040C', 'kopf': '\\uD835\\uDD5C', 'Kopf': '\\uD835\\uDD42', 'kscr': '\\uD835\\uDCC0', 'Kscr': '\\uD835\\uDCA6', 'lAarr': '\\u21DA', 'lacute': '\\u013A', 'Lacute': '\\u0139', 'laemptyv': '\\u29B4', 'lagran': '\\u2112', 'lambda': '\\u03BB', 'Lambda': '\\u039B', 'lang': '\\u27E8', 'Lang': '\\u27EA', 'langd': '\\u2991', 'langle': '\\u27E8', 'lap': '\\u2A85', 'Laplacetrf': '\\u2112', 'laquo': '\\xAB', 'larr': '\\u2190', 'lArr': '\\u21D0', 'Larr': '\\u219E', 'larrb': '\\u21E4', 'larrbfs': '\\u291F', 'larrfs': '\\u291D', 'larrhk': '\\u21A9', 'larrlp': '\\u21AB', 'larrpl': '\\u2939', 'larrsim': '\\u2973', 'larrtl': '\\u21A2', 'lat': '\\u2AAB', 'latail': '\\u2919', 'lAtail': '\\u291B', 'late': '\\u2AAD', 'lates': '\\u2AAD\\uFE00', 'lbarr': '\\u290C', 'lBarr': '\\u290E', 'lbbrk': '\\u2772', 'lbrace': '{', 'lbrack': '[', 'lbrke': '\\u298B', 'lbrksld': '\\u298F', 'lbrkslu': '\\u298D', 'lcaron': '\\u013E', 'Lcaron': '\\u013D', 'lcedil': '\\u013C', 'Lcedil': '\\u013B', 'lceil': '\\u2308', 'lcub': '{', 'lcy': '\\u043B', 'Lcy': '\\u041B', 'ldca': '\\u2936', 'ldquo': '\\u201C', 'ldquor': '\\u201E', 'ldrdhar': '\\u2967', 'ldrushar': '\\u294B', 'ldsh': '\\u21B2', 'le': '\\u2264', 'lE': '\\u2266', 'LeftAngleBracket': '\\u27E8', 'leftarrow': '\\u2190', 'Leftarrow': '\\u21D0', 'LeftArrow': '\\u2190', 'LeftArrowBar': '\\u21E4', 'LeftArrowRightArrow': '\\u21C6', 'leftarrowtail': '\\u21A2', 'LeftCeiling': '\\u2308', 'LeftDoubleBracket': '\\u27E6', 'LeftDownTeeVector': '\\u2961', 'LeftDownVector': '\\u21C3', 'LeftDownVectorBar': '\\u2959', 'LeftFloor': '\\u230A', 'leftharpoondown': '\\u21BD', 'leftharpoonup': '\\u21BC', 'leftleftarrows': '\\u21C7', 'leftrightarrow': '\\u2194', 'Leftrightarrow': '\\u21D4', 'LeftRightArrow': '\\u2194', 'leftrightarrows': '\\u21C6', 'leftrightharpoons': '\\u21CB', 'leftrightsquigarrow': '\\u21AD', 'LeftRightVector': '\\u294E', 'LeftTee': '\\u22A3', 'LeftTeeArrow': '\\u21A4', 'LeftTeeVector': '\\u295A', 'leftthreetimes': '\\u22CB', 'LeftTriangle': '\\u22B2', 'LeftTriangleBar': '\\u29CF', 'LeftTriangleEqual': '\\u22B4', 'LeftUpDownVector': '\\u2951', 'LeftUpTeeVector': '\\u2960', 'LeftUpVector': '\\u21BF', 'LeftUpVectorBar': '\\u2958', 'LeftVector': '\\u21BC', 'LeftVectorBar': '\\u2952', 'leg': '\\u22DA', 'lEg': '\\u2A8B', 'leq': '\\u2264', 'leqq': '\\u2266', 'leqslant': '\\u2A7D', 'les': '\\u2A7D', 'lescc': '\\u2AA8', 'lesdot': '\\u2A7F', 'lesdoto': '\\u2A81', 'lesdotor': '\\u2A83', 'lesg': '\\u22DA\\uFE00', 'lesges': '\\u2A93', 'lessapprox': '\\u2A85', 'lessdot': '\\u22D6', 'lesseqgtr': '\\u22DA', 'lesseqqgtr': '\\u2A8B', 'LessEqualGreater': '\\u22DA', 'LessFullEqual': '\\u2266', 'LessGreater': '\\u2276', 'lessgtr': '\\u2276', 'LessLess': '\\u2AA1', 'lesssim': '\\u2272', 'LessSlantEqual': '\\u2A7D', 'LessTilde': '\\u2272', 'lfisht': '\\u297C', 'lfloor': '\\u230A', 'lfr': '\\uD835\\uDD29', 'Lfr': '\\uD835\\uDD0F', 'lg': '\\u2276', 'lgE': '\\u2A91', 'lHar': '\\u2962', 'lhard': '\\u21BD', 'lharu': '\\u21BC', 'lharul': '\\u296A', 'lhblk': '\\u2584', 'ljcy': '\\u0459', 'LJcy': '\\u0409', 'll': '\\u226A', 'Ll': '\\u22D8', 'llarr': '\\u21C7', 'llcorner': '\\u231E', 'Lleftarrow': '\\u21DA', 'llhard': '\\u296B', 'lltri': '\\u25FA', 'lmidot': '\\u0140', 'Lmidot': '\\u013F', 'lmoust': '\\u23B0', 'lmoustache': '\\u23B0', 'lnap': '\\u2A89', 'lnapprox': '\\u2A89', 'lne': '\\u2A87', 'lnE': '\\u2268', 'lneq': '\\u2A87', 'lneqq': '\\u2268', 'lnsim': '\\u22E6', 'loang': '\\u27EC', 'loarr': '\\u21FD', 'lobrk': '\\u27E6', 'longleftarrow': '\\u27F5', 'Longleftarrow': '\\u27F8', 'LongLeftArrow': '\\u27F5', 'longleftrightarrow': '\\u27F7', 'Longleftrightarrow': '\\u27FA', 'LongLeftRightArrow': '\\u27F7', 'longmapsto': '\\u27FC', 'longrightarrow': '\\u27F6', 'Longrightarrow': '\\u27F9', 'LongRightArrow': '\\u27F6', 'looparrowleft': '\\u21AB', 'looparrowright': '\\u21AC', 'lopar': '\\u2985', 'lopf': '\\uD835\\uDD5D', 'Lopf': '\\uD835\\uDD43', 'loplus': '\\u2A2D', 'lotimes': '\\u2A34', 'lowast': '\\u2217', 'lowbar': '_', 'LowerLeftArrow': '\\u2199', 'LowerRightArrow': '\\u2198', 'loz': '\\u25CA', 'lozenge': '\\u25CA', 'lozf': '\\u29EB', 'lpar': '(', 'lparlt': '\\u2993', 'lrarr': '\\u21C6', 'lrcorner': '\\u231F', 'lrhar': '\\u21CB', 'lrhard': '\\u296D', 'lrm': '\\u200E', 'lrtri': '\\u22BF', 'lsaquo': '\\u2039', 'lscr': '\\uD835\\uDCC1', 'Lscr': '\\u2112', 'lsh': '\\u21B0', 'Lsh': '\\u21B0', 'lsim': '\\u2272', 'lsime': '\\u2A8D', 'lsimg': '\\u2A8F', 'lsqb': '[', 'lsquo': '\\u2018', 'lsquor': '\\u201A', 'lstrok': '\\u0142', 'Lstrok': '\\u0141', 'lt': '<', 'Lt': '\\u226A', 'LT': '<', 'ltcc': '\\u2AA6', 'ltcir': '\\u2A79', 'ltdot': '\\u22D6', 'lthree': '\\u22CB', 'ltimes': '\\u22C9', 'ltlarr': '\\u2976', 'ltquest': '\\u2A7B', 'ltri': '\\u25C3', 'ltrie': '\\u22B4', 'ltrif': '\\u25C2', 'ltrPar': '\\u2996', 'lurdshar': '\\u294A', 'luruhar': '\\u2966', 'lvertneqq': '\\u2268\\uFE00', 'lvnE': '\\u2268\\uFE00', 'macr': '\\xAF', 'male': '\\u2642', 'malt': '\\u2720', 'maltese': '\\u2720', 'map': '\\u21A6', 'Map': '\\u2905', 'mapsto': '\\u21A6', 'mapstodown': '\\u21A7', 'mapstoleft': '\\u21A4', 'mapstoup': '\\u21A5', 'marker': '\\u25AE', 'mcomma': '\\u2A29', 'mcy': '\\u043C', 'Mcy': '\\u041C', 'mdash': '\\u2014', 'mDDot': '\\u223A', 'measuredangle': '\\u2221', 'MediumSpace': '\\u205F', 'Mellintrf': '\\u2133', 'mfr': '\\uD835\\uDD2A', 'Mfr': '\\uD835\\uDD10', 'mho': '\\u2127', 'micro': '\\xB5', 'mid': '\\u2223', 'midast': '*', 'midcir': '\\u2AF0', 'middot': '\\xB7', 'minus': '\\u2212', 'minusb': '\\u229F', 'minusd': '\\u2238', 'minusdu': '\\u2A2A', 'MinusPlus': '\\u2213', 'mlcp': '\\u2ADB', 'mldr': '\\u2026', 'mnplus': '\\u2213', 'models': '\\u22A7', 'mopf': '\\uD835\\uDD5E', 'Mopf': '\\uD835\\uDD44', 'mp': '\\u2213', 'mscr': '\\uD835\\uDCC2', 'Mscr': '\\u2133', 'mstpos': '\\u223E', 'mu': '\\u03BC', 'Mu': '\\u039C', 'multimap': '\\u22B8', 'mumap': '\\u22B8', 'nabla': '\\u2207', 'nacute': '\\u0144', 'Nacute': '\\u0143', 'nang': '\\u2220\\u20D2', 'nap': '\\u2249', 'napE': '\\u2A70\\u0338', 'napid': '\\u224B\\u0338', 'napos': '\\u0149', 'napprox': '\\u2249', 'natur': '\\u266E', 'natural': '\\u266E', 'naturals': '\\u2115', 'nbsp': '\\xA0', 'nbump': '\\u224E\\u0338', 'nbumpe': '\\u224F\\u0338', 'ncap': '\\u2A43', 'ncaron': '\\u0148', 'Ncaron': '\\u0147', 'ncedil': '\\u0146', 'Ncedil': '\\u0145', 'ncong': '\\u2247', 'ncongdot': '\\u2A6D\\u0338', 'ncup': '\\u2A42', 'ncy': '\\u043D', 'Ncy': '\\u041D', 'ndash': '\\u2013', 'ne': '\\u2260', 'nearhk': '\\u2924', 'nearr': '\\u2197', 'neArr': '\\u21D7', 'nearrow': '\\u2197', 'nedot': '\\u2250\\u0338', 'NegativeMediumSpace': '\\u200B', 'NegativeThickSpace': '\\u200B', 'NegativeThinSpace': '\\u200B', 'NegativeVeryThinSpace': '\\u200B', 'nequiv': '\\u2262', 'nesear': '\\u2928', 'nesim': '\\u2242\\u0338', 'NestedGreaterGreater': '\\u226B', 'NestedLessLess': '\\u226A', 'NewLine': '\\n', 'nexist': '\\u2204', 'nexists': '\\u2204', 'nfr': '\\uD835\\uDD2B', 'Nfr': '\\uD835\\uDD11', 'nge': '\\u2271', 'ngE': '\\u2267\\u0338', 'ngeq': '\\u2271', 'ngeqq': '\\u2267\\u0338', 'ngeqslant': '\\u2A7E\\u0338', 'nges': '\\u2A7E\\u0338', 'nGg': '\\u22D9\\u0338', 'ngsim': '\\u2275', 'ngt': '\\u226F', 'nGt': '\\u226B\\u20D2', 'ngtr': '\\u226F', 'nGtv': '\\u226B\\u0338', 'nharr': '\\u21AE', 'nhArr': '\\u21CE', 'nhpar': '\\u2AF2', 'ni': '\\u220B', 'nis': '\\u22FC', 'nisd': '\\u22FA', 'niv': '\\u220B', 'njcy': '\\u045A', 'NJcy': '\\u040A', 'nlarr': '\\u219A', 'nlArr': '\\u21CD', 'nldr': '\\u2025', 'nle': '\\u2270', 'nlE': '\\u2266\\u0338', 'nleftarrow': '\\u219A', 'nLeftarrow': '\\u21CD', 'nleftrightarrow': '\\u21AE', 'nLeftrightarrow': '\\u21CE', 'nleq': '\\u2270', 'nleqq': '\\u2266\\u0338', 'nleqslant': '\\u2A7D\\u0338', 'nles': '\\u2A7D\\u0338', 'nless': '\\u226E', 'nLl': '\\u22D8\\u0338', 'nlsim': '\\u2274', 'nlt': '\\u226E', 'nLt': '\\u226A\\u20D2', 'nltri': '\\u22EA', 'nltrie': '\\u22EC', 'nLtv': '\\u226A\\u0338', 'nmid': '\\u2224', 'NoBreak': '\\u2060', 'NonBreakingSpace': '\\xA0', 'nopf': '\\uD835\\uDD5F', 'Nopf': '\\u2115', 'not': '\\xAC', 'Not': '\\u2AEC', 'NotCongruent': '\\u2262', 'NotCupCap': '\\u226D', 'NotDoubleVerticalBar': '\\u2226', 'NotElement': '\\u2209', 'NotEqual': '\\u2260', 'NotEqualTilde': '\\u2242\\u0338', 'NotExists': '\\u2204', 'NotGreater': '\\u226F', 'NotGreaterEqual': '\\u2271', 'NotGreaterFullEqual': '\\u2267\\u0338', 'NotGreaterGreater': '\\u226B\\u0338', 'NotGreaterLess': '\\u2279', 'NotGreaterSlantEqual': '\\u2A7E\\u0338', 'NotGreaterTilde': '\\u2275', 'NotHumpDownHump': '\\u224E\\u0338', 'NotHumpEqual': '\\u224F\\u0338', 'notin': '\\u2209', 'notindot': '\\u22F5\\u0338', 'notinE': '\\u22F9\\u0338', 'notinva': '\\u2209', 'notinvb': '\\u22F7', 'notinvc': '\\u22F6', 'NotLeftTriangle': '\\u22EA', 'NotLeftTriangleBar': '\\u29CF\\u0338', 'NotLeftTriangleEqual': '\\u22EC', 'NotLess': '\\u226E', 'NotLessEqual': '\\u2270', 'NotLessGreater': '\\u2278', 'NotLessLess': '\\u226A\\u0338', 'NotLessSlantEqual': '\\u2A7D\\u0338', 'NotLessTilde': '\\u2274', 'NotNestedGreaterGreater': '\\u2AA2\\u0338', 'NotNestedLessLess': '\\u2AA1\\u0338', 'notni': '\\u220C', 'notniva': '\\u220C', 'notnivb': '\\u22FE', 'notnivc': '\\u22FD', 'NotPrecedes': '\\u2280', 'NotPrecedesEqual': '\\u2AAF\\u0338', 'NotPrecedesSlantEqual': '\\u22E0', 'NotReverseElement': '\\u220C', 'NotRightTriangle': '\\u22EB', 'NotRightTriangleBar': '\\u29D0\\u0338', 'NotRightTriangleEqual': '\\u22ED', 'NotSquareSubset': '\\u228F\\u0338', 'NotSquareSubsetEqual': '\\u22E2', 'NotSquareSuperset': '\\u2290\\u0338', 'NotSquareSupersetEqual': '\\u22E3', 'NotSubset': '\\u2282\\u20D2', 'NotSubsetEqual': '\\u2288', 'NotSucceeds': '\\u2281', 'NotSucceedsEqual': '\\u2AB0\\u0338', 'NotSucceedsSlantEqual': '\\u22E1', 'NotSucceedsTilde': '\\u227F\\u0338', 'NotSuperset': '\\u2283\\u20D2', 'NotSupersetEqual': '\\u2289', 'NotTilde': '\\u2241', 'NotTildeEqual': '\\u2244', 'NotTildeFullEqual': '\\u2247', 'NotTildeTilde': '\\u2249', 'NotVerticalBar': '\\u2224', 'npar': '\\u2226', 'nparallel': '\\u2226', 'nparsl': '\\u2AFD\\u20E5', 'npart': '\\u2202\\u0338', 'npolint': '\\u2A14', 'npr': '\\u2280', 'nprcue': '\\u22E0', 'npre': '\\u2AAF\\u0338', 'nprec': '\\u2280', 'npreceq': '\\u2AAF\\u0338', 'nrarr': '\\u219B', 'nrArr': '\\u21CF', 'nrarrc': '\\u2933\\u0338', 'nrarrw': '\\u219D\\u0338', 'nrightarrow': '\\u219B', 'nRightarrow': '\\u21CF', 'nrtri': '\\u22EB', 'nrtrie': '\\u22ED', 'nsc': '\\u2281', 'nsccue': '\\u22E1', 'nsce': '\\u2AB0\\u0338', 'nscr': '\\uD835\\uDCC3', 'Nscr': '\\uD835\\uDCA9', 'nshortmid': '\\u2224', 'nshortparallel': '\\u2226', 'nsim': '\\u2241', 'nsime': '\\u2244', 'nsimeq': '\\u2244', 'nsmid': '\\u2224', 'nspar': '\\u2226', 'nsqsube': '\\u22E2', 'nsqsupe': '\\u22E3', 'nsub': '\\u2284', 'nsube': '\\u2288', 'nsubE': '\\u2AC5\\u0338', 'nsubset': '\\u2282\\u20D2', 'nsubseteq': '\\u2288', 'nsubseteqq': '\\u2AC5\\u0338', 'nsucc': '\\u2281', 'nsucceq': '\\u2AB0\\u0338', 'nsup': '\\u2285', 'nsupe': '\\u2289', 'nsupE': '\\u2AC6\\u0338', 'nsupset': '\\u2283\\u20D2', 'nsupseteq': '\\u2289', 'nsupseteqq': '\\u2AC6\\u0338', 'ntgl': '\\u2279', 'ntilde': '\\xF1', 'Ntilde': '\\xD1', 'ntlg': '\\u2278', 'ntriangleleft': '\\u22EA', 'ntrianglelefteq': '\\u22EC', 'ntriangleright': '\\u22EB', 'ntrianglerighteq': '\\u22ED', 'nu': '\\u03BD', 'Nu': '\\u039D', 'num': '#', 'numero': '\\u2116', 'numsp': '\\u2007', 'nvap': '\\u224D\\u20D2', 'nvdash': '\\u22AC', 'nvDash': '\\u22AD', 'nVdash': '\\u22AE', 'nVDash': '\\u22AF', 'nvge': '\\u2265\\u20D2', 'nvgt': '>\\u20D2', 'nvHarr': '\\u2904', 'nvinfin': '\\u29DE', 'nvlArr': '\\u2902', 'nvle': '\\u2264\\u20D2', 'nvlt': '<\\u20D2', 'nvltrie': '\\u22B4\\u20D2', 'nvrArr': '\\u2903', 'nvrtrie': '\\u22B5\\u20D2', 'nvsim': '\\u223C\\u20D2', 'nwarhk': '\\u2923', 'nwarr': '\\u2196', 'nwArr': '\\u21D6', 'nwarrow': '\\u2196', 'nwnear': '\\u2927', 'oacute': '\\xF3', 'Oacute': '\\xD3', 'oast': '\\u229B', 'ocir': '\\u229A', 'ocirc': '\\xF4', 'Ocirc': '\\xD4', 'ocy': '\\u043E', 'Ocy': '\\u041E', 'odash': '\\u229D', 'odblac': '\\u0151', 'Odblac': '\\u0150', 'odiv': '\\u2A38', 'odot': '\\u2299', 'odsold': '\\u29BC', 'oelig': '\\u0153', 'OElig': '\\u0152', 'ofcir': '\\u29BF', 'ofr': '\\uD835\\uDD2C', 'Ofr': '\\uD835\\uDD12', 'ogon': '\\u02DB', 'ograve': '\\xF2', 'Ograve': '\\xD2', 'ogt': '\\u29C1', 'ohbar': '\\u29B5', 'ohm': '\\u03A9', 'oint': '\\u222E', 'olarr': '\\u21BA', 'olcir': '\\u29BE', 'olcross': '\\u29BB', 'oline': '\\u203E', 'olt': '\\u29C0', 'omacr': '\\u014D', 'Omacr': '\\u014C', 'omega': '\\u03C9', 'Omega': '\\u03A9', 'omicron': '\\u03BF', 'Omicron': '\\u039F', 'omid': '\\u29B6', 'ominus': '\\u2296', 'oopf': '\\uD835\\uDD60', 'Oopf': '\\uD835\\uDD46', 'opar': '\\u29B7', 'OpenCurlyDoubleQuote': '\\u201C', 'OpenCurlyQuote': '\\u2018', 'operp': '\\u29B9', 'oplus': '\\u2295', 'or': '\\u2228', 'Or': '\\u2A54', 'orarr': '\\u21BB', 'ord': '\\u2A5D', 'order': '\\u2134', 'orderof': '\\u2134', 'ordf': '\\xAA', 'ordm': '\\xBA', 'origof': '\\u22B6', 'oror': '\\u2A56', 'orslope': '\\u2A57', 'orv': '\\u2A5B', 'oS': '\\u24C8', 'oscr': '\\u2134', 'Oscr': '\\uD835\\uDCAA', 'oslash': '\\xF8', 'Oslash': '\\xD8', 'osol': '\\u2298', 'otilde': '\\xF5', 'Otilde': '\\xD5', 'otimes': '\\u2297', 'Otimes': '\\u2A37', 'otimesas': '\\u2A36', 'ouml': '\\xF6', 'Ouml': '\\xD6', 'ovbar': '\\u233D', 'OverBar': '\\u203E', 'OverBrace': '\\u23DE', 'OverBracket': '\\u23B4', 'OverParenthesis': '\\u23DC', 'par': '\\u2225', 'para': '\\xB6', 'parallel': '\\u2225', 'parsim': '\\u2AF3', 'parsl': '\\u2AFD', 'part': '\\u2202', 'PartialD': '\\u2202', 'pcy': '\\u043F', 'Pcy': '\\u041F', 'percnt': '%', 'period': '.', 'permil': '\\u2030', 'perp': '\\u22A5', 'pertenk': '\\u2031', 'pfr': '\\uD835\\uDD2D', 'Pfr': '\\uD835\\uDD13', 'phi': '\\u03C6', 'Phi': '\\u03A6', 'phiv': '\\u03D5', 'phmmat': '\\u2133', 'phone': '\\u260E', 'pi': '\\u03C0', 'Pi': '\\u03A0', 'pitchfork': '\\u22D4', 'piv': '\\u03D6', 'planck': '\\u210F', 'planckh': '\\u210E', 'plankv': '\\u210F', 'plus': '+', 'plusacir': '\\u2A23', 'plusb': '\\u229E', 'pluscir': '\\u2A22', 'plusdo': '\\u2214', 'plusdu': '\\u2A25', 'pluse': '\\u2A72', 'PlusMinus': '\\xB1', 'plusmn': '\\xB1', 'plussim': '\\u2A26', 'plustwo': '\\u2A27', 'pm': '\\xB1', 'Poincareplane': '\\u210C', 'pointint': '\\u2A15', 'popf': '\\uD835\\uDD61', 'Popf': '\\u2119', 'pound': '\\xA3', 'pr': '\\u227A', 'Pr': '\\u2ABB', 'prap': '\\u2AB7', 'prcue': '\\u227C', 'pre': '\\u2AAF', 'prE': '\\u2AB3', 'prec': '\\u227A', 'precapprox': '\\u2AB7', 'preccurlyeq': '\\u227C', 'Precedes': '\\u227A', 'PrecedesEqual': '\\u2AAF', 'PrecedesSlantEqual': '\\u227C', 'PrecedesTilde': '\\u227E', 'preceq': '\\u2AAF', 'precnapprox': '\\u2AB9', 'precneqq': '\\u2AB5', 'precnsim': '\\u22E8', 'precsim': '\\u227E', 'prime': '\\u2032', 'Prime': '\\u2033', 'primes': '\\u2119', 'prnap': '\\u2AB9', 'prnE': '\\u2AB5', 'prnsim': '\\u22E8', 'prod': '\\u220F', 'Product': '\\u220F', 'profalar': '\\u232E', 'profline': '\\u2312', 'profsurf': '\\u2313', 'prop': '\\u221D', 'Proportion': '\\u2237', 'Proportional': '\\u221D', 'propto': '\\u221D', 'prsim': '\\u227E', 'prurel': '\\u22B0', 'pscr': '\\uD835\\uDCC5', 'Pscr': '\\uD835\\uDCAB', 'psi': '\\u03C8', 'Psi': '\\u03A8', 'puncsp': '\\u2008', 'qfr': '\\uD835\\uDD2E', 'Qfr': '\\uD835\\uDD14', 'qint': '\\u2A0C', 'qopf': '\\uD835\\uDD62', 'Qopf': '\\u211A', 'qprime': '\\u2057', 'qscr': '\\uD835\\uDCC6', 'Qscr': '\\uD835\\uDCAC', 'quaternions': '\\u210D', 'quatint': '\\u2A16', 'quest': '?', 'questeq': '\\u225F', 'quot': '\"', 'QUOT': '\"', 'rAarr': '\\u21DB', 'race': '\\u223D\\u0331', 'racute': '\\u0155', 'Racute': '\\u0154', 'radic': '\\u221A', 'raemptyv': '\\u29B3', 'rang': '\\u27E9', 'Rang': '\\u27EB', 'rangd': '\\u2992', 'range': '\\u29A5', 'rangle': '\\u27E9', 'raquo': '\\xBB', 'rarr': '\\u2192', 'rArr': '\\u21D2', 'Rarr': '\\u21A0', 'rarrap': '\\u2975', 'rarrb': '\\u21E5', 'rarrbfs': '\\u2920', 'rarrc': '\\u2933', 'rarrfs': '\\u291E', 'rarrhk': '\\u21AA', 'rarrlp': '\\u21AC', 'rarrpl': '\\u2945', 'rarrsim': '\\u2974', 'rarrtl': '\\u21A3', 'Rarrtl': '\\u2916', 'rarrw': '\\u219D', 'ratail': '\\u291A', 'rAtail': '\\u291C', 'ratio': '\\u2236', 'rationals': '\\u211A', 'rbarr': '\\u290D', 'rBarr': '\\u290F', 'RBarr': '\\u2910', 'rbbrk': '\\u2773', 'rbrace': '}', 'rbrack': ']', 'rbrke': '\\u298C', 'rbrksld': '\\u298E', 'rbrkslu': '\\u2990', 'rcaron': '\\u0159', 'Rcaron': '\\u0158', 'rcedil': '\\u0157', 'Rcedil': '\\u0156', 'rceil': '\\u2309', 'rcub': '}', 'rcy': '\\u0440', 'Rcy': '\\u0420', 'rdca': '\\u2937', 'rdldhar': '\\u2969', 'rdquo': '\\u201D', 'rdquor': '\\u201D', 'rdsh': '\\u21B3', 'Re': '\\u211C', 'real': '\\u211C', 'realine': '\\u211B', 'realpart': '\\u211C', 'reals': '\\u211D', 'rect': '\\u25AD', 'reg': '\\xAE', 'REG': '\\xAE', 'ReverseElement': '\\u220B', 'ReverseEquilibrium': '\\u21CB', 'ReverseUpEquilibrium': '\\u296F', 'rfisht': '\\u297D', 'rfloor': '\\u230B', 'rfr': '\\uD835\\uDD2F', 'Rfr': '\\u211C', 'rHar': '\\u2964', 'rhard': '\\u21C1', 'rharu': '\\u21C0', 'rharul': '\\u296C', 'rho': '\\u03C1', 'Rho': '\\u03A1', 'rhov': '\\u03F1', 'RightAngleBracket': '\\u27E9', 'rightarrow': '\\u2192', 'Rightarrow': '\\u21D2', 'RightArrow': '\\u2192', 'RightArrowBar': '\\u21E5', 'RightArrowLeftArrow': '\\u21C4', 'rightarrowtail': '\\u21A3', 'RightCeiling': '\\u2309', 'RightDoubleBracket': '\\u27E7', 'RightDownTeeVector': '\\u295D', 'RightDownVector': '\\u21C2', 'RightDownVectorBar': '\\u2955', 'RightFloor': '\\u230B', 'rightharpoondown': '\\u21C1', 'rightharpoonup': '\\u21C0', 'rightleftarrows': '\\u21C4', 'rightleftharpoons': '\\u21CC', 'rightrightarrows': '\\u21C9', 'rightsquigarrow': '\\u219D', 'RightTee': '\\u22A2', 'RightTeeArrow': '\\u21A6', 'RightTeeVector': '\\u295B', 'rightthreetimes': '\\u22CC', 'RightTriangle': '\\u22B3', 'RightTriangleBar': '\\u29D0', 'RightTriangleEqual': '\\u22B5', 'RightUpDownVector': '\\u294F', 'RightUpTeeVector': '\\u295C', 'RightUpVector': '\\u21BE', 'RightUpVectorBar': '\\u2954', 'RightVector': '\\u21C0', 'RightVectorBar': '\\u2953', 'ring': '\\u02DA', 'risingdotseq': '\\u2253', 'rlarr': '\\u21C4', 'rlhar': '\\u21CC', 'rlm': '\\u200F', 'rmoust': '\\u23B1', 'rmoustache': '\\u23B1', 'rnmid': '\\u2AEE', 'roang': '\\u27ED', 'roarr': '\\u21FE', 'robrk': '\\u27E7', 'ropar': '\\u2986', 'ropf': '\\uD835\\uDD63', 'Ropf': '\\u211D', 'roplus': '\\u2A2E', 'rotimes': '\\u2A35', 'RoundImplies': '\\u2970', 'rpar': ')', 'rpargt': '\\u2994', 'rppolint': '\\u2A12', 'rrarr': '\\u21C9', 'Rrightarrow': '\\u21DB', 'rsaquo': '\\u203A', 'rscr': '\\uD835\\uDCC7', 'Rscr': '\\u211B', 'rsh': '\\u21B1', 'Rsh': '\\u21B1', 'rsqb': ']', 'rsquo': '\\u2019', 'rsquor': '\\u2019', 'rthree': '\\u22CC', 'rtimes': '\\u22CA', 'rtri': '\\u25B9', 'rtrie': '\\u22B5', 'rtrif': '\\u25B8', 'rtriltri': '\\u29CE', 'RuleDelayed': '\\u29F4', 'ruluhar': '\\u2968', 'rx': '\\u211E', 'sacute': '\\u015B', 'Sacute': '\\u015A', 'sbquo': '\\u201A', 'sc': '\\u227B', 'Sc': '\\u2ABC', 'scap': '\\u2AB8', 'scaron': '\\u0161', 'Scaron': '\\u0160', 'sccue': '\\u227D', 'sce': '\\u2AB0', 'scE': '\\u2AB4', 'scedil': '\\u015F', 'Scedil': '\\u015E', 'scirc': '\\u015D', 'Scirc': '\\u015C', 'scnap': '\\u2ABA', 'scnE': '\\u2AB6', 'scnsim': '\\u22E9', 'scpolint': '\\u2A13', 'scsim': '\\u227F', 'scy': '\\u0441', 'Scy': '\\u0421', 'sdot': '\\u22C5', 'sdotb': '\\u22A1', 'sdote': '\\u2A66', 'searhk': '\\u2925', 'searr': '\\u2198', 'seArr': '\\u21D8', 'searrow': '\\u2198', 'sect': '\\xA7', 'semi': ';', 'seswar': '\\u2929', 'setminus': '\\u2216', 'setmn': '\\u2216', 'sext': '\\u2736', 'sfr': '\\uD835\\uDD30', 'Sfr': '\\uD835\\uDD16', 'sfrown': '\\u2322', 'sharp': '\\u266F', 'shchcy': '\\u0449', 'SHCHcy': '\\u0429', 'shcy': '\\u0448', 'SHcy': '\\u0428', 'ShortDownArrow': '\\u2193', 'ShortLeftArrow': '\\u2190', 'shortmid': '\\u2223', 'shortparallel': '\\u2225', 'ShortRightArrow': '\\u2192', 'ShortUpArrow': '\\u2191', 'shy': '\\xAD', 'sigma': '\\u03C3', 'Sigma': '\\u03A3', 'sigmaf': '\\u03C2', 'sigmav': '\\u03C2', 'sim': '\\u223C', 'simdot': '\\u2A6A', 'sime': '\\u2243', 'simeq': '\\u2243', 'simg': '\\u2A9E', 'simgE': '\\u2AA0', 'siml': '\\u2A9D', 'simlE': '\\u2A9F', 'simne': '\\u2246', 'simplus': '\\u2A24', 'simrarr': '\\u2972', 'slarr': '\\u2190', 'SmallCircle': '\\u2218', 'smallsetminus': '\\u2216', 'smashp': '\\u2A33', 'smeparsl': '\\u29E4', 'smid': '\\u2223', 'smile': '\\u2323', 'smt': '\\u2AAA', 'smte': '\\u2AAC', 'smtes': '\\u2AAC\\uFE00', 'softcy': '\\u044C', 'SOFTcy': '\\u042C', 'sol': '/', 'solb': '\\u29C4', 'solbar': '\\u233F', 'sopf': '\\uD835\\uDD64', 'Sopf': '\\uD835\\uDD4A', 'spades': '\\u2660', 'spadesuit': '\\u2660', 'spar': '\\u2225', 'sqcap': '\\u2293', 'sqcaps': '\\u2293\\uFE00', 'sqcup': '\\u2294', 'sqcups': '\\u2294\\uFE00', 'Sqrt': '\\u221A', 'sqsub': '\\u228F', 'sqsube': '\\u2291', 'sqsubset': '\\u228F', 'sqsubseteq': '\\u2291', 'sqsup': '\\u2290', 'sqsupe': '\\u2292', 'sqsupset': '\\u2290', 'sqsupseteq': '\\u2292', 'squ': '\\u25A1', 'square': '\\u25A1', 'Square': '\\u25A1', 'SquareIntersection': '\\u2293', 'SquareSubset': '\\u228F', 'SquareSubsetEqual': '\\u2291', 'SquareSuperset': '\\u2290', 'SquareSupersetEqual': '\\u2292', 'SquareUnion': '\\u2294', 'squarf': '\\u25AA', 'squf': '\\u25AA', 'srarr': '\\u2192', 'sscr': '\\uD835\\uDCC8', 'Sscr': '\\uD835\\uDCAE', 'ssetmn': '\\u2216', 'ssmile': '\\u2323', 'sstarf': '\\u22C6', 'star': '\\u2606', 'Star': '\\u22C6', 'starf': '\\u2605', 'straightepsilon': '\\u03F5', 'straightphi': '\\u03D5', 'strns': '\\xAF', 'sub': '\\u2282', 'Sub': '\\u22D0', 'subdot': '\\u2ABD', 'sube': '\\u2286', 'subE': '\\u2AC5', 'subedot': '\\u2AC3', 'submult': '\\u2AC1', 'subne': '\\u228A', 'subnE': '\\u2ACB', 'subplus': '\\u2ABF', 'subrarr': '\\u2979', 'subset': '\\u2282', 'Subset': '\\u22D0', 'subseteq': '\\u2286', 'subseteqq': '\\u2AC5', 'SubsetEqual': '\\u2286', 'subsetneq': '\\u228A', 'subsetneqq': '\\u2ACB', 'subsim': '\\u2AC7', 'subsub': '\\u2AD5', 'subsup': '\\u2AD3', 'succ': '\\u227B', 'succapprox': '\\u2AB8', 'succcurlyeq': '\\u227D', 'Succeeds': '\\u227B', 'SucceedsEqual': '\\u2AB0', 'SucceedsSlantEqual': '\\u227D', 'SucceedsTilde': '\\u227F', 'succeq': '\\u2AB0', 'succnapprox': '\\u2ABA', 'succneqq': '\\u2AB6', 'succnsim': '\\u22E9', 'succsim': '\\u227F', 'SuchThat': '\\u220B', 'sum': '\\u2211', 'Sum': '\\u2211', 'sung': '\\u266A', 'sup': '\\u2283', 'Sup': '\\u22D1', 'sup1': '\\xB9', 'sup2': '\\xB2', 'sup3': '\\xB3', 'supdot': '\\u2ABE', 'supdsub': '\\u2AD8', 'supe': '\\u2287', 'supE': '\\u2AC6', 'supedot': '\\u2AC4', 'Superset': '\\u2283', 'SupersetEqual': '\\u2287', 'suphsol': '\\u27C9', 'suphsub': '\\u2AD7', 'suplarr': '\\u297B', 'supmult': '\\u2AC2', 'supne': '\\u228B', 'supnE': '\\u2ACC', 'supplus': '\\u2AC0', 'supset': '\\u2283', 'Supset': '\\u22D1', 'supseteq': '\\u2287', 'supseteqq': '\\u2AC6', 'supsetneq': '\\u228B', 'supsetneqq': '\\u2ACC', 'supsim': '\\u2AC8', 'supsub': '\\u2AD4', 'supsup': '\\u2AD6', 'swarhk': '\\u2926', 'swarr': '\\u2199', 'swArr': '\\u21D9', 'swarrow': '\\u2199', 'swnwar': '\\u292A', 'szlig': '\\xDF', 'Tab': '\\t', 'target': '\\u2316', 'tau': '\\u03C4', 'Tau': '\\u03A4', 'tbrk': '\\u23B4', 'tcaron': '\\u0165', 'Tcaron': '\\u0164', 'tcedil': '\\u0163', 'Tcedil': '\\u0162', 'tcy': '\\u0442', 'Tcy': '\\u0422', 'tdot': '\\u20DB', 'telrec': '\\u2315', 'tfr': '\\uD835\\uDD31', 'Tfr': '\\uD835\\uDD17', 'there4': '\\u2234', 'therefore': '\\u2234', 'Therefore': '\\u2234', 'theta': '\\u03B8', 'Theta': '\\u0398', 'thetasym': '\\u03D1', 'thetav': '\\u03D1', 'thickapprox': '\\u2248', 'thicksim': '\\u223C', 'ThickSpace': '\\u205F\\u200A', 'thinsp': '\\u2009', 'ThinSpace': '\\u2009', 'thkap': '\\u2248', 'thksim': '\\u223C', 'thorn': '\\xFE', 'THORN': '\\xDE', 'tilde': '\\u02DC', 'Tilde': '\\u223C', 'TildeEqual': '\\u2243', 'TildeFullEqual': '\\u2245', 'TildeTilde': '\\u2248', 'times': '\\xD7', 'timesb': '\\u22A0', 'timesbar': '\\u2A31', 'timesd': '\\u2A30', 'tint': '\\u222D', 'toea': '\\u2928', 'top': '\\u22A4', 'topbot': '\\u2336', 'topcir': '\\u2AF1', 'topf': '\\uD835\\uDD65', 'Topf': '\\uD835\\uDD4B', 'topfork': '\\u2ADA', 'tosa': '\\u2929', 'tprime': '\\u2034', 'trade': '\\u2122', 'TRADE': '\\u2122', 'triangle': '\\u25B5', 'triangledown': '\\u25BF', 'triangleleft': '\\u25C3', 'trianglelefteq': '\\u22B4', 'triangleq': '\\u225C', 'triangleright': '\\u25B9', 'trianglerighteq': '\\u22B5', 'tridot': '\\u25EC', 'trie': '\\u225C', 'triminus': '\\u2A3A', 'TripleDot': '\\u20DB', 'triplus': '\\u2A39', 'trisb': '\\u29CD', 'tritime': '\\u2A3B', 'trpezium': '\\u23E2', 'tscr': '\\uD835\\uDCC9', 'Tscr': '\\uD835\\uDCAF', 'tscy': '\\u0446', 'TScy': '\\u0426', 'tshcy': '\\u045B', 'TSHcy': '\\u040B', 'tstrok': '\\u0167', 'Tstrok': '\\u0166', 'twixt': '\\u226C', 'twoheadleftarrow': '\\u219E', 'twoheadrightarrow': '\\u21A0', 'uacute': '\\xFA', 'Uacute': '\\xDA', 'uarr': '\\u2191', 'uArr': '\\u21D1', 'Uarr': '\\u219F', 'Uarrocir': '\\u2949', 'ubrcy': '\\u045E', 'Ubrcy': '\\u040E', 'ubreve': '\\u016D', 'Ubreve': '\\u016C', 'ucirc': '\\xFB', 'Ucirc': '\\xDB', 'ucy': '\\u0443', 'Ucy': '\\u0423', 'udarr': '\\u21C5', 'udblac': '\\u0171', 'Udblac': '\\u0170', 'udhar': '\\u296E', 'ufisht': '\\u297E', 'ufr': '\\uD835\\uDD32', 'Ufr': '\\uD835\\uDD18', 'ugrave': '\\xF9', 'Ugrave': '\\xD9', 'uHar': '\\u2963', 'uharl': '\\u21BF', 'uharr': '\\u21BE', 'uhblk': '\\u2580', 'ulcorn': '\\u231C', 'ulcorner': '\\u231C', 'ulcrop': '\\u230F', 'ultri': '\\u25F8', 'umacr': '\\u016B', 'Umacr': '\\u016A', 'uml': '\\xA8', 'UnderBar': '_', 'UnderBrace': '\\u23DF', 'UnderBracket': '\\u23B5', 'UnderParenthesis': '\\u23DD', 'Union': '\\u22C3', 'UnionPlus': '\\u228E', 'uogon': '\\u0173', 'Uogon': '\\u0172', 'uopf': '\\uD835\\uDD66', 'Uopf': '\\uD835\\uDD4C', 'uparrow': '\\u2191', 'Uparrow': '\\u21D1', 'UpArrow': '\\u2191', 'UpArrowBar': '\\u2912', 'UpArrowDownArrow': '\\u21C5', 'updownarrow': '\\u2195', 'Updownarrow': '\\u21D5', 'UpDownArrow': '\\u2195', 'UpEquilibrium': '\\u296E', 'upharpoonleft': '\\u21BF', 'upharpoonright': '\\u21BE', 'uplus': '\\u228E', 'UpperLeftArrow': '\\u2196', 'UpperRightArrow': '\\u2197', 'upsi': '\\u03C5', 'Upsi': '\\u03D2', 'upsih': '\\u03D2', 'upsilon': '\\u03C5', 'Upsilon': '\\u03A5', 'UpTee': '\\u22A5', 'UpTeeArrow': '\\u21A5', 'upuparrows': '\\u21C8', 'urcorn': '\\u231D', 'urcorner': '\\u231D', 'urcrop': '\\u230E', 'uring': '\\u016F', 'Uring': '\\u016E', 'urtri': '\\u25F9', 'uscr': '\\uD835\\uDCCA', 'Uscr': '\\uD835\\uDCB0', 'utdot': '\\u22F0', 'utilde': '\\u0169', 'Utilde': '\\u0168', 'utri': '\\u25B5', 'utrif': '\\u25B4', 'uuarr': '\\u21C8', 'uuml': '\\xFC', 'Uuml': '\\xDC', 'uwangle': '\\u29A7', 'vangrt': '\\u299C', 'varepsilon': '\\u03F5', 'varkappa': '\\u03F0', 'varnothing': '\\u2205', 'varphi': '\\u03D5', 'varpi': '\\u03D6', 'varpropto': '\\u221D', 'varr': '\\u2195', 'vArr': '\\u21D5', 'varrho': '\\u03F1', 'varsigma': '\\u03C2', 'varsubsetneq': '\\u228A\\uFE00', 'varsubsetneqq': '\\u2ACB\\uFE00', 'varsupsetneq': '\\u228B\\uFE00', 'varsupsetneqq': '\\u2ACC\\uFE00', 'vartheta': '\\u03D1', 'vartriangleleft': '\\u22B2', 'vartriangleright': '\\u22B3', 'vBar': '\\u2AE8', 'Vbar': '\\u2AEB', 'vBarv': '\\u2AE9', 'vcy': '\\u0432', 'Vcy': '\\u0412', 'vdash': '\\u22A2', 'vDash': '\\u22A8', 'Vdash': '\\u22A9', 'VDash': '\\u22AB', 'Vdashl': '\\u2AE6', 'vee': '\\u2228', 'Vee': '\\u22C1', 'veebar': '\\u22BB', 'veeeq': '\\u225A', 'vellip': '\\u22EE', 'verbar': '|', 'Verbar': '\\u2016', 'vert': '|', 'Vert': '\\u2016', 'VerticalBar': '\\u2223', 'VerticalLine': '|', 'VerticalSeparator': '\\u2758', 'VerticalTilde': '\\u2240', 'VeryThinSpace': '\\u200A', 'vfr': '\\uD835\\uDD33', 'Vfr': '\\uD835\\uDD19', 'vltri': '\\u22B2', 'vnsub': '\\u2282\\u20D2', 'vnsup': '\\u2283\\u20D2', 'vopf': '\\uD835\\uDD67', 'Vopf': '\\uD835\\uDD4D', 'vprop': '\\u221D', 'vrtri': '\\u22B3', 'vscr': '\\uD835\\uDCCB', 'Vscr': '\\uD835\\uDCB1', 'vsubne': '\\u228A\\uFE00', 'vsubnE': '\\u2ACB\\uFE00', 'vsupne': '\\u228B\\uFE00', 'vsupnE': '\\u2ACC\\uFE00', 'Vvdash': '\\u22AA', 'vzigzag': '\\u299A', 'wcirc': '\\u0175', 'Wcirc': '\\u0174', 'wedbar': '\\u2A5F', 'wedge': '\\u2227', 'Wedge': '\\u22C0', 'wedgeq': '\\u2259', 'weierp': '\\u2118', 'wfr': '\\uD835\\uDD34', 'Wfr': '\\uD835\\uDD1A', 'wopf': '\\uD835\\uDD68', 'Wopf': '\\uD835\\uDD4E', 'wp': '\\u2118', 'wr': '\\u2240', 'wreath': '\\u2240', 'wscr': '\\uD835\\uDCCC', 'Wscr': '\\uD835\\uDCB2', 'xcap': '\\u22C2', 'xcirc': '\\u25EF', 'xcup': '\\u22C3', 'xdtri': '\\u25BD', 'xfr': '\\uD835\\uDD35', 'Xfr': '\\uD835\\uDD1B', 'xharr': '\\u27F7', 'xhArr': '\\u27FA', 'xi': '\\u03BE', 'Xi': '\\u039E', 'xlarr': '\\u27F5', 'xlArr': '\\u27F8', 'xmap': '\\u27FC', 'xnis': '\\u22FB', 'xodot': '\\u2A00', 'xopf': '\\uD835\\uDD69', 'Xopf': '\\uD835\\uDD4F', 'xoplus': '\\u2A01', 'xotime': '\\u2A02', 'xrarr': '\\u27F6', 'xrArr': '\\u27F9', 'xscr': '\\uD835\\uDCCD', 'Xscr': '\\uD835\\uDCB3', 'xsqcup': '\\u2A06', 'xuplus': '\\u2A04', 'xutri': '\\u25B3', 'xvee': '\\u22C1', 'xwedge': '\\u22C0', 'yacute': '\\xFD', 'Yacute': '\\xDD', 'yacy': '\\u044F', 'YAcy': '\\u042F', 'ycirc': '\\u0177', 'Ycirc': '\\u0176', 'ycy': '\\u044B', 'Ycy': '\\u042B', 'yen': '\\xA5', 'yfr': '\\uD835\\uDD36', 'Yfr': '\\uD835\\uDD1C', 'yicy': '\\u0457', 'YIcy': '\\u0407', 'yopf': '\\uD835\\uDD6A', 'Yopf': '\\uD835\\uDD50', 'yscr': '\\uD835\\uDCCE', 'Yscr': '\\uD835\\uDCB4', 'yucy': '\\u044E', 'YUcy': '\\u042E', 'yuml': '\\xFF', 'Yuml': '\\u0178', 'zacute': '\\u017A', 'Zacute': '\\u0179', 'zcaron': '\\u017E', 'Zcaron': '\\u017D', 'zcy': '\\u0437', 'Zcy': '\\u0417', 'zdot': '\\u017C', 'Zdot': '\\u017B', 'zeetrf': '\\u2128', 'ZeroWidthSpace': '\\u200B', 'zeta': '\\u03B6', 'Zeta': '\\u0396', 'zfr': '\\uD835\\uDD37', 'Zfr': '\\u2128', 'zhcy': '\\u0436', 'ZHcy': '\\u0416', 'zigrarr': '\\u21DD', 'zopf': '\\uD835\\uDD6B', 'Zopf': '\\u2124', 'zscr': '\\uD835\\uDCCF', 'Zscr': '\\uD835\\uDCB5', 'zwj': '\\u200D', 'zwnj': '\\u200C' };\n\tvar decodeMapLegacy = { 'aacute': '\\xE1', 'Aacute': '\\xC1', 'acirc': '\\xE2', 'Acirc': '\\xC2', 'acute': '\\xB4', 'aelig': '\\xE6', 'AElig': '\\xC6', 'agrave': '\\xE0', 'Agrave': '\\xC0', 'amp': '&', 'AMP': '&', 'aring': '\\xE5', 'Aring': '\\xC5', 'atilde': '\\xE3', 'Atilde': '\\xC3', 'auml': '\\xE4', 'Auml': '\\xC4', 'brvbar': '\\xA6', 'ccedil': '\\xE7', 'Ccedil': '\\xC7', 'cedil': '\\xB8', 'cent': '\\xA2', 'copy': '\\xA9', 'COPY': '\\xA9', 'curren': '\\xA4', 'deg': '\\xB0', 'divide': '\\xF7', 'eacute': '\\xE9', 'Eacute': '\\xC9', 'ecirc': '\\xEA', 'Ecirc': '\\xCA', 'egrave': '\\xE8', 'Egrave': '\\xC8', 'eth': '\\xF0', 'ETH': '\\xD0', 'euml': '\\xEB', 'Euml': '\\xCB', 'frac12': '\\xBD', 'frac14': '\\xBC', 'frac34': '\\xBE', 'gt': '>', 'GT': '>', 'iacute': '\\xED', 'Iacute': '\\xCD', 'icirc': '\\xEE', 'Icirc': '\\xCE', 'iexcl': '\\xA1', 'igrave': '\\xEC', 'Igrave': '\\xCC', 'iquest': '\\xBF', 'iuml': '\\xEF', 'Iuml': '\\xCF', 'laquo': '\\xAB', 'lt': '<', 'LT': '<', 'macr': '\\xAF', 'micro': '\\xB5', 'middot': '\\xB7', 'nbsp': '\\xA0', 'not': '\\xAC', 'ntilde': '\\xF1', 'Ntilde': '\\xD1', 'oacute': '\\xF3', 'Oacute': '\\xD3', 'ocirc': '\\xF4', 'Ocirc': '\\xD4', 'ograve': '\\xF2', 'Ograve': '\\xD2', 'ordf': '\\xAA', 'ordm': '\\xBA', 'oslash': '\\xF8', 'Oslash': '\\xD8', 'otilde': '\\xF5', 'Otilde': '\\xD5', 'ouml': '\\xF6', 'Ouml': '\\xD6', 'para': '\\xB6', 'plusmn': '\\xB1', 'pound': '\\xA3', 'quot': '\"', 'QUOT': '\"', 'raquo': '\\xBB', 'reg': '\\xAE', 'REG': '\\xAE', 'sect': '\\xA7', 'shy': '\\xAD', 'sup1': '\\xB9', 'sup2': '\\xB2', 'sup3': '\\xB3', 'szlig': '\\xDF', 'thorn': '\\xFE', 'THORN': '\\xDE', 'times': '\\xD7', 'uacute': '\\xFA', 'Uacute': '\\xDA', 'ucirc': '\\xFB', 'Ucirc': '\\xDB', 'ugrave': '\\xF9', 'Ugrave': '\\xD9', 'uml': '\\xA8', 'uuml': '\\xFC', 'Uuml': '\\xDC', 'yacute': '\\xFD', 'Yacute': '\\xDD', 'yen': '\\xA5', 'yuml': '\\xFF' };\n\tvar decodeMapNumeric = { '0': '\\uFFFD', '128': '\\u20AC', '130': '\\u201A', '131': '\\u0192', '132': '\\u201E', '133': '\\u2026', '134': '\\u2020', '135': '\\u2021', '136': '\\u02C6', '137': '\\u2030', '138': '\\u0160', '139': '\\u2039', '140': '\\u0152', '142': '\\u017D', '145': '\\u2018', '146': '\\u2019', '147': '\\u201C', '148': '\\u201D', '149': '\\u2022', '150': '\\u2013', '151': '\\u2014', '152': '\\u02DC', '153': '\\u2122', '154': '\\u0161', '155': '\\u203A', '156': '\\u0153', '158': '\\u017E', '159': '\\u0178' };\n\tvar invalidReferenceCodePoints = [1, 2, 3, 4, 5, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 64976, 64977, 64978, 64979, 64980, 64981, 64982, 64983, 64984, 64985, 64986, 64987, 64988, 64989, 64990, 64991, 64992, 64993, 64994, 64995, 64996, 64997, 64998, 64999, 65000, 65001, 65002, 65003, 65004, 65005, 65006, 65007, 65534, 65535, 131070, 131071, 196606, 196607, 262142, 262143, 327678, 327679, 393214, 393215, 458750, 458751, 524286, 524287, 589822, 589823, 655358, 655359, 720894, 720895, 786430, 786431, 851966, 851967, 917502, 917503, 983038, 983039, 1048574, 1048575, 1114110, 1114111];\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\tvar object = {};\n\tvar hasOwnProperty = object.hasOwnProperty;\n\tvar has = function has(object, propertyName) {\n\t\treturn hasOwnProperty.call(object, propertyName);\n\t};\n\n\tvar contains = function contains(array, value) {\n\t\tvar index = -1;\n\t\tvar length = array.length;\n\t\twhile (++index < length) {\n\t\t\tif (array[index] == value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tvar merge = function merge(options, defaults) {\n\t\tif (!options) {\n\t\t\treturn defaults;\n\t\t}\n\t\tvar result = {};\n\t\tvar key;\n\t\tfor (key in defaults) {\n\t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\n\t\t\t// option names are used anyway. Any others are ignored.\n\t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\n\t\t}\n\t\treturn result;\n\t};\n\n\t// Modified version of `ucs2encode`; see https://mths.be/punycode.\n\tvar codePointToSymbol = function codePointToSymbol(codePoint, strict) {\n\t\tvar output = '';\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF || codePoint > 0x10FFFF) {\n\t\t\t// See issue #4:\n\t\t\t// “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is\n\t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\n\t\t\t// REPLACEMENT CHARACTER.”\n\t\t\tif (strict) {\n\t\t\t\tparseError('character reference outside the permissible Unicode range');\n\t\t\t}\n\t\t\treturn '\\uFFFD';\n\t\t}\n\t\tif (has(decodeMapNumeric, codePoint)) {\n\t\t\tif (strict) {\n\t\t\t\tparseError('disallowed character reference');\n\t\t\t}\n\t\t\treturn decodeMapNumeric[codePoint];\n\t\t}\n\t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\n\t\t\tparseError('disallowed character reference');\n\t\t}\n\t\tif (codePoint > 0xFFFF) {\n\t\t\tcodePoint -= 0x10000;\n\t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(codePoint);\n\t\treturn output;\n\t};\n\n\tvar hexEscape = function hexEscape(codePoint) {\n\t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\n\t};\n\n\tvar decEscape = function decEscape(codePoint) {\n\t\treturn '&#' + codePoint + ';';\n\t};\n\n\tvar parseError = function parseError(message) {\n\t\tthrow Error('Parse error: ' + message);\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar encode = function encode(string, options) {\n\t\toptions = merge(options, encode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidRawCodePoint.test(string)) {\n\t\t\tparseError('forbidden code point');\n\t\t}\n\t\tvar encodeEverything = options.encodeEverything;\n\t\tvar useNamedReferences = options.useNamedReferences;\n\t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\n\t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\n\n\t\tvar escapeBmpSymbol = function escapeBmpSymbol(symbol) {\n\t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\n\t\t};\n\n\t\tif (encodeEverything) {\n\t\t\t// Encode ASCII symbols.\n\t\t\tstring = string.replace(regexAsciiWhitelist, function (symbol) {\n\t\t\t\t// Use named references if requested & possible.\n\t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\n\t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\n\t\t\t\t}\n\t\t\t\treturn escapeBmpSymbol(symbol);\n\t\t\t});\n\t\t\t// Shorten a few escapes that represent two symbols, of which at least one\n\t\t\t// is within the ASCII range.\n\t\t\tif (useNamedReferences) {\n\t\t\t\tstring = string.replace(/>\\u20D2/g, '>⃒').replace(/<\\u20D2/g, '<⃒').replace(/fj/g, 'fj');\n\t\t\t}\n\t\t\t// Encode non-ASCII symbols.\n\t\t\tif (useNamedReferences) {\n\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\t\tstring = string.replace(regexEncodeNonAscii, function (string) {\n\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\n\t\t} else if (useNamedReferences) {\n\t\t\t// Apply named character references.\n\t\t\t// Encode `<>\"'&` using named character references.\n\t\t\tif (!allowUnsafeSymbols) {\n\t\t\t\tstring = string.replace(regexEscape, function (string) {\n\t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Shorten escapes that represent two symbols, of which at least one is\n\t\t\t// `<>\"'&`.\n\t\t\tstring = string.replace(/>\\u20D2/g, '>⃒').replace(/<\\u20D2/g, '<⃒');\n\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\tstring = string.replace(regexEncodeNonAscii, function (string) {\n\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t});\n\t\t} else if (!allowUnsafeSymbols) {\n\t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they’re not handled\n\t\t\t// using named character references.\n\t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\n\t\t}\n\t\treturn string\n\t\t// Encode astral symbols.\n\t\t.replace(regexAstralSymbols, function ($0) {\n\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\tvar high = $0.charCodeAt(0);\n\t\t\tvar low = $0.charCodeAt(1);\n\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\n\t\t\treturn escapeCodePoint(codePoint);\n\t\t})\n\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\n\t\t// using a hexadecimal escape.\n\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tencode.options = {\n\t\t'allowUnsafeSymbols': false,\n\t\t'encodeEverything': false,\n\t\t'strict': false,\n\t\t'useNamedReferences': false,\n\t\t'decimal': false\n\t};\n\n\tvar decode = function decode(html, options) {\n\t\toptions = merge(options, decode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidEntity.test(html)) {\n\t\t\tparseError('malformed character reference');\n\t\t}\n\t\treturn html.replace(regexDecode, function ($0, $1, $2, $3, $4, $5, $6, $7, $8) {\n\t\t\tvar codePoint;\n\t\t\tvar semicolon;\n\t\t\tvar decDigits;\n\t\t\tvar hexDigits;\n\t\t\tvar reference;\n\t\t\tvar next;\n\n\t\t\tif ($1) {\n\t\t\t\treference = $1;\n\t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\n\t\t\t\treturn decodeMap[reference];\n\t\t\t}\n\n\t\t\tif ($2) {\n\t\t\t\t// Decode named character references without trailing `;`, e.g. `&`.\n\t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\n\t\t\t\t// followed by `=` in an attribute context.\n\t\t\t\treference = $2;\n\t\t\t\tnext = $3;\n\t\t\t\tif (next && options.isAttributeValue) {\n\t\t\t\t\tif (strict && next == '=') {\n\t\t\t\t\t\tparseError('`&` did not start a character reference');\n\t\t\t\t\t}\n\t\t\t\t\treturn $0;\n\t\t\t\t} else {\n\t\t\t\t\tif (strict) {\n\t\t\t\t\t\tparseError('named character reference was not terminated by a semicolon');\n\t\t\t\t\t}\n\t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\n\t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($4) {\n\t\t\t\t// Decode decimal escapes, e.g. `𝌆`.\n\t\t\t\tdecDigits = $4;\n\t\t\t\tsemicolon = $5;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(decDigits, 10);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\tif ($6) {\n\t\t\t\t// Decode hexadecimal escapes, e.g. `𝌆`.\n\t\t\t\thexDigits = $6;\n\t\t\t\tsemicolon = $7;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(hexDigits, 16);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\t// If we’re still here, `if ($7)` is implied; it’s an ambiguous\n\t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\n\t\t\tif (strict) {\n\t\t\t\tparseError('named character reference was not terminated by a semicolon');\n\t\t\t}\n\t\t\treturn $0;\n\t\t});\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tdecode.options = {\n\t\t'isAttributeValue': false,\n\t\t'strict': false\n\t};\n\n\tvar escape = function escape(string) {\n\t\treturn string.replace(regexEscape, function ($0) {\n\t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\n\t\t\treturn escapeMap[$0];\n\t\t});\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar he = {\n\t\t'version': '1.2.0',\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'escape': escape,\n\t\t'unescape': decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif ( true && _typeof(__webpack_require__(/*! !webpack amd options */ \"./node_modules/webpack/buildin/amd-options.js\")) == 'object' && __webpack_require__(/*! !webpack amd options */ \"./node_modules/webpack/buildin/amd-options.js\")) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn he;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = he;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in he) {\n\t\t\t\thas(he, key) && (freeExports[key] = he[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.he = he;\n\t}\n})(undefined);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module), __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack://Contentstack/./node_modules/he/he.js?"); + +/***/ }), + /***/ "./node_modules/localStorage/lib/localStorage.js": /*!*******************************************************!*\ !*** ./node_modules/localStorage/lib/localStorage.js ***! @@ -111,6 +135,102 @@ eval("/* WEBPACK VAR INJECTION */(function(global) {\n\n// http://www.rajdeepd.c /***/ }), +/***/ "./node_modules/node-html-parser/dist/esm/back.js": +/*!********************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/back.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = arr_back;\nfunction arr_back(arr) {\n return arr[arr.length - 1];\n}\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/back.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/index.js": +/*!*********************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/index.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _comment = __webpack_require__(/*! ./nodes/comment */ \"./node_modules/node-html-parser/dist/esm/nodes/comment.js\");\n\nObject.defineProperty(exports, 'CommentNode', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_comment).default;\n }\n});\n\nvar _html = __webpack_require__(/*! ./nodes/html */ \"./node_modules/node-html-parser/dist/esm/nodes/html.js\");\n\nObject.defineProperty(exports, 'HTMLElement', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_html).default;\n }\n});\nObject.defineProperty(exports, 'parse', {\n enumerable: true,\n get: function get() {\n return _html.parse;\n }\n});\nObject.defineProperty(exports, 'default', {\n enumerable: true,\n get: function get() {\n return _html.parse;\n }\n});\n\nvar _node = __webpack_require__(/*! ./nodes/node */ \"./node_modules/node-html-parser/dist/esm/nodes/node.js\");\n\nObject.defineProperty(exports, 'Node', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_node).default;\n }\n});\n\nvar _text = __webpack_require__(/*! ./nodes/text */ \"./node_modules/node-html-parser/dist/esm/nodes/text.js\");\n\nObject.defineProperty(exports, 'TextNode', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_text).default;\n }\n});\n\nvar _type = __webpack_require__(/*! ./nodes/type */ \"./node_modules/node-html-parser/dist/esm/nodes/type.js\");\n\nObject.defineProperty(exports, 'NodeType', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_type).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/index.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/matcher.js": +/*!***********************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/matcher.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Cache to store generated match functions\n * @type {Object}\n */\nvar pMatchFunctionCache = {};\nfunction compare_tagname(tag1, tag2) {\n if (!tag1) {\n return !tag2;\n }\n if (!tag2) {\n return !tag1;\n }\n return tag1.toLowerCase() === tag2.toLowerCase();\n}\n/**\n * Function cache\n */\nvar functionCache = {\n f145: function f145(el, tagName, classes) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n if (el.id !== tagName.substr(1)) {\n return false;\n }\n for (var cls = classes, i = 0; i < cls.length; i++) {\n if (el.classNames.indexOf(cls[i]) === -1) {\n return false;\n }\n }\n return true;\n },\n f45: function f45(el, tagName, classes) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n for (var cls = classes, i = 0; i < cls.length; i++) {\n if (el.classNames.indexOf(cls[i]) === -1) {\n return false;\n }\n }\n return true;\n },\n f15: function f15(el, tagName) {\n 'use strict';\n\n tagName = tagName || '';\n if (el.id !== tagName.substr(1)) {\n return false;\n }\n return true;\n },\n f1: function f1(el, tagName) {\n 'use strict';\n\n tagName = tagName || '';\n if (el.id !== tagName.substr(1)) {\n return false;\n }\n },\n f5: function f5() {\n 'use strict';\n\n return true;\n },\n f55: function f55(el, tagName, classes, attr_key) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n attr_key = attr_key || '';\n var attrs = el.attributes;\n return attrs.hasOwnProperty(attr_key);\n },\n f245: function f245(el, tagName, classes, attr_key, value) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n attr_key = (attr_key || '').toLowerCase();\n value = value || '';\n var attrs = el.attributes;\n return Object.keys(attrs).some(function (key) {\n var val = attrs[key];\n return key.toLowerCase() === attr_key && val === value;\n });\n // for (let cls = classes, i = 0; i < cls.length; i++) {if (el.classNames.indexOf(cls[i]) === -1){ return false;}}\n // return true;\n },\n f25: function f25(el, tagName, classes, attr_key, value) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n attr_key = (attr_key || '').toLowerCase();\n value = value || '';\n var attrs = el.attributes;\n return Object.keys(attrs).some(function (key) {\n var val = attrs[key];\n return key.toLowerCase() === attr_key && val === value;\n });\n // return true;\n },\n f2: function f2(el, tagName, classes, attr_key, value) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n attr_key = (attr_key || '').toLowerCase();\n value = value || '';\n var attrs = el.attributes;\n return Object.keys(attrs).some(function (key) {\n var val = attrs[key];\n return key.toLowerCase() === attr_key && val === value;\n });\n },\n f345: function f345(el, tagName, classes) {\n 'use strict';\n\n tagName = tagName || '';\n classes = classes || [];\n if (!compare_tagname(el.tagName, tagName)) {\n return false;\n }\n for (var cls = classes, i = 0; i < cls.length; i++) {\n if (el.classNames.indexOf(cls[i]) === -1) {\n return false;\n }\n }\n return true;\n },\n f35: function f35(el, tagName) {\n 'use strict';\n\n tagName = tagName || '';\n return compare_tagname(el.tagName, tagName);\n },\n f3: function f3(el, tagName) {\n 'use strict';\n\n tagName = tagName || '';\n // if (el.tagName !== tagName) {\n // \treturn false;\n // }\n return compare_tagname(el.tagName, tagName);\n }\n};\n/**\n * Matcher class to make CSS match\n *\n * @class Matcher\n */\n\nvar Matcher = function () {\n /**\n * Creates an instance of Matcher.\n * @param {string} selector\n *\n * @memberof Matcher\n */\n function Matcher(selector) {\n _classCallCheck(this, Matcher);\n\n this.nextMatch = 0;\n this.matchers = selector.split(' ').map(function (matcher) {\n if (pMatchFunctionCache[matcher]) {\n return pMatchFunctionCache[matcher];\n }\n var parts = matcher.split('.');\n var tagName = parts[0];\n var classes = parts.slice(1).sort();\n // let source = '\"use strict\";';\n var function_name = 'f';\n var attr_key = '';\n var value = '';\n if (tagName && tagName !== '*') {\n if (tagName.startsWith('#')) {\n // source += 'if (el.id != ' + JSON.stringify(tagName.substr(1)) + ') return false;';// 1\n function_name += '1';\n } else {\n // https://github.com/taoqf/node-html-parser/issues/86\n // const reg = /\\[\\s*([\\w-]+)(\\s*=\\s*(((?'|\")\\s*(.*)(\\k))|(\\S*)))?\\s*\\]/.exec(tagName);\n // `[a-b]`,`[ a-b ]`,`[a-b=c]`, `[a-b=c'd]`,`[a-b='c\\' d\"e ']`,`[ a-b = 'c\\' d\"e ' ]`,`[a-b=\"c' d\\\"e \" ]`,`[ a-b = \"c' d\\\"e \" ]`\n var reg = /\\[\\s*([\\w-]+)(\\s*=\\s*(('\\s*(.*)'|\"\\s*(.*)\")|(\\S*)))?\\s*\\]/.exec(tagName);\n if (reg) {\n attr_key = reg[1];\n value = reg[5] || reg[6] || reg[7];\n // source += `let attrs = el.attributes;for (let key in attrs){const val = attrs[key]; if (key == \"${attr_key}\" && val == \"${value}\"){return true;}} return false;`;// 2\n function_name += '2';\n } else {\n // source += 'if (el.tagName != ' + JSON.stringify(tagName) + ') return false;';// 3\n function_name += '3';\n }\n }\n }\n if (classes.length > 0) {\n // source += 'for (let cls = ' + JSON.stringify(classes) + ', i = 0; i < cls.length; i++) if (el.classNames.indexOf(cls[i]) === -1) return false;';// 4\n function_name += '4';\n }\n // source += 'return true;';// 5\n function_name += '5';\n var obj = {\n func: functionCache[function_name],\n tagName: tagName || '',\n classes: classes || '',\n attr_key: attr_key || '',\n value: value || ''\n };\n // source = source || '';\n return pMatchFunctionCache[matcher] = obj;\n });\n }\n /**\n * Trying to advance match pointer\n * @param {HTMLElement} el element to make the match\n * @return {bool} true when pointer advanced.\n */\n\n\n _createClass(Matcher, [{\n key: 'advance',\n value: function advance(el) {\n if (this.nextMatch < this.matchers.length && this.matchers[this.nextMatch].func(el, this.matchers[this.nextMatch].tagName, this.matchers[this.nextMatch].classes, this.matchers[this.nextMatch].attr_key, this.matchers[this.nextMatch].value)) {\n this.nextMatch++;\n return true;\n }\n return false;\n }\n /**\n * Rewind the match pointer\n */\n\n }, {\n key: 'rewind',\n value: function rewind() {\n this.nextMatch--;\n }\n /**\n * Trying to determine if match made.\n * @return {bool} true when the match is made\n */\n\n }, {\n key: 'reset',\n\n /**\n * Rest match pointer.\n * @return {[type]} [description]\n */\n value: function reset() {\n this.nextMatch = 0;\n }\n /**\n * flush cache to free memory\n */\n\n }, {\n key: 'flushCache',\n value: function flushCache() {\n pMatchFunctionCache = {};\n }\n }, {\n key: 'matched',\n get: function get() {\n return this.nextMatch === this.matchers.length;\n }\n }]);\n\n return Matcher;\n}();\n\nexports.default = Matcher;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/matcher.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/nodes/comment.js": +/*!*****************************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/nodes/comment.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _node = __webpack_require__(/*! ./node */ \"./node_modules/node-html-parser/dist/esm/nodes/node.js\");\n\nvar _node2 = _interopRequireDefault(_node);\n\nvar _type = __webpack_require__(/*! ./type */ \"./node_modules/node-html-parser/dist/esm/nodes/type.js\");\n\nvar _type2 = _interopRequireDefault(_type);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CommentNode = function (_Node) {\n _inherits(CommentNode, _Node);\n\n function CommentNode(rawText) {\n _classCallCheck(this, CommentNode);\n\n var _this = _possibleConstructorReturn(this, (CommentNode.__proto__ || Object.getPrototypeOf(CommentNode)).call(this));\n\n _this.rawText = rawText;\n /**\n * Node Type declaration.\n * @type {Number}\n */\n _this.nodeType = _type2.default.COMMENT_NODE;\n return _this;\n }\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n\n\n _createClass(CommentNode, [{\n key: 'toString',\n value: function toString() {\n return '';\n }\n }, {\n key: 'text',\n get: function get() {\n return this.rawText;\n }\n }]);\n\n return CommentNode;\n}(_node2.default);\n\nexports.default = CommentNode;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/comment.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/nodes/html.js": +/*!**************************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/nodes/html.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.parse = parse;\n\nvar _he = __webpack_require__(/*! he */ \"./node_modules/he/he.js\");\n\nvar _node = __webpack_require__(/*! ./node */ \"./node_modules/node-html-parser/dist/esm/nodes/node.js\");\n\nvar _node2 = _interopRequireDefault(_node);\n\nvar _type = __webpack_require__(/*! ./type */ \"./node_modules/node-html-parser/dist/esm/nodes/type.js\");\n\nvar _type2 = _interopRequireDefault(_type);\n\nvar _text3 = __webpack_require__(/*! ./text */ \"./node_modules/node-html-parser/dist/esm/nodes/text.js\");\n\nvar _text4 = _interopRequireDefault(_text3);\n\nvar _matcher = __webpack_require__(/*! ../matcher */ \"./node_modules/node-html-parser/dist/esm/matcher.js\");\n\nvar _matcher2 = _interopRequireDefault(_matcher);\n\nvar _back = __webpack_require__(/*! ../back */ \"./node_modules/node-html-parser/dist/esm/back.js\");\n\nvar _back2 = _interopRequireDefault(_back);\n\nvar _comment = __webpack_require__(/*! ./comment */ \"./node_modules/node-html-parser/dist/esm/nodes/comment.js\");\n\nvar _comment2 = _interopRequireDefault(_comment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar kBlockElements = new Map();\nkBlockElements.set('DIV', true);\nkBlockElements.set('div', true);\nkBlockElements.set('P', true);\nkBlockElements.set('p', true);\n// ul: true,\n// ol: true,\nkBlockElements.set('LI', true);\nkBlockElements.set('li', true);\n// table: true,\n// tr: true,\nkBlockElements.set('TD', true);\nkBlockElements.set('td', true);\nkBlockElements.set('SECTION', true);\nkBlockElements.set('section', true);\nkBlockElements.set('BR', true);\nkBlockElements.set('br', true);\n/**\n * HTMLElement, which contains a set of children.\n *\n * Note: this is a minimalist implementation, no complete tree\n * structure provided (no parentNode, nextSibling,\n * previousSibling etc).\n * @class HTMLElement\n * @extends {Node}\n */\n\nvar HTMLElement = function (_Node) {\n _inherits(HTMLElement, _Node);\n\n /**\n * Creates an instance of HTMLElement.\n * @param keyAttrs\tid and class attribute\n * @param [rawAttrs]\tattributes in string\n *\n * @memberof HTMLElement\n */\n function HTMLElement(tagName, keyAttrs) {\n var rawAttrs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n var parentNode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, HTMLElement);\n\n var _this = _possibleConstructorReturn(this, (HTMLElement.__proto__ || Object.getPrototypeOf(HTMLElement)).call(this));\n\n _this.rawAttrs = rawAttrs;\n _this.parentNode = parentNode;\n _this.classNames = [];\n /**\n * Node Type declaration.\n */\n _this.nodeType = _type2.default.ELEMENT_NODE;\n _this.rawTagName = tagName;\n _this.rawAttrs = rawAttrs || '';\n _this.parentNode = parentNode || null;\n _this.childNodes = [];\n if (keyAttrs.id) {\n _this.id = keyAttrs.id;\n if (!rawAttrs) {\n _this.rawAttrs = 'id=\"' + keyAttrs.id + '\"';\n }\n }\n if (keyAttrs.class) {\n _this.classNames = keyAttrs.class.split(/\\s+/);\n if (!rawAttrs) {\n var cls = 'class=\"' + _this.classNames.join(' ') + '\"';\n if (_this.rawAttrs) {\n _this.rawAttrs += ' ' + cls;\n } else {\n _this.rawAttrs = cls;\n }\n }\n }\n return _this;\n }\n /**\n * Remove current element\n */\n\n\n _createClass(HTMLElement, [{\n key: 'remove',\n value: function remove() {\n var _this2 = this;\n\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n this.parentNode.childNodes = children.filter(function (child) {\n return _this2 !== child;\n });\n }\n }\n /**\n * Remove Child element from childNodes array\n * @param {HTMLElement} node node to remove\n */\n\n }, {\n key: 'removeChild',\n value: function removeChild(node) {\n this.childNodes = this.childNodes.filter(function (child) {\n return child !== node;\n });\n }\n /**\n * Exchanges given child with new child\n * @param {HTMLElement} oldNode node to exchange\n * @param {HTMLElement} newNode new node\n */\n\n }, {\n key: 'exchangeChild',\n value: function exchangeChild(oldNode, newNode) {\n var children = this.childNodes;\n this.childNodes = children.map(function (child) {\n if (child === oldNode) {\n return newNode;\n }\n return child;\n });\n }\n }, {\n key: 'toString',\n value: function toString() {\n var tag = this.rawTagName;\n if (tag) {\n var is_void = /^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/i.test(tag);\n var attrs = this.rawAttrs ? ' ' + this.rawAttrs : '';\n if (is_void) {\n return '<' + tag + attrs + '>';\n }\n return '<' + tag + attrs + '>' + this.innerHTML + '';\n }\n return this.innerHTML;\n }\n }, {\n key: 'set_content',\n value: function set_content(content) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (content instanceof _node2.default) {\n content = [content];\n } else if (typeof content == 'string') {\n var r = parse(content, options);\n content = r.childNodes.length ? r.childNodes : [new _text4.default(content)];\n }\n this.childNodes = content;\n }\n }, {\n key: 'trimRight',\n\n /**\n * Trim element from right (in block) after seeing pattern in a TextNode.\n * @param {RegExp} pattern pattern to find\n * @return {HTMLElement} reference to current node\n */\n value: function trimRight(pattern) {\n for (var i = 0; i < this.childNodes.length; i++) {\n var childNode = this.childNodes[i];\n if (childNode.nodeType === _type2.default.ELEMENT_NODE) {\n childNode.trimRight(pattern);\n } else {\n var index = childNode.rawText.search(pattern);\n if (index > -1) {\n childNode.rawText = childNode.rawText.substr(0, index);\n // trim all following nodes.\n this.childNodes.length = i + 1;\n }\n }\n }\n return this;\n }\n /**\n * Get DOM structure\n * @return {string} strucutre\n */\n\n }, {\n key: 'removeWhitespace',\n\n /**\n * Remove whitespaces in this sub tree.\n * @return {HTMLElement} pointer to this\n */\n value: function removeWhitespace() {\n var _this3 = this;\n\n var o = 0;\n this.childNodes.forEach(function (node) {\n if (node.nodeType === _type2.default.TEXT_NODE) {\n if (node.isWhitespace) {\n return;\n }\n node.rawText = node.rawText.trim();\n } else if (node.nodeType === _type2.default.ELEMENT_NODE) {\n node.removeWhitespace();\n }\n _this3.childNodes[o++] = node;\n });\n this.childNodes.length = o;\n return this;\n }\n /**\n * Query CSS selector to find matching nodes.\n * @param {string} selector Simplified CSS selector\n * @param {Matcher} selector A Matcher instance\n * @return {HTMLElement[]} matching elements\n */\n\n }, {\n key: 'querySelectorAll',\n value: function querySelectorAll(selector) {\n var _this4 = this;\n\n var matcher = void 0;\n if (selector instanceof _matcher2.default) {\n matcher = selector;\n matcher.reset();\n } else {\n if (selector.includes(',')) {\n var selectors = selector.split(',');\n return Array.from(selectors.reduce(function (pre, cur) {\n var result = _this4.querySelectorAll(cur.trim());\n return result.reduce(function (p, c) {\n return p.add(c);\n }, pre);\n }, new Set()));\n }\n matcher = new _matcher2.default(selector);\n }\n var stack = [];\n return this.childNodes.reduce(function (res, cur) {\n stack.push([cur, 0, false]);\n while (stack.length) {\n var state = (0, _back2.default)(stack); // get last element\n var el = state[0];\n if (state[1] === 0) {\n // Seen for first time.\n if (el.nodeType !== _type2.default.ELEMENT_NODE) {\n stack.pop();\n continue;\n }\n var html_el = el;\n state[2] = matcher.advance(html_el);\n if (state[2]) {\n if (matcher.matched) {\n res.push(html_el);\n res.push.apply(res, _toConsumableArray(html_el.querySelectorAll(selector)));\n // no need to go further.\n matcher.rewind();\n stack.pop();\n continue;\n }\n }\n }\n if (state[1] < el.childNodes.length) {\n stack.push([el.childNodes[state[1]++], 0, false]);\n } else {\n if (state[2]) {\n matcher.rewind();\n }\n stack.pop();\n }\n }\n return res;\n }, []);\n }\n /**\n * Query CSS Selector to find matching node.\n * @param {string} selector Simplified CSS selector\n * @param {Matcher} selector A Matcher instance\n * @return {HTMLElement} matching node\n */\n\n }, {\n key: 'querySelector',\n value: function querySelector(selector) {\n var matcher = void 0;\n if (selector instanceof _matcher2.default) {\n matcher = selector;\n matcher.reset();\n } else {\n matcher = new _matcher2.default(selector);\n }\n var stack = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.childNodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var node = _step.value;\n\n stack.push([node, 0, false]);\n while (stack.length) {\n var state = (0, _back2.default)(stack);\n var el = state[0];\n if (state[1] === 0) {\n // Seen for first time.\n if (el.nodeType !== _type2.default.ELEMENT_NODE) {\n stack.pop();\n continue;\n }\n state[2] = matcher.advance(el);\n if (state[2]) {\n if (matcher.matched) {\n return el;\n }\n }\n }\n if (state[1] < el.childNodes.length) {\n stack.push([el.childNodes[state[1]++], 0, false]);\n } else {\n if (state[2]) {\n matcher.rewind();\n }\n stack.pop();\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return null;\n }\n /**\n * Append a child node to childNodes\n * @param {Node} node node to append\n * @return {Node} node appended\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n // node.parentNode = this;\n this.childNodes.push(node);\n if (node instanceof HTMLElement) {\n node.parentNode = this;\n }\n return node;\n }\n /**\n * Get first child node\n * @return {Node} first child node\n */\n\n }, {\n key: 'removeAttribute',\n value: function removeAttribute(key) {\n var attrs = this.rawAttributes;\n delete attrs[key];\n // Update this.attribute\n if (this._attrs) {\n delete this._attrs[key];\n }\n // Update rawString\n this.rawAttrs = Object.keys(attrs).map(function (name) {\n var val = JSON.stringify(attrs[name]);\n if (val === undefined || val === 'null') {\n return name;\n }\n return name + '=' + val;\n }).join(' ');\n }\n }, {\n key: 'hasAttribute',\n value: function hasAttribute(key) {\n return key in this.attributes;\n }\n /**\n * Get an attribute\n * @return {string} value of the attribute\n */\n\n }, {\n key: 'getAttribute',\n value: function getAttribute(key) {\n return this.attributes[key];\n }\n /**\n * Set an attribute value to the HTMLElement\n * @param {string} key The attribute name\n * @param {string} value The value to set, or null / undefined to remove an attribute\n */\n\n }, {\n key: 'setAttribute',\n value: function setAttribute(key, value) {\n if (arguments.length < 2) {\n throw new Error('Failed to execute \\'setAttribute\\' on \\'Element\\'');\n }\n var attrs = this.rawAttributes;\n attrs[key] = String(value);\n if (this._attrs) {\n this._attrs[key] = (0, _he.decode)(attrs[key]);\n }\n // Update rawString\n this.rawAttrs = Object.keys(attrs).map(function (name) {\n var val = JSON.stringify(attrs[name]);\n if (val === 'null' || val === '\"\"') {\n return name;\n }\n return name + '=' + val;\n }).join(' ');\n }\n /**\n * Replace all the attributes of the HTMLElement by the provided attributes\n * @param {Attributes} attributes the new attribute set\n */\n\n }, {\n key: 'setAttributes',\n value: function setAttributes(attributes) {\n // Invalidate current this.attributes\n if (this._attrs) {\n delete this._attrs;\n }\n // Invalidate current this.rawAttributes\n if (this._rawAttrs) {\n delete this._rawAttrs;\n }\n // Update rawString\n this.rawAttrs = Object.keys(attributes).map(function (name) {\n var val = attributes[name];\n if (val === 'null' || val === '\"\"') {\n return name;\n }\n return name + '=' + JSON.stringify(String(val));\n }).join(' ');\n }\n }, {\n key: 'insertAdjacentHTML',\n value: function insertAdjacentHTML(where, html) {\n var _this5 = this;\n\n if (arguments.length < 2) {\n throw new Error('2 arguments required');\n }\n var p = parse(html);\n if (where === 'afterend') {\n var _parentNode$childNode;\n\n var idx = this.parentNode.childNodes.findIndex(function (child) {\n return child === _this5;\n });\n (_parentNode$childNode = this.parentNode.childNodes).splice.apply(_parentNode$childNode, [idx + 1, 0].concat(_toConsumableArray(p.childNodes)));\n p.childNodes.forEach(function (n) {\n if (n instanceof HTMLElement) {\n n.parentNode = _this5.parentNode;\n }\n });\n } else if (where === 'afterbegin') {\n var _childNodes;\n\n (_childNodes = this.childNodes).unshift.apply(_childNodes, _toConsumableArray(p.childNodes));\n } else if (where === 'beforeend') {\n p.childNodes.forEach(function (n) {\n _this5.appendChild(n);\n });\n } else if (where === 'beforebegin') {\n var _parentNode$childNode2;\n\n var _idx = this.parentNode.childNodes.findIndex(function (child) {\n return child === _this5;\n });\n (_parentNode$childNode2 = this.parentNode.childNodes).splice.apply(_parentNode$childNode2, [_idx, 0].concat(_toConsumableArray(p.childNodes)));\n p.childNodes.forEach(function (n) {\n if (n instanceof HTMLElement) {\n n.parentNode = _this5.parentNode;\n }\n });\n } else {\n throw new Error('The value provided (\\'' + where + '\\') is not one of \\'beforebegin\\', \\'afterbegin\\', \\'beforeend\\', or \\'afterend\\'');\n }\n // if (!where || html === undefined || html === null) {\n // \treturn;\n // }\n }\n }, {\n key: 'tagName',\n get: function get() {\n return this.rawTagName ? this.rawTagName.toUpperCase() : this.rawTagName;\n }\n /**\n * Get escpaed (as-it) text value of current node and its children.\n * @return {string} text content\n */\n\n }, {\n key: 'rawText',\n get: function get() {\n return this.childNodes.reduce(function (pre, cur) {\n return pre += cur.rawText;\n }, '');\n }\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n\n }, {\n key: 'text',\n get: function get() {\n return (0, _he.decode)(this.rawText);\n }\n /**\n * Get structured Text (with '\\n' etc.)\n * @return {string} structured text\n */\n\n }, {\n key: 'structuredText',\n get: function get() {\n var currentBlock = [];\n var blocks = [currentBlock];\n function dfs(node) {\n if (node.nodeType === _type2.default.ELEMENT_NODE) {\n if (kBlockElements.get(node.rawTagName)) {\n if (currentBlock.length > 0) {\n blocks.push(currentBlock = []);\n }\n node.childNodes.forEach(dfs);\n if (currentBlock.length > 0) {\n blocks.push(currentBlock = []);\n }\n } else {\n node.childNodes.forEach(dfs);\n }\n } else if (node.nodeType === _type2.default.TEXT_NODE) {\n if (node.isWhitespace) {\n // Whitespace node, postponed output\n currentBlock.prependWhitespace = true;\n } else {\n var text = node.text;\n if (currentBlock.prependWhitespace) {\n text = ' ' + text;\n currentBlock.prependWhitespace = false;\n }\n currentBlock.push(text);\n }\n }\n }\n dfs(this);\n return blocks.map(function (block) {\n // Normalize each line's whitespace\n return block.join('').trim().replace(/\\s{2,}/g, ' ');\n }).join('\\n').replace(/\\s+$/, ''); // trimRight;\n }\n }, {\n key: 'innerHTML',\n get: function get() {\n return this.childNodes.map(function (child) {\n return child.toString();\n }).join('');\n }\n }, {\n key: 'outerHTML',\n get: function get() {\n return this.toString();\n }\n }, {\n key: 'structure',\n get: function get() {\n var res = [];\n var indention = 0;\n function write(str) {\n res.push(' '.repeat(indention) + str);\n }\n function dfs(node) {\n var idStr = node.id ? '#' + node.id : '';\n var classStr = node.classNames.length ? '.' + node.classNames.join('.') : '';\n write(node.rawTagName + idStr + classStr);\n indention++;\n node.childNodes.forEach(function (childNode) {\n if (childNode.nodeType === _type2.default.ELEMENT_NODE) {\n dfs(childNode);\n } else if (childNode.nodeType === _type2.default.TEXT_NODE) {\n if (!childNode.isWhitespace) {\n write('#text');\n }\n }\n });\n indention--;\n }\n dfs(this);\n return res.join('\\n');\n }\n }, {\n key: 'firstChild',\n get: function get() {\n return this.childNodes[0];\n }\n /**\n * Get last child node\n * @return {Node} last child node\n */\n\n }, {\n key: 'lastChild',\n get: function get() {\n return (0, _back2.default)(this.childNodes);\n }\n /**\n * Get attributes\n * @return {Object} parsed and unescaped attributes\n */\n\n }, {\n key: 'attributes',\n get: function get() {\n if (this._attrs) {\n return this._attrs;\n }\n this._attrs = {};\n var attrs = this.rawAttributes;\n for (var key in attrs) {\n var val = attrs[key] || '';\n this._attrs[key] = (0, _he.decode)(val);\n }\n return this._attrs;\n }\n /**\n * Get escaped (as-it) attributes\n * @return {Object} parsed attributes\n */\n\n }, {\n key: 'rawAttributes',\n get: function get() {\n if (this._rawAttrs) {\n return this._rawAttrs;\n }\n var attrs = {};\n if (this.rawAttrs) {\n var re = /\\b([a-z][a-z0-9-]*)(?:\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|(\\S+)))?/ig;\n var match = void 0;\n while (match = re.exec(this.rawAttrs)) {\n attrs[match[1]] = match[2] || match[3] || match[4] || null;\n }\n }\n this._rawAttrs = attrs;\n return attrs;\n }\n }, {\n key: 'nextSibling',\n get: function get() {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = 0;\n while (i < children.length) {\n var child = children[i++];\n if (this === child) {\n return children[i] || null;\n }\n }\n return null;\n }\n }\n }, {\n key: 'nextElementSibling',\n get: function get() {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = 0;\n var find = false;\n while (i < children.length) {\n var child = children[i++];\n if (find) {\n if (child instanceof HTMLElement) {\n return child || null;\n }\n } else if (this === child) {\n find = true;\n }\n }\n return null;\n }\n }\n }]);\n\n return HTMLElement;\n}(_node2.default);\n// https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n\n\nexports.default = HTMLElement;\nvar kMarkupPattern = /)-->|<(\\/?)([a-z][-.:0-9_a-z]*)\\s*([^>]*?)(\\/?)>/ig;\n// <(?[^\\s]*)(.*)>(.*)>\n// <([a-z][-.:0-9_a-z]*)\\s*\\/>\n// <(area|base|br|col|hr|img|input|link|meta|source)\\s*(.*)\\/?>\n// <(area|base|br|col|hr|img|input|link|meta|source)\\s*(.*)\\/?>|<(?[^\\s]*)(.*)>(.*)>\nvar kAttributePattern = /(^|\\s)(id|class)\\s*=\\s*(\"([^\"]+)\"|'([^']+)'|(\\S+))/ig;\nvar kSelfClosingElements = {\n area: true,\n AREA: true,\n base: true,\n BASE: true,\n br: true,\n BR: true,\n col: true,\n COL: true,\n hr: true,\n HR: true,\n img: true,\n IMG: true,\n input: true,\n INPUT: true,\n link: true,\n LINK: true,\n meta: true,\n META: true,\n source: true,\n SOURCE: true,\n embed: true,\n EMBED: true,\n param: true,\n PARAM: true,\n track: true,\n TRACK: true,\n wbr: true,\n WBR: true\n};\nvar kElementsClosedByOpening = {\n li: { li: true, LI: true },\n LI: { li: true, LI: true },\n p: { p: true, div: true, P: true, DIV: true },\n P: { p: true, div: true, P: true, DIV: true },\n b: { div: true, DIV: true },\n B: { div: true, DIV: true },\n td: { td: true, th: true, TD: true, TH: true },\n TD: { td: true, th: true, TD: true, TH: true },\n th: { td: true, th: true, TD: true, TH: true },\n TH: { td: true, th: true, TD: true, TH: true },\n h1: { h1: true, H1: true },\n H1: { h1: true, H1: true },\n h2: { h2: true, H2: true },\n H2: { h2: true, H2: true },\n h3: { h3: true, H3: true },\n H3: { h3: true, H3: true },\n h4: { h4: true, H4: true },\n H4: { h4: true, H4: true },\n h5: { h5: true, H5: true },\n H5: { h5: true, H5: true },\n h6: { h6: true, H6: true },\n H6: { h6: true, H6: true }\n};\nvar kElementsClosedByClosing = {\n li: { ul: true, ol: true, UL: true, OL: true },\n LI: { ul: true, ol: true, UL: true, OL: true },\n a: { div: true, DIV: true },\n A: { div: true, DIV: true },\n b: { div: true, DIV: true },\n B: { div: true, DIV: true },\n i: { div: true, DIV: true },\n I: { div: true, DIV: true },\n p: { div: true, DIV: true },\n P: { div: true, DIV: true },\n td: { tr: true, table: true, TR: true, TABLE: true },\n TD: { tr: true, table: true, TR: true, TABLE: true },\n th: { tr: true, table: true, TR: true, TABLE: true },\n TH: { tr: true, table: true, TR: true, TABLE: true }\n};\nvar frameflag = 'documentfragmentcontainer';\nfunction parse(data) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { lowerCaseTagName: false, comment: false };\n\n var elements = options.blockTextElements || {\n script: true,\n noscript: true,\n style: true,\n pre: true\n };\n var element_names = Object.keys(elements);\n var kBlockTextElements = element_names.map(function (it) {\n return new RegExp(it, 'i');\n });\n var kIgnoreElements = element_names.filter(function (it) {\n return elements[it];\n }).map(function (it) {\n return new RegExp(it, 'i');\n });\n function element_should_be_ignore(tag) {\n return kIgnoreElements.some(function (it) {\n return it.test(tag);\n });\n }\n function is_block_text_element(tag) {\n return kBlockTextElements.some(function (it) {\n return it.test(tag);\n });\n }\n var root = new HTMLElement(null, {});\n var currentParent = root;\n var stack = [root];\n var lastTextPos = -1;\n var match = void 0;\n // https://github.com/taoqf/node-html-parser/issues/38\n data = '<' + frameflag + '>' + data + '';\n while (match = kMarkupPattern.exec(data)) {\n if (lastTextPos > -1) {\n if (lastTextPos + match[0].length < kMarkupPattern.lastIndex) {\n // if has content\n var text = data.substring(lastTextPos, kMarkupPattern.lastIndex - match[0].length);\n currentParent.appendChild(new _text4.default(text));\n }\n }\n lastTextPos = kMarkupPattern.lastIndex;\n if (match[2] === frameflag) {\n continue;\n }\n if (match[0][1] === '!') {\n // this is a comment\n if (options.comment) {\n // Only keep what is in between \n var _text = data.substring(lastTextPos - 3, lastTextPos - match[0].length + 4);\n currentParent.appendChild(new _comment2.default(_text));\n }\n continue;\n }\n if (options.lowerCaseTagName) {\n match[2] = match[2].toLowerCase();\n }\n if (!match[1]) {\n // not or ...\n var closeMarkup = '';\n var index = function () {\n if (options.lowerCaseTagName) {\n return data.toLocaleLowerCase().indexOf(closeMarkup, kMarkupPattern.lastIndex);\n }\n return data.indexOf(closeMarkup, kMarkupPattern.lastIndex);\n }();\n if (element_should_be_ignore(match[2])) {\n var _text2 = void 0;\n if (index === -1) {\n // there is no matching ending for the text element.\n _text2 = data.substr(kMarkupPattern.lastIndex);\n } else {\n _text2 = data.substring(kMarkupPattern.lastIndex, index);\n }\n if (_text2.length > 0) {\n currentParent.appendChild(new _text4.default(_text2));\n }\n }\n if (index === -1) {\n lastTextPos = kMarkupPattern.lastIndex = data.length + 1;\n } else {\n lastTextPos = kMarkupPattern.lastIndex = index + closeMarkup.length;\n match[1] = 'true';\n }\n })();\n }\n }\n if (match[1] || match[4] || kSelfClosingElements[match[2]]) {\n // or
etc.\n while (true) {\n if (currentParent.rawTagName === match[2]) {\n stack.pop();\n currentParent = (0, _back2.default)(stack);\n break;\n } else {\n var _tagName = currentParent.tagName;\n // Trying to close current tag, and move on\n if (kElementsClosedByClosing[_tagName]) {\n if (kElementsClosedByClosing[_tagName][match[2]]) {\n stack.pop();\n currentParent = (0, _back2.default)(stack);\n continue;\n }\n }\n // Use aggressive strategy to handle unmatching markups.\n break;\n }\n }\n }\n }\n var valid = Boolean(stack.length === 1);\n if (!options.noFix) {\n var _response = root;\n _response.valid = valid;\n\n var _loop = function _loop() {\n // Handle each error elements.\n var last = stack.pop();\n var oneBefore = (0, _back2.default)(stack);\n if (last.parentNode && last.parentNode.parentNode) {\n if (last.parentNode === oneBefore && last.tagName === oneBefore.tagName) {\n // Pair error case

handle : Fixes to

\n oneBefore.removeChild(last);\n last.childNodes.forEach(function (child) {\n oneBefore.parentNode.appendChild(child);\n });\n stack.pop();\n } else {\n // Single error

handle: Just removes

\n oneBefore.removeChild(last);\n last.childNodes.forEach(function (child) {\n oneBefore.appendChild(child);\n });\n }\n } else {\n // If it's final element just skip.\n }\n };\n\n while (stack.length > 1) {\n _loop();\n }\n _response.childNodes.forEach(function (node) {\n if (node instanceof HTMLElement) {\n node.parentNode = null;\n }\n });\n return _response;\n }\n var response = new _text4.default(data);\n response.valid = valid;\n return response;\n}\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/html.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/nodes/node.js": +/*!**************************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/nodes/node.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Node Class as base class for TextNode and HTMLElement.\n */\nvar Node = function () {\n function Node() {\n _classCallCheck(this, Node);\n\n this.childNodes = [];\n }\n\n _createClass(Node, [{\n key: \"innerText\",\n get: function get() {\n return this.rawText;\n }\n }]);\n\n return Node;\n}();\n\nexports.default = Node;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/node.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/nodes/text.js": +/*!**************************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/nodes/text.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _type = __webpack_require__(/*! ./type */ \"./node_modules/node-html-parser/dist/esm/nodes/type.js\");\n\nvar _type2 = _interopRequireDefault(_type);\n\nvar _node = __webpack_require__(/*! ./node */ \"./node_modules/node-html-parser/dist/esm/nodes/node.js\");\n\nvar _node2 = _interopRequireDefault(_node);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * TextNode to contain a text element in DOM tree.\n * @param {string} value [description]\n */\nvar TextNode = function (_Node) {\n _inherits(TextNode, _Node);\n\n function TextNode(rawText) {\n _classCallCheck(this, TextNode);\n\n var _this = _possibleConstructorReturn(this, (TextNode.__proto__ || Object.getPrototypeOf(TextNode)).call(this));\n\n _this.rawText = rawText;\n /**\n * Node Type declaration.\n * @type {Number}\n */\n _this.nodeType = _type2.default.TEXT_NODE;\n return _this;\n }\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n\n\n _createClass(TextNode, [{\n key: 'toString',\n value: function toString() {\n return this.text;\n }\n }, {\n key: 'text',\n get: function get() {\n return this.rawText;\n }\n /**\n * Detect if the node contains only white space.\n * @return {bool}\n */\n\n }, {\n key: 'isWhitespace',\n get: function get() {\n return (/^(\\s| )*$/.test(this.rawText)\n );\n }\n }]);\n\n return TextNode;\n}(_node2.default);\n\nexports.default = TextNode;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/text.js?"); + +/***/ }), + +/***/ "./node_modules/node-html-parser/dist/esm/nodes/type.js": +/*!**************************************************************!*\ + !*** ./node_modules/node-html-parser/dist/esm/nodes/type.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType[NodeType[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType[NodeType[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n})(NodeType || (NodeType = {}));\nexports.default = NodeType;\n\n//# sourceURL=webpack://Contentstack/./node_modules/node-html-parser/dist/esm/nodes/type.js?"); + +/***/ }), + /***/ "./node_modules/process/browser.js": /*!*****************************************!*\ !*** ./node_modules/process/browser.js ***! @@ -123,6 +243,17 @@ eval("\n\n// shim for using process in browser\nvar process = module.exports = { /***/ }), +/***/ "./node_modules/webpack/buildin/amd-options.js": +/*!****************************************!*\ + !*** (webpack)/buildin/amd-options.js ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n\n/* WEBPACK VAR INJECTION */}.call(this, {}))\n\n//# sourceURL=webpack://Contentstack/(webpack)/buildin/amd-options.js?"); + +/***/ }), + /***/ "./node_modules/webpack/buildin/global.js": /*!***********************************!*\ !*** (webpack)/buildin/global.js ***! @@ -135,6 +266,18 @@ eval("\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator /***/ }), +/***/ "./node_modules/webpack/buildin/module.js": +/*!***********************************!*\ + !*** (webpack)/buildin/module.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nmodule.exports = function (module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function () {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function get() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function get() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n//# sourceURL=webpack://Contentstack/(webpack)/buildin/module.js?"); + +/***/ }), + /***/ "./src/core/cache-provider/index.js": /*!******************************************!*\ !*** ./src/core/cache-provider/index.js ***! @@ -179,7 +322,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _stack = __webpack_require__(/*! ./stack */ \"./src/core/stack.js\");\n\nvar _stack2 = _interopRequireDefault(_stack);\n\nvar _index = __webpack_require__(/*! ./cache-provider/index */ \"./src/core/cache-provider/index.js\");\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _contentstackregion = __webpack_require__(/*! ./contentstackregion */ \"./src/core/contentstackregion.js\");\n\nvar _contentstackregion2 = _interopRequireDefault(_contentstackregion);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n* @class \n Contentstack \n* @description Creates an instance of `Contentstack`.\n* @instance\n*/\n\nvar Contentstack = function () {\n\tfunction Contentstack() {\n\t\t_classCallCheck(this, Contentstack);\n\n\t\t/**\n * @memberOf Contentstack\n * @description CachePolicy contains different cache policies constants.\n * @example\n * Contentstack.CachePolicy.IGNORE_CACHE\n * Contentstack.CachePolicy.ONLY_NETWORK\n * Contentstack.CachePolicy.CACHE_ELSE_NETWORK\n * Contentstack.CachePolicy.NETWORK_ELSE_CACHE\n * Contentstack.CachePolicy.CACHE_THEN_NETWORK\n */\n\t\tthis.CachePolicy = _index2.default.policies;\n\t\tthis.Region = _contentstackregion2.default;\n\t}\n\t/**\n \n * @memberOf Contentstack\n */\n\n\n\t_createClass(Contentstack, [{\n\t\tkey: \"Stack\",\n\t\tvalue: function Stack() {\n\t\t\tfor (var _len = arguments.length, stack_arguments = Array(_len), _key = 0; _key < _len; _key++) {\n\t\t\t\tstack_arguments[_key] = arguments[_key];\n\t\t\t}\n\n\t\t\treturn new (Function.prototype.bind.apply(_stack2.default, [null].concat(stack_arguments)))();\n\t\t}\n\t}]);\n\n\treturn Contentstack;\n}();\n\nmodule.exports = new Contentstack();\n\n//# sourceURL=webpack://Contentstack/./src/core/contentstack.js?"); +eval("\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _stack = __webpack_require__(/*! ./stack */ \"./src/core/stack.js\");\n\nvar _stack2 = _interopRequireDefault(_stack);\n\nvar _index = __webpack_require__(/*! ./cache-provider/index */ \"./src/core/cache-provider/index.js\");\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _contentstackregion = __webpack_require__(/*! ./contentstackregion */ \"./src/core/contentstackregion.js\");\n\nvar _contentstackregion2 = _interopRequireDefault(_contentstackregion);\n\nvar _utils = __webpack_require__(/*! @contentstack/utils */ \"./node_modules/@contentstack/utils/dist/index.es.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n* @class \n Contentstack \n* @description Creates an instance of `Contentstack`.\n* @instance\n*/\n\nvar Contentstack = function () {\n\tfunction Contentstack() {\n\t\t_classCallCheck(this, Contentstack);\n\n\t\t/**\n * @memberOf Contentstack\n * @description CachePolicy contains different cache policies constants.\n * @example\n * Contentstack.CachePolicy.IGNORE_CACHE\n * Contentstack.CachePolicy.ONLY_NETWORK\n * Contentstack.CachePolicy.CACHE_ELSE_NETWORK\n * Contentstack.CachePolicy.NETWORK_ELSE_CACHE\n * Contentstack.CachePolicy.CACHE_THEN_NETWORK\n */\n\t\tthis.CachePolicy = _index2.default.policies;\n\t\tthis.Region = _contentstackregion2.default;\n\n\t\tthis.Utils = {\n\t\t\t/**\n * @memberof Contentstack\n * @description Renders embedded objects in Rich text from Entry or Multiple Entry Object.\n * \n * @param {EntryEmbedable| EntryEmbedable[]} entry - Objects that contains RTE with embedded objects\n * @param {string[]} keyPaths - Key paths for RTE contents in Entry object\n * @param {RenderOption?} renderOption - Optional render options to render content\n */\n\t\t\trender: _utils.render,\n\t\t\t/**\n * @memberof Contentstack\n * @description Renders embedded objects in Rich text from String or String of array.\n * @param {string | string[]} content - RTE content to render \n * @param {EntryEmbedable} options.entry - Entry object containing embedded objects\n * @param {RenderOption?} options.renderOption - Optional render options to render content\n */\n\t\t\trenderContent: _utils.renderContent\n\t\t};\n\t}\n\t/**\n \n * @memberOf Contentstack\n */\n\n\n\t_createClass(Contentstack, [{\n\t\tkey: \"Stack\",\n\t\tvalue: function Stack() {\n\t\t\tfor (var _len = arguments.length, stack_arguments = Array(_len), _key = 0; _key < _len; _key++) {\n\t\t\t\tstack_arguments[_key] = arguments[_key];\n\t\t\t}\n\n\t\t\treturn new (Function.prototype.bind.apply(_stack2.default, [null].concat(stack_arguments)))();\n\t\t}\n\t}]);\n\n\treturn Contentstack;\n}();\n\nmodule.exports = new Contentstack();\n\n//# sourceURL=webpack://Contentstack/./src/core/contentstack.js?"); /***/ }), @@ -203,7 +346,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = Request;\n\nvar _utils = __webpack_require__(/*! ./utils.js */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _http = __webpack_require__(/*! runtime/http.js */ \"./src/runtime/react-native/http.js\");\n\nvar _http2 = _interopRequireDefault(_http);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n//JS SDK version\nvar version = '3.12.2';\nvar environment = void 0,\n api_key = void 0;\nfunction Request(options, fetchOptions) {\n return new Promise(function (resolve, reject) {\n var queryParams = void 0;\n var serialize = function serialize(obj, prefix) {\n\n var str = [],\n p = void 0;\n if ((typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj)) === \"object\" && obj.length !== undefined) {\n for (var i = 0, _i = obj.length; i < _i; i++) {\n str.push(prefix + '[]=' + obj[i]);\n }\n } else {\n for (p in obj) {\n var k = prefix ? prefix + \"[\" + p + \"]\" : p,\n v = obj[p];\n str.push(v !== null && (typeof v === \"undefined\" ? \"undefined\" : _typeof(v)) === \"object\" && p !== 'query' ? serialize(v, k) : k + \"=\" + encodeURIComponent(p !== 'query' ? v : JSON.stringify(v)));\n }\n }\n return str.join(\"&\");\n };\n\n var url = options.url,\n headers = options.headers;\n\n // setting headers\n headers['Content-Type'] = 'application/json; charset=UTF-8';\n headers['X-User-Agent'] = 'contentstack-react-native/' + version;\n\n if (options.body && _typeof(options.body) === 'object') {\n delete options.body._method;\n if (_typeof(options.body.query) === \"object\" && Object.keys(options.body.query).length === 0) delete options.body.query;\n queryParams = serialize(options.body);\n }\n\n return fetchRetry(url + '?' + queryParams, headers, fetchOptions.retryDelay, fetchOptions.retryLimit, fetchOptions, resolve, reject);\n });\n}\n\nfunction wait(retryDelay) {\n return new Promise(function (resolve) {\n setTimeout(resolve, retryDelay);\n });\n}\nasync function safeParseJSON(response) {\n var body = await response.text();\n}\nfunction fetchRetry(url, headers) {\n var retryDelay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var retryLimit = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 5;\n var fetchOptions = arguments[4];\n var resolve = arguments[5];\n var reject = arguments[6];\n\n var option = Object.assign({\n method: 'GET',\n headers: headers,\n timeout: 30000\n }, fetchOptions);\n\n function onError(error) {\n if (retryLimit === 0) {\n reject(error);\n } else {\n var msDelay = retryDelay;\n retryLimit = retryLimit - 1;\n var retryCount = fetchOptions.retryLimit - retryLimit;\n if (fetchOptions.retryDelayOptions) {\n if (fetchOptions.retryDelayOptions.base) {\n msDelay = fetchOptions.retryDelayOptions.base * retryCount;\n } else if (fetchOptions.retryDelayOptions.customBackoff) {\n msDelay = fetchOptions.retryDelayOptions.customBackoff(retryCount, error);\n }\n }\n wait(msDelay).then(function () {\n return fetchRetry(url, headers, retryDelay, retryLimit, fetchOptions, resolve, reject);\n });\n }\n }\n (0, _http2.default)(url, option).then(function (response) {\n var data = response.json();\n if (response.ok && response.status === 200) {\n resolve(data);\n } else {\n data.then(function (json) {\n if (fetchOptions.retryCondition && fetchOptions.retryCondition(response)) {\n onError(json);\n } else {\n reject(json);\n }\n }).catch(function () {\n reject({ status: response.status, statusText: response.statusText });\n });\n }\n }).catch(function (error) {\n reject(error);\n });\n}\n\n//# sourceURL=webpack://Contentstack/./src/core/lib/request.js?"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = Request;\n\nvar _utils = __webpack_require__(/*! ./utils.js */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _http = __webpack_require__(/*! runtime/http.js */ \"./src/runtime/react-native/http.js\");\n\nvar _http2 = _interopRequireDefault(_http);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n//JS SDK version\nvar version = '3.13.0';\nvar environment = void 0,\n api_key = void 0;\nfunction Request(options, fetchOptions) {\n return new Promise(function (resolve, reject) {\n var queryParams = void 0;\n var serialize = function serialize(obj, prefix) {\n\n var str = [],\n p = void 0;\n if ((typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj)) === \"object\" && obj.length !== undefined) {\n for (var i = 0, _i = obj.length; i < _i; i++) {\n str.push(prefix + '[]=' + obj[i]);\n }\n } else {\n for (p in obj) {\n var k = prefix ? prefix + \"[\" + p + \"]\" : p,\n v = obj[p];\n str.push(v !== null && (typeof v === \"undefined\" ? \"undefined\" : _typeof(v)) === \"object\" && p !== 'query' ? serialize(v, k) : k + \"=\" + encodeURIComponent(p !== 'query' ? v : JSON.stringify(v)));\n }\n }\n return str.join(\"&\");\n };\n\n var url = options.url,\n headers = options.headers;\n\n // setting headers\n headers['Content-Type'] = 'application/json; charset=UTF-8';\n headers['X-User-Agent'] = 'contentstack-react-native/' + version;\n\n if (options.body && _typeof(options.body) === 'object') {\n delete options.body._method;\n if (_typeof(options.body.query) === \"object\" && Object.keys(options.body.query).length === 0) delete options.body.query;\n queryParams = serialize(options.body);\n }\n\n return fetchRetry(url + '?' + queryParams, headers, fetchOptions.retryDelay, fetchOptions.retryLimit, fetchOptions, resolve, reject);\n });\n}\n\nfunction wait(retryDelay) {\n return new Promise(function (resolve) {\n setTimeout(resolve, retryDelay);\n });\n}\nasync function safeParseJSON(response) {\n var body = await response.text();\n}\nfunction fetchRetry(url, headers) {\n var retryDelay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var retryLimit = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 5;\n var fetchOptions = arguments[4];\n var resolve = arguments[5];\n var reject = arguments[6];\n\n var option = Object.assign({\n method: 'GET',\n headers: headers,\n timeout: 30000\n }, fetchOptions);\n\n function onError(error) {\n if (retryLimit === 0) {\n reject(error);\n } else {\n var msDelay = retryDelay;\n retryLimit = retryLimit - 1;\n var retryCount = fetchOptions.retryLimit - retryLimit;\n if (fetchOptions.retryDelayOptions) {\n if (fetchOptions.retryDelayOptions.base) {\n msDelay = fetchOptions.retryDelayOptions.base * retryCount;\n } else if (fetchOptions.retryDelayOptions.customBackoff) {\n msDelay = fetchOptions.retryDelayOptions.customBackoff(retryCount, error);\n }\n }\n wait(msDelay).then(function () {\n return fetchRetry(url, headers, retryDelay, retryLimit, fetchOptions, resolve, reject);\n });\n }\n }\n (0, _http2.default)(url, option).then(function (response) {\n var data = response.json();\n if (response.ok && response.status === 200) {\n resolve(data);\n } else {\n data.then(function (json) {\n if (fetchOptions.retryCondition && fetchOptions.retryCondition(response)) {\n onError(json);\n } else {\n reject(json);\n }\n }).catch(function () {\n reject({ status: response.status, statusText: response.statusText });\n });\n }\n }).catch(function (error) {\n reject(error);\n });\n}\n\n//# sourceURL=webpack://Contentstack/./src/core/lib/request.js?"); /***/ }), @@ -215,7 +358,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof2 = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.transform = transform;\nexports._type = _type;\nexports.mergeDeep = mergeDeep;\nexports.merge = merge;\nexports.isBrowser = isBrowser;\nexports.parseQueryFromParams = parseQueryFromParams;\nexports.getHash = getHash;\nexports.generateHash = generateHash;\nexports.resultWrapper = resultWrapper;\nexports.spreadResult = spreadResult;\nexports.sendRequest = sendRequest;\n\nvar _request = __webpack_require__(/*! ./request */ \"./src/core/lib/request.js\");\n\nvar _request2 = _interopRequireDefault(_request);\n\nvar _result = __webpack_require__(/*! ../modules/result */ \"./src/core/modules/result.js\");\n\nvar _result2 = _interopRequireDefault(_result);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @method addSpread\n * @description method to add the spread.\n */\n(function addSpread() {\n if (Promise.prototype.spread) return;\n Promise.prototype.spread = function (fn, errFunc) {\n errFunc = errFunc || function (err) {};\n return this.then(function (args) {\n return fn.apply(fn, args);\n }).catch(function (err) {\n errFunc(err);\n });\n };\n})();\n\nfunction transform(type) {\n return function () {\n this._query[type] = this._query[type] || {};\n switch (arguments.length) {\n case 1:\n if (Array.isArray(arguments[0]) || typeof arguments[0] === \"string\") {\n var query = this._query[type]['BASE'] || [];\n query = query.concat(arguments[0]);\n this._query[type]['BASE'] = query;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters\");\n }\n break;\n case 2:\n if (typeof arguments[0] === \"string\" && (Array.isArray(arguments[1]) || typeof arguments[1] === \"string\")) {\n var _query2 = this._query[type][arguments[0]] || [];\n _query2 = _query2.concat(arguments[1]);\n this._query[type][arguments[0]] = _query2;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters\");\n }\n break;\n default:\n console.error(\"Kindly provide valid parameters\");\n }\n };\n}\n\nfunction _type(val) {\n var _typeof = void 0,\n __typeof = typeof val === 'undefined' ? 'undefined' : _typeof2(val);\n switch (__typeof) {\n case 'object':\n _typeof = __typeof;\n if (Array.isArray(val)) {\n __typeof = 'array';\n }\n break;\n default:\n _typeof = __typeof;\n }\n return __typeof;\n};\n\n// merge two objects\nfunction mergeDeep(target, source) {\n var self = this;\n var _merge_recursive = function _merge_recursive(target, source) {\n for (var key in source) {\n if (self._type(source[key]) == 'object' && self._type(target[key]) == self._type(source[key])) {\n _merge_recursive(target[key], source[key]);\n } else if (self._type(source[key]) == 'array' && self._type(target[key]) == self._type(source[key])) {\n target[key] = target[key].concat(source[key]);\n } else {\n target[key] = source[key];\n }\n }\n };\n _merge_recursive(target, source);\n return target;\n};\n\n// merge two objects\nfunction merge(target, source) {\n if (target && source) {\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target;\n};\n\n// return true if process is running in browser else false\nfunction isBrowser() {\n return typeof window !== \"undefined\" && (typeof process === 'undefined' ? 'undefined' : _typeof2(process)) === \"object\" && process.title === \"browser\";\n};\n\n// return the query from the params\nfunction parseQueryFromParams(queryObject, single, toJSON) {\n if (queryObject && queryObject.requestParams) {\n var _query = merge({}, queryObject.requestParams.body ? queryObject.requestParams.body.query || {} : {});\n if (_query.environment_uid) {\n delete _query.environment_uid;\n _query.environment = queryObject.environment;\n }\n _query.environment = queryObject.environment;\n return {\n content_type_uid: queryObject.content_type_uid,\n locale: _query.locale || 'en-us',\n query: _query,\n entry_uid: queryObject.entry_uid,\n asset_uid: queryObject.asset_uid,\n single: single || \"false\",\n toJSON: toJSON || \"false\",\n api_key: queryObject.requestParams.headers ? queryObject.requestParams.headers.api_key : \"\"\n };\n }\n};\n\n// returrn the hash value of the query\nfunction getHash(query) {\n try {\n var hashValue = generateHash(JSON.stringify(query)),\n keyArray = [];\n keyArray.push(query.content_type_uid);\n keyArray.push(query.locale);\n if (query.entry_uid) keyArray.push(query.entry_uid);\n if (query.asset_uid) keyArray.push(query.asset_uid);\n keyArray.push(hashValue);\n return keyArray.join('.');\n } catch (e) {}\n};\n\n// return the hash value of the string\nfunction generateHash(str) {\n var hash = 0,\n i = void 0,\n chr = void 0,\n len = void 0;\n if (str.length === 0) return hash;\n for (i = 0, len = str.length; i < len; i++) {\n chr = str.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0; // Convert to 32bit integer\n }\n return hash < -1 ? hash * -1 : hash;\n};\n\n// generate the Result object\nfunction resultWrapper(result) {\n if (result && typeof result.entries !== 'undefined') {\n if (result.entries && result.entries.length) {\n for (var i = 0, _i = result.entries.length; i < _i; i++) {\n result.entries[i] = (0, _result2.default)(result.entries[i]);\n }\n } else {\n result.entries = [];\n }\n } else if (result && result.assets && typeof result.assets !== 'undefined') {\n if (result.assets && result.assets.length) {\n for (var j = 0, _j = result.assets.length; j < _j; j++) {\n result.assets[j] = (0, _result2.default)(result.assets[j]);\n }\n } else {\n result.assets = [];\n }\n } else if (result && typeof result.entry !== 'undefined') {\n result.entry = (0, _result2.default)(result.entry);\n } else if (result && typeof result.asset !== 'undefined') {\n result.asset = (0, _result2.default)(result.asset);\n } else if (result && typeof result.items !== 'undefined') {\n result.items = (0, _result2.default)(result.items).toJSON();\n }\n\n return result;\n};\n\n// // spread the result object\n// export function spreadResult(result) {\n// let _results = [];\n// if (result && Object.keys(result).length) {\n// if (typeof result.entries !== 'undefined') _results.push(result.entries);\n// if (typeof result.assets !== 'undefined') _results.push(result.assets);\n// if (typeof result.content_type !== 'undefined' || typeof result.schema !== 'undefined') _results.push(result.content_type || result.schema);\n// if (typeof result.count !== 'undefined') _results.push(result.count);\n// if (typeof result.entry !== 'undefined') _results = result.entry;\n// if (typeof result.asset !== 'undefined') _results = result.asset;\n// if (typeof result.items !== 'undefined') _results.push(result);\n// }\n// return _results;\n// };\n\n// spread the result object\nfunction spreadResult(result) {\n var _results = [];\n if (result && Object.keys(result).length) {\n if (typeof result.entries !== 'undefined') {\n _results.push(result.entries);\n if (result.content_type) {\n _results['schema'] = result.content_type;\n }\n }\n if (typeof result.assets !== 'undefined') _results.push(result.assets);\n if (typeof result.content_type !== 'undefined' || typeof result.schema !== 'undefined') _results.push(result.content_type || result.schema);\n if (typeof result.count !== 'undefined') _results.push(result.count);\n if (typeof result.entry !== 'undefined') {\n _results = result.entry;\n if (result.schema) {\n _results['schema'] = result.schema;\n }\n if (result.content_type) {\n _results['content_type'] = result.content_type;\n }\n }\n if (typeof result.asset !== 'undefined') _results = result.asset;\n if (typeof result.items !== 'undefined') _results.push(result);\n }\n return _results;\n};\n\nfunction sendRequest(queryObject, options) {\n\n var env_uid = queryObject.environment_uid;\n if (env_uid) {\n queryObject._query.environment_uid = env_uid;\n } else {\n if (queryObject._query) {\n queryObject._query.environment = queryObject.environment;\n } else {\n queryObject['_query'] = {};\n queryObject._query['environment'] = queryObject.environment;\n }\n }\n\n var self = queryObject;\n var continueFlag = false;\n var cachePolicy = typeof self.queryCachePolicy !== 'undefined' ? self.queryCachePolicy : self.cachePolicy;\n var tojson = typeof self.tojson !== 'undefined' ? self.tojson : false;\n var isSingle = self.entry_uid || self.singleEntry || self.asset_uid ? true : false;\n var hashQuery = getHash(parseQueryFromParams(self, isSingle, tojson));\n\n /**\n for new api v3\n */\n if (queryObject && queryObject.requestParams && queryObject.requestParams.body && queryObject.requestParams.body.query) {\n var cloneQueryObj = JSON.parse(JSON.stringify(queryObject.requestParams.body.query));\n if ((typeof cloneQueryObj === 'undefined' ? 'undefined' : _typeof2(cloneQueryObj)) !== 'object') {\n cloneQueryObj = JSON.parse(cloneQueryObj);\n }\n delete queryObject.requestParams.body.query;\n queryObject.requestParams.body = merge(queryObject.requestParams.body, cloneQueryObj);\n }\n\n var getCacheCallback = function getCacheCallback() {\n return function (err, entries) {\n return new Promise(function (resolve, reject) {\n try {\n if (err) throw err;\n if (!tojson) entries = resultWrapper(entries);\n resolve(spreadResult(entries));\n } catch (e) {\n reject(e);\n }\n });\n };\n };\n\n var callback = function callback(continueFlag, resolve, reject) {\n if (continueFlag) {\n (0, _request2.default)(queryObject.requestParams, options).then(function (data) {\n try {\n self.entry_uid = self.asset_uid = self.tojson = self.queryCachePolicy = undefined;\n var entries = {};\n var syncstack = {};\n if (queryObject.singleEntry) {\n queryObject.singleEntry = false;\n if (data.schema) entries.schema = data.schema;\n if (data.content_type) {\n entries.content_type = data.content_type;\n delete entries.schema;\n }\n if (data.entries && data.entries.length) {\n entries.entry = data.entries[0];\n } else if (data.assets && data.assets.length) {\n entries.assets = data.assets[0];\n } else {\n if (cachePolicy === 2 && self.provider !== null) {\n self.provider.get(hashQuery, getCacheCallback());\n } else {\n return reject({ error_code: 141, error_message: 'The requested entry doesn\\'t exist.' });\n }\n return;\n }\n } else if (data.items) {\n syncstack = {\n items: data.items,\n pagination_token: data.pagination_token,\n sync_token: data.sync_token,\n total_count: data.total_count\n };\n } else {\n entries = data;\n }\n\n if (cachePolicy !== -1 && self.provider !== null) {\n self.provider.set(hashQuery, entries, function (err) {\n try {\n if (err) throw err;\n if (!tojson) entries = resultWrapper(entries);\n return resolve(spreadResult(entries));\n } catch (e) {\n return reject(e);\n }\n });\n return resolve(spreadResult(entries));\n }\n\n if (Object.keys(syncstack).length) {\n return resolve(syncstack);\n }\n\n if (!tojson) entries = resultWrapper(entries);\n return resolve(spreadResult(entries));\n } catch (e) {\n return reject({\n message: e.message\n });\n }\n }.bind(self)).catch(function (error) {\n if (cachePolicy === 2 && self.provider !== null) {\n self.provider.get(hashQuery, getCacheCallback());\n } else {\n return reject(error);\n }\n });\n }\n };\n switch (cachePolicy) {\n case 1:\n return new Promise(function (resolve, reject) {\n if (self.provider !== null) {\n self.provider.get(hashQuery, function (err, _data) {\n try {\n if (err || !_data) {\n callback(true, resolve, reject);\n } else {\n if (!tojson) _data = resultWrapper(_data);\n return resolve(spreadResult(_data));\n }\n } catch (e) {\n return reject(e);\n }\n });\n } else {\n callback(true, resolve, reject);\n }\n });\n break;\n case 2:\n case 0:\n case undefined:\n case -1:\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n };\n\n if (cachePolicy === 3) {\n\n var promise = new Promise(function (resolve, reject) {\n if (self.provider !== null) {\n self.provider.get(hashQuery, function (err, _data) {\n try {\n if (err || !_data) {\n reject(err);\n //reject(Error(\"It broke\"));\n } else {\n if (!tojson) _data = resultWrapper(_data);\n resolve(spreadResult(_data));\n }\n } catch (e) {\n reject(e);\n }\n });\n }\n });\n\n return promise.then(function () {\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n }).catch(function (error) {\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n console.error(error);\n });\n }\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../node_modules/process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://Contentstack/./src/core/lib/utils.js?"); +eval("/* WEBPACK VAR INJECTION */(function(process) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof2 = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.transform = transform;\nexports._type = _type;\nexports.mergeDeep = mergeDeep;\nexports.merge = merge;\nexports.isBrowser = isBrowser;\nexports.parseQueryFromParams = parseQueryFromParams;\nexports.getHash = getHash;\nexports.generateHash = generateHash;\nexports.resultWrapper = resultWrapper;\nexports.spreadResult = spreadResult;\nexports.sendRequest = sendRequest;\n\nvar _request = __webpack_require__(/*! ./request */ \"./src/core/lib/request.js\");\n\nvar _request2 = _interopRequireDefault(_request);\n\nvar _result = __webpack_require__(/*! ../modules/result */ \"./src/core/modules/result.js\");\n\nvar _result2 = _interopRequireDefault(_result);\n\nvar _config = __webpack_require__(/*! ../../../config */ \"./config.js\");\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @method addSpread\n * @description method to add the spread.\n */\n(function addSpread() {\n if (Promise.prototype.spread) return;\n Promise.prototype.spread = function (fn, errFunc) {\n errFunc = errFunc || function (err) {};\n return this.then(function (args) {\n return fn.apply(fn, args);\n }).catch(function (err) {\n errFunc(err);\n });\n };\n})();\n\nfunction transform(type) {\n return function () {\n this._query[type] = this._query[type] || {};\n switch (arguments.length) {\n case 1:\n if (Array.isArray(arguments[0]) || typeof arguments[0] === \"string\") {\n var query = this._query[type]['BASE'] || [];\n query = query.concat(arguments[0]);\n this._query[type]['BASE'] = query;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters\");\n }\n break;\n case 2:\n if (typeof arguments[0] === \"string\" && (Array.isArray(arguments[1]) || typeof arguments[1] === \"string\")) {\n var _query2 = this._query[type][arguments[0]] || [];\n _query2 = _query2.concat(arguments[1]);\n this._query[type][arguments[0]] = _query2;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters\");\n }\n break;\n default:\n console.error(\"Kindly provide valid parameters\");\n }\n };\n}\n\nfunction _type(val) {\n var _typeof = void 0,\n __typeof = typeof val === 'undefined' ? 'undefined' : _typeof2(val);\n switch (__typeof) {\n case 'object':\n _typeof = __typeof;\n if (Array.isArray(val)) {\n __typeof = 'array';\n }\n break;\n default:\n _typeof = __typeof;\n }\n return __typeof;\n};\n\n// merge two objects\nfunction mergeDeep(target, source) {\n var self = this;\n var _merge_recursive = function _merge_recursive(target, source) {\n for (var key in source) {\n if (self._type(source[key]) == 'object' && self._type(target[key]) == self._type(source[key])) {\n _merge_recursive(target[key], source[key]);\n } else if (self._type(source[key]) == 'array' && self._type(target[key]) == self._type(source[key])) {\n target[key] = target[key].concat(source[key]);\n } else {\n target[key] = source[key];\n }\n }\n };\n _merge_recursive(target, source);\n return target;\n};\n\n// merge two objects\nfunction merge(target, source) {\n if (target && source) {\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target;\n};\n\n// return true if process is running in browser else false\nfunction isBrowser() {\n return typeof window !== \"undefined\" && (typeof process === 'undefined' ? 'undefined' : _typeof2(process)) === \"object\" && process.title === \"browser\";\n};\n\n// return the query from the params\nfunction parseQueryFromParams(queryObject, single, toJSON) {\n if (queryObject && queryObject.requestParams) {\n var _query = merge({}, queryObject.requestParams.body ? queryObject.requestParams.body.query || {} : {});\n if (_query.environment_uid) {\n delete _query.environment_uid;\n _query.environment = queryObject.environment;\n }\n _query.environment = queryObject.environment;\n return {\n content_type_uid: queryObject.content_type_uid,\n locale: _query.locale || 'en-us',\n query: _query,\n entry_uid: queryObject.entry_uid,\n asset_uid: queryObject.asset_uid,\n single: single || \"false\",\n toJSON: toJSON || \"false\",\n api_key: queryObject.requestParams.headers ? queryObject.requestParams.headers.api_key : \"\"\n };\n }\n};\n\n// returrn the hash value of the query\nfunction getHash(query) {\n try {\n var hashValue = generateHash(JSON.stringify(query)),\n keyArray = [];\n keyArray.push(query.content_type_uid);\n keyArray.push(query.locale);\n if (query.entry_uid) keyArray.push(query.entry_uid);\n if (query.asset_uid) keyArray.push(query.asset_uid);\n keyArray.push(hashValue);\n return keyArray.join('.');\n } catch (e) {}\n};\n\n// return the hash value of the string\nfunction generateHash(str) {\n var hash = 0,\n i = void 0,\n chr = void 0,\n len = void 0;\n if (str.length === 0) return hash;\n for (i = 0, len = str.length; i < len; i++) {\n chr = str.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0; // Convert to 32bit integer\n }\n return hash < -1 ? hash * -1 : hash;\n};\n\n// generate the Result object\nfunction resultWrapper(result) {\n if (result && typeof result.entries !== 'undefined') {\n if (result.entries && result.entries.length) {\n for (var i = 0, _i = result.entries.length; i < _i; i++) {\n result.entries[i] = (0, _result2.default)(result.entries[i]);\n }\n } else {\n result.entries = [];\n }\n } else if (result && result.assets && typeof result.assets !== 'undefined') {\n if (result.assets && result.assets.length) {\n for (var j = 0, _j = result.assets.length; j < _j; j++) {\n result.assets[j] = (0, _result2.default)(result.assets[j]);\n }\n } else {\n result.assets = [];\n }\n } else if (result && typeof result.entry !== 'undefined') {\n result.entry = (0, _result2.default)(result.entry);\n } else if (result && typeof result.asset !== 'undefined') {\n result.asset = (0, _result2.default)(result.asset);\n } else if (result && typeof result.items !== 'undefined') {\n result.items = (0, _result2.default)(result.items).toJSON();\n }\n\n return result;\n};\n\n// // spread the result object\n// export function spreadResult(result) {\n// let _results = [];\n// if (result && Object.keys(result).length) {\n// if (typeof result.entries !== 'undefined') _results.push(result.entries);\n// if (typeof result.assets !== 'undefined') _results.push(result.assets);\n// if (typeof result.content_type !== 'undefined' || typeof result.schema !== 'undefined') _results.push(result.content_type || result.schema);\n// if (typeof result.count !== 'undefined') _results.push(result.count);\n// if (typeof result.entry !== 'undefined') _results = result.entry;\n// if (typeof result.asset !== 'undefined') _results = result.asset;\n// if (typeof result.items !== 'undefined') _results.push(result);\n// }\n// return _results;\n// };\n\n// spread the result object\nfunction spreadResult(result) {\n var _results = [];\n if (result && Object.keys(result).length) {\n if (typeof result.entries !== 'undefined') {\n _results.push(result.entries);\n if (result.content_type) {\n _results['schema'] = result.content_type;\n }\n }\n if (typeof result.assets !== 'undefined') _results.push(result.assets);\n if (typeof result.content_type !== 'undefined' || typeof result.schema !== 'undefined') _results.push(result.content_type || result.schema);\n if (typeof result.count !== 'undefined') _results.push(result.count);\n if (typeof result.entry !== 'undefined') {\n _results = result.entry;\n if (result.schema) {\n _results['schema'] = result.schema;\n }\n if (result.content_type) {\n _results['content_type'] = result.content_type;\n }\n }\n if (typeof result.asset !== 'undefined') _results = result.asset;\n if (typeof result.items !== 'undefined') _results.push(result);\n }\n return _results;\n};\n\nfunction sendRequest(queryObject, options) {\n\n var env_uid = queryObject.environment_uid;\n if (env_uid) {\n queryObject._query.environment_uid = env_uid;\n } else {\n if (queryObject._query) {\n queryObject._query.environment = queryObject.environment;\n } else {\n queryObject['_query'] = {};\n queryObject._query['environment'] = queryObject.environment;\n }\n }\n\n var self = queryObject;\n var continueFlag = false;\n var cachePolicy = typeof self.queryCachePolicy !== 'undefined' ? self.queryCachePolicy : self.cachePolicy;\n var tojson = typeof self.tojson !== 'undefined' ? self.tojson : false;\n var isSingle = self.entry_uid || self.singleEntry || self.asset_uid ? true : false;\n var hashQuery = getHash(parseQueryFromParams(self, isSingle, tojson));\n if (queryObject.requestParams.url.includes(_config2.default.urls.sync)) {\n cachePolicy = -1;\n }\n /**\n for new api v3\n */\n if (queryObject && queryObject.requestParams && queryObject.requestParams.body && queryObject.requestParams.body.query) {\n var cloneQueryObj = JSON.parse(JSON.stringify(queryObject.requestParams.body.query));\n if ((typeof cloneQueryObj === 'undefined' ? 'undefined' : _typeof2(cloneQueryObj)) !== 'object') {\n cloneQueryObj = JSON.parse(cloneQueryObj);\n }\n delete queryObject.requestParams.body.query;\n queryObject.requestParams.body = merge(queryObject.requestParams.body, cloneQueryObj);\n }\n\n var getCacheCallback = function getCacheCallback() {\n return function (err, entries) {\n return new Promise(function (resolve, reject) {\n try {\n if (err) throw err;\n if (!tojson) entries = resultWrapper(entries);\n resolve(spreadResult(entries));\n } catch (e) {\n reject(e);\n }\n });\n };\n };\n\n var callback = function callback(continueFlag, resolve, reject) {\n if (continueFlag) {\n (0, _request2.default)(queryObject.requestParams, options).then(function (data) {\n try {\n self.entry_uid = self.asset_uid = self.tojson = self.queryCachePolicy = undefined;\n var entries = {};\n var syncstack = {};\n if (queryObject.singleEntry) {\n queryObject.singleEntry = false;\n if (data.schema) entries.schema = data.schema;\n if (data.content_type) {\n entries.content_type = data.content_type;\n delete entries.schema;\n }\n if (data.entries && data.entries.length) {\n entries.entry = data.entries[0];\n } else if (data.assets && data.assets.length) {\n entries.assets = data.assets[0];\n } else {\n if (cachePolicy === 2 && self.provider !== null) {\n self.provider.get(hashQuery, getCacheCallback());\n } else {\n return reject({ error_code: 141, error_message: 'The requested entry doesn\\'t exist.' });\n }\n return;\n }\n } else if (data.items) {\n syncstack = {\n items: data.items,\n pagination_token: data.pagination_token,\n sync_token: data.sync_token,\n total_count: data.total_count\n };\n } else {\n entries = data;\n }\n\n if (cachePolicy !== -1 && self.provider !== null) {\n self.provider.set(hashQuery, entries, function (err) {\n try {\n if (err) throw err;\n if (!tojson) entries = resultWrapper(entries);\n return resolve(spreadResult(entries));\n } catch (e) {\n return reject(e);\n }\n });\n return resolve(spreadResult(entries));\n }\n\n if (Object.keys(syncstack).length) {\n return resolve(syncstack);\n }\n\n if (!tojson) entries = resultWrapper(entries);\n return resolve(spreadResult(entries));\n } catch (e) {\n return reject({\n message: e.message\n });\n }\n }.bind(self)).catch(function (error) {\n if (cachePolicy === 2 && self.provider !== null) {\n self.provider.get(hashQuery, getCacheCallback());\n } else {\n return reject(error);\n }\n });\n }\n };\n switch (cachePolicy) {\n case 1:\n return new Promise(function (resolve, reject) {\n if (self.provider !== null) {\n self.provider.get(hashQuery, function (err, _data) {\n try {\n if (err || !_data) {\n callback(true, resolve, reject);\n } else {\n if (!tojson) _data = resultWrapper(_data);\n return resolve(spreadResult(_data));\n }\n } catch (e) {\n return reject(e);\n }\n });\n } else {\n callback(true, resolve, reject);\n }\n });\n break;\n case 2:\n case 0:\n case undefined:\n case -1:\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n };\n\n if (cachePolicy === 3) {\n\n var promise = new Promise(function (resolve, reject) {\n if (self.provider !== null) {\n self.provider.get(hashQuery, function (err, _data) {\n try {\n if (err || !_data) {\n reject(err);\n //reject(Error(\"It broke\"));\n } else {\n if (!tojson) _data = resultWrapper(_data);\n resolve(spreadResult(_data));\n }\n } catch (e) {\n reject(e);\n }\n });\n }\n });\n\n return promise.then(function () {\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n }).catch(function (error) {\n return new Promise(function (resolve, reject) {\n callback(true, resolve, reject);\n });\n console.error(error);\n });\n }\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../node_modules/process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://Contentstack/./src/core/lib/utils.js?"); /***/ }), @@ -239,7 +382,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _utils = __webpack_require__(/*! ../lib/utils */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _stack = __webpack_require__(/*! ../stack */ \"./src/core/stack.js\");\n\nvar _stack2 = _interopRequireDefault(_stack);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * @class \n Entry \n* @summary Creates an instance of `Entry`. \n* @description An initializer is responsible for creating Entry object.\n* @param {String} uid - uid of the entry\n* @example\n* let Entry = Stack.ContentType('example').Entry('entry_uid');\n* @returns {Entry}\n* @instance\n*/\n\nvar Entry = function () {\n function Entry() {\n _classCallCheck(this, Entry);\n\n this._query = {};\n /**\n * @method only\n * @memberOf Entry\n * @description Displays values of only the specified fields of entries or assets in the response\n * @param {String} [key=BASE] - Assets:
\n *

Retrieves specified field of asset

\n * @param {String} - Entries:
\n *

- retrieves default fields of the schema.

\n *

- referenced_content-type-uid : retrieves fields of the referred content type.

\n * @param {Array} values - array of fields that you want to display in the response\n * @example\n * The only function with field_uid will include the data of only the specified fields for each entry and exclude the data of all other fields. \n * Stack.ContentType('contentTypeUid').Query().only('title').toJSON().find()\n * @example\n * The only function with an array of field_uids will include multiple fields for each entry and exclude the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().only(['title','description']).toJSON().find()\n * @example\n * In only, we have the only with a reference parameter, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter to include the data of only the specified field_uid for each entry and exclude the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').only('reference_field_uid','title').toJSON().find()\n * @example\n * In only, we have the only with a reference parameter with an array, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter with an array of fields to include the data of only the specified array of field_uids for each entry and exclude the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').only('reference_field_uid', ['title', 'description']).toJSON().find()\n * \n * @returns {Entry}\n * @instance\n */\n this.only = Utils.transform('only');\n /**\n * @method except\n * @memberOf Entry\n * @description Displays all data of an entries or assets excluding the data of the specified fields.\n * @param {String} [key=BASE] - BASE (default value) - retrieves default fields of the schema.\n - referenced_content-type-uid - retrieves fields of the referred content type.\n * @param {Array} values - array of fields that you want to skip in the response\n * @example\n * The except function with field_uid will exclude the data of only the specified fields for each entry and includes the data of all other fields. \n * Stack.ContentType('contentTypeUid').Query().except('title').toJSON().find()\n * @example\n * The except function with an array of field_uids will except multiple fields for each entry and include the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().except(['title','description']).toJSON().find()\n * @example\n * In except, we have the only with a reference parameter, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter to except the data of only the specified field_uid for each entry and include the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').except('reference_field_uid','title').toJSON().find()\n * @example\n * In except, we have the only with a reference parameter with an array, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter with an array of fields to except the data of only the specified array of field_uids for each entry and include the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').except('reference_field_uid', ['title', 'description']).toJSON().find()\n * @returns {Entry}\n * @instance \n */\n this.except = Utils.transform('except');\n return this;\n }\n\n _createClass(Entry, [{\n key: \"setCacheProvider\",\n value: function setCacheProvider(provider) {\n if (provider && (typeof provider === \"undefined\" ? \"undefined\" : _typeof(provider)) === 'object') {\n this.provider = provider;\n }\n return this;\n }\n }, {\n key: \"setCachePolicy\",\n value: function setCachePolicy(policy) {\n if (typeof policy === 'number' && policy >= -1 && policy < 4) {\n if (!this._query) {\n this.cachePolicy = policy;\n } else {\n this.queryCachePolicy = policy;\n }\n } else {\n console.error(\"Kindly provide the valid policy\");\n }\n return this;\n }\n\n /**\n * @method includeReference\n * @memberOf Entry\n * @description Fetches the entire content of referenced entry(ies). Read More\n * @example\n * .includeReference with reference_field_uids as array \n * var Query = Stack.ContentType(contentTypes.source).Query();\n Query\n .includeReference(['reference_field_uid', 'other_reference_field_uid'])\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including reference entries.\n })\n * @example\n * .includeReference with reference_field_uids and its children reference \n * var Query = Stack.ContentType(contentTypes.source).Query();\n Query\n .includeReference(['reference_field_uid', 'reference_field_uid.child_reference_field_uid'])\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including reference entries.\n })\n * @example\n * .includeReference with reference_field_uids \n * var Query = Stack.ContentType(contentTypes.source).Query(); \n Query\n .includeReference('reference_field_uid')\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including particular reference using reference_uid.\n })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeReference\",\n value: function includeReference() {\n for (var _len = arguments.length, val = Array(_len), _key = 0; _key < _len; _key++) {\n val[_key] = arguments[_key];\n }\n\n if (Array.isArray(val) || typeof val === \"string\") {\n if (arguments.length) {\n for (var i = 0; i < arguments.length; i++) {\n this._query['include'] = this._query['include'] || [];\n this._query['include'] = this._query['include'].concat(arguments[i]);\n }\n }\n return this;\n } else {\n console.error(\"Argument should be a String or an Array.\");\n }\n }\n\n /**\n * Sets the language code of which you want to retrieve data.\n * @param {String} language_code - language code. e.g. 'en-us', 'ja-jp', etc.\n * @memberOf Entry\n * @example \n * let data = Stack.ContentType(contentTypeUid).Entry(entryUid).language('ja-jp').fetch()\n * data\n * .then(function(result) {\n * // 'result' is an object used to retrieve data of ja-jp language.\n * }, function(error) {\n * // error function\n * })\n * \n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"language\",\n value: function language(language_code) {\n if (language_code && typeof language_code === 'string') {\n this._query['locale'] = language_code;\n return this;\n } else {\n console.error(\"Argument should be a String.\");\n }\n }\n\n /**\n * @method addQuery\n * @memberOf Entry\n * @description Adds query to Entry object\n * @param {String} key - key of the query\n * @param {String} value - value of the query\n * @example Stack.ContentType(contentTypeUid).Entry(entry_uid).addQuery('include_schema',true)\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"addQuery\",\n value: function addQuery(key, value) {\n if (key && value && typeof key === 'string') {\n this._query[key] = value;\n return this;\n } else {\n console.error(\"First argument should be a String.\");\n }\n }\n\n /**\n * @method includeSchema\n * @memberOf Entry\n * @deprecated since verion 3.3.0\n * @description Include schema of the current content type along with entry/entries details.\n * @example Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeSchema().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeSchema\",\n value: function includeSchema() {\n this._query['include_schema'] = true;\n return this;\n }\n\n /**\n * @method includeReferenceContentTypeUid\n * @memberOf Entry\n * @description This method also includes the content type UIDs of the referenced entries returned in the response.\n * @example Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeReferenceContentTypeUID().fetch()\n * @example \n * Query = Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeReferenceContentTypeUID().fetch()\n * Query\n * .toJSON()\n * .then(function (result) {\n * let value = result.get(field_uid)\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeReferenceContentTypeUID\",\n value: function includeReferenceContentTypeUID() {\n this._query['include_reference_content_type_uid'] = true;\n return this;\n }\n\n /**\n * @method includeFallback\n * @memberOf Entry\n * @description Include the fallback locale publish content, if specified locale content is not publish.\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeFallback().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeFallback\",\n value: function includeFallback() {\n this._query['include_fallback'] = true;\n return this;\n }\n\n /**\n * @method includeContentType\n * @memberOf Entry\n * @description Include the details of the content type along with the entry/entries details.\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeContentType().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeContentType\",\n value: function includeContentType() {\n this._query['include_content_type'] = true;\n return this;\n }\n\n /**\n * @method includeOwner\n * @memberOf Entry \n * @description Includes the owner details of the entry/entries\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeOwner().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeOwner\",\n value: function includeOwner() {\n this._query['include_owner'] = true;\n return this;\n }\n\n /**\n * @method toJSON\n * @memberOf Entry \n * @description Converts your response into plain JavasScript object.Supports both entry and asset queries.\n * @example\n * Query = Stack.ContentType(contentTypeUid).Entry(entryUid).fetch()\n * Query\n * .toJSON()\n * .then(function (result) {\n * let value = result.get(field_uid)\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n this.tojson = true;\n return this;\n }\n\n /**\n * @method addParam\n * @memberOf Entry \n * @description Includes query parameters in your queries.\n * @example var data = Stack.ContentType(contentTypeUid).Entry(entryUid).addParam('include_count', 'true').fetch()\n * data.then(function (result) {\n * // 'result' is an object which content the data including count in json object form\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"addParam\",\n value: function addParam(key, value) {\n if (key && value && typeof key === 'string' && typeof value === 'string') {\n this._query[key] = value;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters.\");\n }\n }\n\n /**\n * @method fetch\n * @memberOf Entry \n * @description Fetches a particular entry based on the provided entry UID.\n * @example\n * Stack.ContentType(contentTypeUid).Entry(entryUid).toJSON().fetch()\n * \n * @example\n * Stack.ContentType(contentTypeUid).Entry(entryUid).toJSON().fetch({\n * \n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: \"fetch\",\n value: function fetch(fetchOptions) {\n if (this.entry_uid) {\n this.requestParams = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types + this.content_type_uid + this.config.urls.entries + this.entry_uid,\n body: {\n _method: 'GET',\n query: this._query\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return Utils.sendRequest(this, options);\n } else {\n console.error(\"Kindly provide an entry uid. e.g. .Entry('bltsomething123')\");\n }\n }\n }]);\n\n return Entry;\n}();\n\nexports.default = Entry;\n\n//# sourceURL=webpack://Contentstack/./src/core/modules/entry.js?"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _utils = __webpack_require__(/*! ../lib/utils */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _stack = __webpack_require__(/*! ../stack */ \"./src/core/stack.js\");\n\nvar _stack2 = _interopRequireDefault(_stack);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * @class \n Entry \n* @summary Creates an instance of `Entry`. \n* @description An initializer is responsible for creating Entry object.\n* @param {String} uid - uid of the entry\n* @example\n* let Entry = Stack.ContentType('example').Entry('entry_uid');\n* @returns {Entry}\n* @instance\n*/\n\nvar Entry = function () {\n function Entry() {\n _classCallCheck(this, Entry);\n\n this._query = {};\n /**\n * @method only\n * @memberOf Entry\n * @description Displays values of only the specified fields of entries or assets in the response\n * @param {String} [key=BASE] - Assets:
\n *

Retrieves specified field of asset

\n * @param {String} - Entries:
\n *

- retrieves default fields of the schema.

\n *

- referenced_content-type-uid : retrieves fields of the referred content type.

\n * @param {Array} values - array of fields that you want to display in the response\n * @example\n * The only function with field_uid will include the data of only the specified fields for each entry and exclude the data of all other fields. \n * Stack.ContentType('contentTypeUid').Query().only('title').toJSON().find()\n * @example\n * The only function with an array of field_uids will include multiple fields for each entry and exclude the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().only(['title','description']).toJSON().find()\n * @example\n * In only, we have the only with a reference parameter, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter to include the data of only the specified field_uid for each entry and exclude the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').only('reference_field_uid','title').toJSON().find()\n * @example\n * In only, we have the only with a reference parameter with an array, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter with an array of fields to include the data of only the specified array of field_uids for each entry and exclude the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').only('reference_field_uid', ['title', 'description']).toJSON().find()\n * \n * @returns {Entry}\n * @instance\n */\n this.only = Utils.transform('only');\n /**\n * @method except\n * @memberOf Entry\n * @description Displays all data of an entries or assets excluding the data of the specified fields.\n * @param {String} [key=BASE] - BASE (default value) - retrieves default fields of the schema.\n - referenced_content-type-uid - retrieves fields of the referred content type.\n * @param {Array} values - array of fields that you want to skip in the response\n * @example\n * The except function with field_uid will exclude the data of only the specified fields for each entry and includes the data of all other fields. \n * Stack.ContentType('contentTypeUid').Query().except('title').toJSON().find()\n * @example\n * The except function with an array of field_uids will except multiple fields for each entry and include the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().except(['title','description']).toJSON().find()\n * @example\n * In except, we have the only with a reference parameter, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter to except the data of only the specified field_uid for each entry and include the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').except('reference_field_uid','title').toJSON().find()\n * @example\n * In except, we have the only with a reference parameter with an array, where you need to enter the UID of the reference field in place of \"reference_field_uid\", and the second parameter with an array of fields to except the data of only the specified array of field_uids for each entry and include the data of all other fields.\n * Stack.ContentType('contentTypeUid').Query().includeReference('reference_field_uid').except('reference_field_uid', ['title', 'description']).toJSON().find()\n * @returns {Entry}\n * @instance \n */\n this.except = Utils.transform('except');\n return this;\n }\n\n _createClass(Entry, [{\n key: \"setCacheProvider\",\n value: function setCacheProvider(provider) {\n if (provider && (typeof provider === \"undefined\" ? \"undefined\" : _typeof(provider)) === 'object') {\n this.provider = provider;\n }\n return this;\n }\n }, {\n key: \"setCachePolicy\",\n value: function setCachePolicy(policy) {\n if (typeof policy === 'number' && policy >= -1 && policy < 4) {\n if (!this._query) {\n this.cachePolicy = policy;\n } else {\n this.queryCachePolicy = policy;\n }\n } else {\n console.error(\"Kindly provide the valid policy\");\n }\n return this;\n }\n\n /**\n * @method includeReference\n * @memberOf Entry\n * @description Fetches the entire content of referenced entry(ies). Read More\n * @example\n * .includeReference with reference_field_uids as array \n * var Query = Stack.ContentType(contentTypes.source).Query();\n Query\n .includeReference(['reference_field_uid', 'other_reference_field_uid'])\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including reference entries.\n })\n * @example\n * .includeReference with reference_field_uids and its children reference \n * var Query = Stack.ContentType(contentTypes.source).Query();\n Query\n .includeReference(['reference_field_uid', 'reference_field_uid.child_reference_field_uid'])\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including reference entries.\n })\n * @example\n * .includeReference with reference_field_uids \n * var Query = Stack.ContentType(contentTypes.source).Query(); \n Query\n .includeReference('reference_field_uid')\n .toJSON()\n .find()\n .then(function success(entries) {\n //'entries' is an object used to retrieve data including particular reference using reference_uid.\n })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeReference\",\n value: function includeReference() {\n for (var _len = arguments.length, val = Array(_len), _key = 0; _key < _len; _key++) {\n val[_key] = arguments[_key];\n }\n\n if (Array.isArray(val) || typeof val === \"string\") {\n if (arguments.length) {\n for (var i = 0; i < arguments.length; i++) {\n this._query['include'] = this._query['include'] || [];\n this._query['include'] = this._query['include'].concat(arguments[i]);\n }\n }\n return this;\n } else {\n console.error(\"Argument should be a String or an Array.\");\n }\n }\n\n /**\n * Sets the language code of which you want to retrieve data.\n * @param {String} language_code - language code. e.g. 'en-us', 'ja-jp', etc.\n * @memberOf Entry\n * @example \n * let data = Stack.ContentType(contentTypeUid).Entry(entryUid).language('ja-jp').fetch()\n * data\n * .then(function(result) {\n * // 'result' is an object used to retrieve data of ja-jp language.\n * }, function(error) {\n * // error function\n * })\n * \n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"language\",\n value: function language(language_code) {\n if (language_code && typeof language_code === 'string') {\n this._query['locale'] = language_code;\n return this;\n } else {\n console.error(\"Argument should be a String.\");\n }\n }\n\n /**\n * @method addQuery\n * @memberOf Entry\n * @description Adds query to Entry object\n * @param {String} key - key of the query\n * @param {String} value - value of the query\n * @example Stack.ContentType(contentTypeUid).Entry(entry_uid).addQuery('include_schema',true)\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"addQuery\",\n value: function addQuery(key, value) {\n if (key && value && typeof key === 'string') {\n this._query[key] = value;\n return this;\n } else {\n console.error(\"First argument should be a String.\");\n }\n }\n\n /**\n * @method includeEmbeddedObjects\n * @memberOf Entry\n * @description Include Embedded Objects (Entries and Assets) along with entry/entries details.\n * @example Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeEmbeddedObjects().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeEmbeddedItems\",\n value: function includeEmbeddedItems() {\n this._query['include_embedded_items'] = [\"BASE\"];\n return this;\n }\n\n /**\n * @method includeSchema\n * @memberOf Entry\n * @deprecated since verion 3.3.0\n * @description Include schema of the current content type along with entry/entries details.\n * @example Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeSchema().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeSchema\",\n value: function includeSchema() {\n this._query['include_schema'] = true;\n return this;\n }\n\n /**\n * @method includeReferenceContentTypeUid\n * @memberOf Entry\n * @description This method also includes the content type UIDs of the referenced entries returned in the response.\n * @example Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeReferenceContentTypeUID().fetch()\n * @example \n * Query = Stack.ContentType(\"contentType_uid\").Entry(\"entry_uid\").includeReferenceContentTypeUID().fetch()\n * Query\n * .toJSON()\n * .then(function (result) {\n * let value = result.get(field_uid)\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeReferenceContentTypeUID\",\n value: function includeReferenceContentTypeUID() {\n this._query['include_reference_content_type_uid'] = true;\n return this;\n }\n\n /**\n * @method includeFallback\n * @memberOf Entry\n * @description Include the fallback locale publish content, if specified locale content is not publish.\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeFallback().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeFallback\",\n value: function includeFallback() {\n this._query['include_fallback'] = true;\n return this;\n }\n\n /**\n * @method includeContentType\n * @memberOf Entry\n * @description Include the details of the content type along with the entry/entries details.\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeContentType().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeContentType\",\n value: function includeContentType() {\n this._query['include_content_type'] = true;\n return this;\n }\n\n /**\n * @method includeOwner\n * @memberOf Entry \n * @description Includes the owner details of the entry/entries\n * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeOwner().fetch()\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"includeOwner\",\n value: function includeOwner() {\n this._query['include_owner'] = true;\n return this;\n }\n\n /**\n * @method toJSON\n * @memberOf Entry \n * @description Converts your response into plain JavasScript object.Supports both entry and asset queries.\n * @example\n * Query = Stack.ContentType(contentTypeUid).Entry(entryUid).fetch()\n * Query\n * .toJSON()\n * .then(function (result) {\n * let value = result.get(field_uid)\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n this.tojson = true;\n return this;\n }\n\n /**\n * @method addParam\n * @memberOf Entry \n * @description Includes query parameters in your queries.\n * @example var data = Stack.ContentType(contentTypeUid).Entry(entryUid).addParam('include_count', 'true').fetch()\n * data.then(function (result) {\n * // 'result' is an object which content the data including count in json object form\n * },function (error) {\n * // error function\n * })\n * @returns {Entry}\n * @instance\n */\n\n }, {\n key: \"addParam\",\n value: function addParam(key, value) {\n if (key && value && typeof key === 'string' && typeof value === 'string') {\n this._query[key] = value;\n return this;\n } else {\n console.error(\"Kindly provide valid parameters.\");\n }\n }\n\n /**\n * @method fetch\n * @memberOf Entry \n * @description Fetches a particular entry based on the provided entry UID.\n * @example\n * Stack.ContentType(contentTypeUid).Entry(entryUid).toJSON().fetch()\n * \n * @example\n * Stack.ContentType(contentTypeUid).Entry(entryUid).toJSON().fetch({\n * \n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: \"fetch\",\n value: function fetch(fetchOptions) {\n if (this.entry_uid) {\n this.requestParams = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types + this.content_type_uid + this.config.urls.entries + this.entry_uid,\n body: {\n _method: 'GET',\n query: this._query\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return Utils.sendRequest(this, options);\n } else {\n console.error(\"Kindly provide an entry uid. e.g. .Entry('bltsomething123')\");\n }\n }\n }]);\n\n return Entry;\n}();\n\nexports.default = Entry;\n\n//# sourceURL=webpack://Contentstack/./src/core/modules/entry.js?"); /***/ }), @@ -275,7 +418,7 @@ eval("\n\nvar _createClass = function () { function defineProperties(target, pro /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _config = __webpack_require__(/*! ../../config */ \"./config.js\");\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _utils = __webpack_require__(/*! ./lib/utils */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _entry = __webpack_require__(/*! ./modules/entry */ \"./src/core/modules/entry.js\");\n\nvar _entry2 = _interopRequireDefault(_entry);\n\nvar _assets = __webpack_require__(/*! ./modules/assets */ \"./src/core/modules/assets.js\");\n\nvar _assets2 = _interopRequireDefault(_assets);\n\nvar _query = __webpack_require__(/*! ./modules/query */ \"./src/core/modules/query.js\");\n\nvar _query2 = _interopRequireDefault(_query);\n\nvar _request = __webpack_require__(/*! ./lib/request */ \"./src/core/lib/request.js\");\n\nvar _request2 = _interopRequireDefault(_request);\n\nvar _cache = __webpack_require__(/*! ./cache */ \"./src/core/cache.js\");\n\nvar cache = _interopRequireWildcard(_cache);\n\nvar _index = __webpack_require__(/*! ./cache-provider/index */ \"./src/core/cache-provider/index.js\");\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar errorRetry = [408, 429];\n\n/**\n * @class \n Stack \n * @description Initialize an instance of ‘Stack’\n * @param api_key - Stack API Key.\n * @param delivery_token - Stack Delivery token.\n * @param environment - Stack Environment name.\n * @param region - DB region for Stack.\n * @param fetchOptions - Custom setting for the request.\n * @param fetchOptions.timeout - Set timeout for the request.\n * @param fetchOptions.retryLimit - The number of retries before failure. Default is 5\n * @param fetchOptions.retryDelay - The number of ms to use for operation retries. Default is 300ms\n * @param fetchOptions.retryCondition - A function to determine if the error can be retried. Default retry is on status codes 408, 429, and greter than equal to 500.\n * @param fetchOptions.retryDelayOptions.base - The base number of milliseconds to use in the exponential backoff for operation retries.\n * @param fetchOptions.retryDelayOptions.customBackoff - A custom function that accepts a retry count and error and returns the amount of time to delay in milliseconds.\n * @example\n * var Stack = Contentstack.Stack({\n * 'api_key':'api_key',\n * 'delivery_token':'delivery_token',\n * 'environment':'environment_name',\n * 'region': 'us',\n * 'fetchOptions': {\n * \n * }\n * });\n * \n * @example\n * var Stack = Contentstack.Stack('api_key', 'access_token', 'environment', {\n * \n * });\n * \n * @example\n * // For Setting the European Region:\n * // If you want to set and use European region, refer to the code below:\n * const Stack = Contentstack.Stack(\"api_key\", \"delivery_token\", \"environment_name\", Contentstack.Region.EU);\n * \n * @returns {Stack}\n * @instance\n */\n\nvar Stack = function () {\n function Stack() {\n _classCallCheck(this, Stack);\n\n this.fetchOptions = {\n retryLimit: 5,\n retryCondition: function retryCondition(error) {\n if (errorRetry.includes(error.status)) {\n return true;\n }\n return false;\n }\n };\n this.config = Object.assign({}, _config2.default);\n\n for (var _len = arguments.length, stack_arguments = Array(_len), _key = 0; _key < _len; _key++) {\n stack_arguments[_key] = arguments[_key];\n }\n\n if (stack_arguments[0].region && stack_arguments[0].region !== undefined && stack_arguments[0].region !== \"us\") {\n this.config['host'] = stack_arguments[0].region + \"-\" + \"cdn.contentstack.com\";\n }\n\n if (stack_arguments[0].fetchOptions && stack_arguments[0].fetchOptions !== undefined) {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[0].fetchOptions);\n }\n\n this.cachePolicy = _index2.default.policies.IGNORE_CACHE;\n this.provider = _index2.default.providers('localstorage');\n\n switch (stack_arguments.length) {\n case 1:\n if (_typeof(stack_arguments[0]) === \"object\" && typeof stack_arguments[0].api_key === \"string\" && typeof stack_arguments[0].delivery_token === \"string\" && typeof stack_arguments[0].environment === \"string\") {\n this.headers = {\n api_key: stack_arguments[0].api_key,\n access_token: stack_arguments[0].delivery_token\n };\n this.environment = stack_arguments[0].environment;\n return this;\n } else {\n console.error(\"Kindly provide valid object parameters. The specified API Key, Delivery Token, or Environment Name is invalid.\");\n }\n case 3:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n return this;\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n case 4:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n if (stack_arguments[3]) {\n if (typeof stack_arguments[3] === \"string\" && stack_arguments[3] !== undefined && stack_arguments[3] !== \"us\") {\n this.config['host'] = stack_arguments[3] + \"-\" + \"cdn.contentstack.com\";\n } else if (_typeof(stack_arguments[3]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[3]);\n }\n }\n return this;\n case 5:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n\n if (stack_arguments[3]) {\n if (typeof stack_arguments[3] === \"string\" && stack_arguments[3] !== undefined && stack_arguments[3] !== \"us\") {\n this.config['host'] = stack_arguments[3] + \"-\" + \"cdn.contentstack.com\";\n } else if (_typeof(stack_arguments[3]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[3]);\n }\n }\n if (stack_arguments[4] && _typeof(stack_arguments[4]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[4]);\n }\n return this;\n default:\n console.error(\"Kindly provide valid parameters to initialize the Contentstack javascript-SDK Stack.\");\n }\n }\n\n /**\n * @method setPort\n * @memberOf Stack\n * @description Sets the port of the host\n * @param {Number} port - Port Number\n * @return {Stack}\n * @instance\n * */\n\n\n _createClass(Stack, [{\n key: 'setPort',\n value: function setPort(port) {\n if (typeof port === \"number\") this.config.port = port;\n return this;\n }\n\n /**\n * @method setProtocol\n * @memberOf Stack\n * @description Sets the protocol for the host\n * @param {String} protocol - http/https protocol\n * @return {Stack}\n * @instance\n * */\n\n }, {\n key: 'setProtocol',\n value: function setProtocol(protocol) {\n if (typeof protocol === \"string\" && ~[\"https\", \"http\"].indexOf(protocol)) this.config.protocol = protocol;\n return this;\n }\n\n /**\n * @method setHost\n * @memberOf Stack\n * @description Sets the host of the API server\n * @param {String} host - valid ip or host\n * @return {Stack}\n * @instance\n * */\n\n }, {\n key: 'setHost',\n value: function setHost(host) {\n if (typeof host === \"string\" && host) this.config.host = host;\n return this;\n }\n\n /**\n * @method setCachePolicy\n * @memberOf Stack\n * @description Allows you to set cache policies\n * @param {Constant} [key=ONLY_NETWORK] - Cache policy to be applied on Stack or Query.\n * @example\n * Stack.setCachePolicy(Contentstack.CachePolicy.IGNORE_CACHE)\n * Stack.setCachePolicy(Contentstack.CachePolicy.ONLY_NETWORK)\n * Stack.setCachePolicy(Contentstack.CachePolicy.CACHE_ELSE_NETWORK)\n * Stack.setCachePolicy(Contentstack.CachePolicy.NETWORK_ELSE_CACHE)\n * Stack.setCachePolicy(Contentstack.CachePolicy.CACHE_THEN_NETWORK)\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'setCachePolicy',\n value: function setCachePolicy(policy) {\n if (typeof policy === 'number' && policy >= -1 && policy < 4) {\n if (!this._query) {\n this.cachePolicy = policy;\n } else {\n this.queryCachePolicy = policy;\n }\n } else {\n console.error(\"Kindly provide the valid policy\");\n }\n return this;\n }\n\n /**\n * @method setCacheProvider\n * @memberOf Stack\n * @description Allows you to set an object of the cache provider\n * @example\n * Stack\n * .setCacheProvider({\n * get: function (key, callback) {\n * // custom logic\n * },\n * set: function (key, value, callback) {\n * // custom logic\n * }\n * });\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'setCacheProvider',\n value: function setCacheProvider(provider) {\n if (provider && (typeof provider === 'undefined' ? 'undefined' : _typeof(provider)) === 'object') {\n this.provider = provider;\n }\n return this;\n }\n\n /**\n * @method clearByQuery\n * @memberOf Stack\n * @description 'clearByQuery' function to clear the query from the cache.\n * @example\n * Stack.clearQuery(query, callback);\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'clearByQuery',\n value: function clearByQuery() {\n if (this.provider && typeof this.provider.clearByQuery === 'function') {\n return this.provider.clearByQuery.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method clearByContentType\n * @memberOf Stack\n * @description 'clearByContentType' function to clear the query from the cache by specified content type.\n * @example\n * Stack.clearByContentType(content_type_uid, callback);\n * Stack.clearByContentType(content_type_uid, language_uid, callback);\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'clearByContentType',\n value: function clearByContentType() {\n if (this.provider && typeof this.provider.clearByContentType === 'function') {\n return this.provider.clearByContentType.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method clearAll\n * @memberOf Stack\n * @description 'clearAll' function to clear all the queries from cache.\n * @example\n * Stack.clearAll(callback);\n * @returns {Stack}\n * @instance \n */\n\n }, {\n key: 'clearAll',\n value: function clearAll() {\n if (this.provider && typeof this.provider.clearAll === 'function') {\n return this.provider.clearAll.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method getCacheProvider\n * @memberOf Stack\n * @description Returns the currently set object of 'CacheProvider'\n * @example Stack.getCacheProvider();\n * @returns {object}\n * @instance\n */\n\n }, {\n key: 'getCacheProvider',\n value: function getCacheProvider() {\n return this.provider;\n }\n\n /**\n * @method ContentType\n * @memberOf Stack\n * @description Set the content type of which you want to retrieve the entries\n * @param {String} [content_type_uid] - uid of the existing content type\n * @example \n * let data = Stack.ContentType('blog').Query().toJSON().find()\n * data\n * .then(function(result) {\n * // 'result' content the list of entries of particular content type blog. \n * }, function(error) {\n * // error function\n * })\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'ContentType',\n value: function ContentType(uid) {\n if (uid && typeof uid === 'string') {\n this.content_type_uid = uid;\n this.type = \"contentType\";\n }\n return this;\n }\n\n /**\n * @method Entry\n * @memberOf ContentType\n * @param {String} uid - uid of the entry \n * @description An initializer is responsible for creating Entry object\n * @returns {Entry}\n * @instance \n */\n\n }, {\n key: 'Entry',\n value: function Entry(uid) {\n var entry = new _entry2.default();\n if (uid && typeof uid === \"string\") {\n entry.entry_uid = uid;\n }\n return Utils.merge(entry, this);\n }\n\n /**\n * @method fetch\n * @memberOf ContentType\n * @description This method returns the complete information of a specific content type.\n * @example\n * let single_contenttype = Stack.ContentType(content_type_uid).fetch()\n * single_contenttype\n * .then(function(result) {\n * // 'result' is a single contentType information. \n * }).catch((error) => {\n * console.log(error)\n * });\n * @returns {promise}\n * @instance \n */\n\n }, {\n key: 'fetch',\n value: function fetch(fetchOptions) {\n var result = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types + this.content_type_uid,\n body: {\n _method: 'GET',\n environment: this.environment\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return (0, _request2.default)(result, options);\n }\n\n /**\n * @method Assets\n * @memberOf Stack\n * @param {String} uid - uid of the asset \n * @description Retrieves all assets of a stack by default. To retrieve a single asset, specify its UID.\n * @example \n * // Retrieves all assets\n * let data = Stack.Assets().Query().toJSON().find()\n * data\n * .then(function(result) {\n * // All the asset with limit of 100\n * // Use skip and limit functions to paginate\n * // ‘result’ will display all assets present in stack \n * }, function(error) {\n * // error function\n * })\n * \n * @example \n * let data = Stack.Assets('bltsomething123').toJSON().fetch()\n * data\n * .then(function(result) {\n * // ‘result’ is a single asset object of specified uid \n * }, function(error) {\n * // error function\n * })\n * \n * @returns {Assets}\n * @instance \n */\n\n }, {\n key: 'Assets',\n value: function Assets(uid) {\n this.type = 'asset';\n if (uid && typeof uid === \"string\") {\n var asset = new _assets2.default();\n asset.asset_uid = uid;\n return Utils.merge(asset, this);\n }\n return this;\n }\n\n /**\n * @method Query\n * @memberOf Stack\n * @description An initializer is responsible for creating Query object.Provides support for all search queries\n * @returns {Query}\n * @instance \n */\n\n }, {\n key: 'Query',\n value: function Query() {\n var query = new _query2.default();\n return Utils.merge(query, this);\n }\n\n /**\n * @method getLastActivites\n * @memberOf Stack\n * @description getLastActivites get all the ContentTypes whose last activity updated.\n * @example Stack.getLastActivites()\n * @example \n * let data = Stack.getLastActivites().toJSON().fetch()\n * data\n * .then(function(result) {\n * // 'result' is list of contentTypes whose last activity updated. \n * }, function(error) {\n * // error function\n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'getLastActivities',\n value: function getLastActivities() {\n var query = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types,\n body: {\n _method: 'GET',\n only_last_activity: true,\n environment: this.environment\n }\n };\n return (0, _request2.default)(query, this.fetchOptions);\n }\n\n /**\n * @method getContentTypes\n * @memberOf Stack\n * @param {String} param - Query on contentTypes\n * @description This method returns comprehensive information of all the content types of a particular stack in your account.\n * @example \n * let data = Stack.getContentTypes({\"include_global_field_schema\": true})\n * data\n * .then(function(result) {\n * // 'result' is list of contentTypes. \n * }, function(error) {\n * // error function\n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'getContentTypes',\n value: function getContentTypes() {\n var param = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var query = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types,\n body: {\n _method: 'GET',\n environment: this.environment\n }\n };\n if (param && param !== undefined) {\n for (var key in param) {\n query.body[key] = param[key];\n }\n }\n return (0, _request2.default)(query, this.fetchOptions);\n }\n\n /**\n * @method sync\n * @memberOf Stack\n * @description Syncs your Contentstack data with your app and ensures that the data is always up-to-date by providing delta updates\n * @param {object} params - params is an object that supports ‘locale’, ‘start_date’, ‘content_type_uid’, and ‘type’ queries.\n * @example \n * Stack.sync({'init': true}) // For initializing sync\n * @example \n * Stack.sync({'init': true, 'locale': 'en-us'}) //For initializing sync with entries of a specific locale\n * @example \n * Stack.sync({'init': true, 'start_date': '2018-10-22'}) //For initializing sync with entries published after a specific date\n * @example \n * Stack.sync({'init': true, 'content_type_uid': 'session'}) //For initializing sync with entries of a specific content type\n * @example \n * Stack.sync({'init': true, 'type': 'entry_published'}) //Use the type parameter to get a specific type of content.Supports 'asset_published', 'entry_published', 'asset_unpublished', 'entry_unpublished', 'asset_deleted', 'entry_deleted', 'content_type_deleted'.\n * @example \n * Stack.sync({'pagination_token': ''}) // For fetching the next batch of entries using pagination token\n * @example \n * Stack.sync({'sync_token': ''}) // For performing subsequent sync after initial sync\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'sync',\n value: function sync(params, fetchOptions) {\n this._query = {};\n this._query = Object.assign(this._query, params);\n this.requestParams = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.sync,\n body: {\n _method: 'GET',\n query: this._query\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return Utils.sendRequest(this, options);\n }\n\n /**\n * @method imageTransform\n * @memberOf Stack\n * @description Performs transformations on images of mentioned url based on transformation parameters \n * @param {String} url - Image url on which transformations need to be applied.\n * @param {String} params - Object with transformation parameters\n * @example\n * Stack.imageTransform(imageURL, {height: 100, width: 200, disable: \"upscale\"});\n * @example\n * Stack.imageTransform(imageURL, {crop: \"150,100\"});\n * @example\n * Stack.imageTransform(imageURL, {format: \"png\", crop: \"150,100\"});\n * @returns {string} [Image url with transformation parameters.]\n * @instance\n */\n\n }, {\n key: 'imageTransform',\n value: function imageTransform(url, params) {\n if (url && typeof url === \"string\" && (typeof params === 'undefined' ? 'undefined' : _typeof(params)) === \"object\" && params.length === undefined) {\n var queryParams = [];\n for (var operation in params) {\n queryParams.push(operation + '=' + params[operation]);\n }\n url += url.indexOf(\"?\") <= -1 ? \"?\" + queryParams.join('&') : \"&\" + queryParams.join('&');\n }\n\n return url;\n }\n }]);\n\n return Stack;\n}();\n\nexports.default = Stack;\n\n//# sourceURL=webpack://Contentstack/./src/core/stack.js?"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _config = __webpack_require__(/*! ../../config */ \"./config.js\");\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _utils = __webpack_require__(/*! ./lib/utils */ \"./src/core/lib/utils.js\");\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _entry = __webpack_require__(/*! ./modules/entry */ \"./src/core/modules/entry.js\");\n\nvar _entry2 = _interopRequireDefault(_entry);\n\nvar _assets = __webpack_require__(/*! ./modules/assets */ \"./src/core/modules/assets.js\");\n\nvar _assets2 = _interopRequireDefault(_assets);\n\nvar _query = __webpack_require__(/*! ./modules/query */ \"./src/core/modules/query.js\");\n\nvar _query2 = _interopRequireDefault(_query);\n\nvar _request = __webpack_require__(/*! ./lib/request */ \"./src/core/lib/request.js\");\n\nvar _request2 = _interopRequireDefault(_request);\n\nvar _index = __webpack_require__(/*! ./cache-provider/index */ \"./src/core/cache-provider/index.js\");\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar errorRetry = [408, 429];\n\n/**\n * @class \n Stack \n * @description Initialize an instance of ‘Stack’\n * @param api_key - Stack API Key.\n * @param delivery_token - Stack Delivery token.\n * @param environment - Stack Environment name.\n * @param region - DB region for Stack.\n * @param fetchOptions - Custom setting for the request.\n * @param fetchOptions.timeout - Set timeout for the request.\n * @param fetchOptions.retryLimit - The number of retries before failure. Default is 5\n * @param fetchOptions.retryDelay - The number of ms to use for operation retries. Default is 300ms\n * @param fetchOptions.retryCondition - A function to determine if the error can be retried. Default retry is on status codes 408, 429.\n * @param fetchOptions.retryDelayOptions.base - The base number of milliseconds to use in the exponential backoff for operation retries.\n * @param fetchOptions.retryDelayOptions.customBackoff - A custom function that accepts a retry count and error and returns the amount of time to delay in milliseconds.\n * @example\n * var Stack = Contentstack.Stack({\n * 'api_key':'api_key',\n * 'delivery_token':'delivery_token',\n * 'environment':'environment_name',\n * 'region': 'us',\n * 'fetchOptions': {\n * \n * }\n * });\n * \n * @example\n * var Stack = Contentstack.Stack('api_key', 'access_token', 'environment', {\n * \n * });\n * \n * @example\n * // For Setting the European Region:\n * // If you want to set and use European region, refer to the code below:\n * const Stack = Contentstack.Stack(\"api_key\", \"delivery_token\", \"environment_name\", Contentstack.Region.EU);\n * \n * @returns {Stack}\n * @instance\n */\n\nvar Stack = function () {\n function Stack() {\n _classCallCheck(this, Stack);\n\n this.fetchOptions = {\n retryLimit: 5,\n retryCondition: function retryCondition(error) {\n if (errorRetry.includes(error.status)) {\n return true;\n }\n return false;\n }\n };\n this.config = Object.assign({}, _config2.default);\n\n for (var _len = arguments.length, stack_arguments = Array(_len), _key = 0; _key < _len; _key++) {\n stack_arguments[_key] = arguments[_key];\n }\n\n if (stack_arguments[0].region && stack_arguments[0].region !== undefined && stack_arguments[0].region !== \"us\") {\n this.config['host'] = stack_arguments[0].region + \"-\" + \"cdn.contentstack.com\";\n }\n\n if (stack_arguments[0].fetchOptions && stack_arguments[0].fetchOptions !== undefined) {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[0].fetchOptions);\n }\n\n this.cachePolicy = _index2.default.policies.IGNORE_CACHE;\n this.provider = _index2.default.providers('localstorage');\n\n switch (stack_arguments.length) {\n case 1:\n if (_typeof(stack_arguments[0]) === \"object\" && typeof stack_arguments[0].api_key === \"string\" && typeof stack_arguments[0].delivery_token === \"string\" && typeof stack_arguments[0].environment === \"string\") {\n this.headers = {\n api_key: stack_arguments[0].api_key,\n access_token: stack_arguments[0].delivery_token\n };\n this.environment = stack_arguments[0].environment;\n return this;\n } else {\n console.error(\"Kindly provide valid object parameters. The specified API Key, Delivery Token, or Environment Name is invalid.\");\n }\n case 3:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n return this;\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n case 4:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n if (stack_arguments[3]) {\n if (typeof stack_arguments[3] === \"string\" && stack_arguments[3] !== undefined && stack_arguments[3] !== \"us\") {\n this.config['host'] = stack_arguments[3] + \"-\" + \"cdn.contentstack.com\";\n } else if (_typeof(stack_arguments[3]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[3]);\n }\n }\n return this;\n case 5:\n if (typeof stack_arguments[0] === \"string\" && typeof stack_arguments[1] === \"string\" && typeof stack_arguments[2] === \"string\") {\n this.headers = {\n api_key: stack_arguments[0],\n access_token: stack_arguments[1]\n };\n this.environment = stack_arguments[2];\n } else {\n console.error(\"Kindly provide valid string parameters.\");\n }\n\n if (stack_arguments[3]) {\n if (typeof stack_arguments[3] === \"string\" && stack_arguments[3] !== undefined && stack_arguments[3] !== \"us\") {\n this.config['host'] = stack_arguments[3] + \"-\" + \"cdn.contentstack.com\";\n } else if (_typeof(stack_arguments[3]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[3]);\n }\n }\n if (stack_arguments[4] && _typeof(stack_arguments[4]) === 'object') {\n this.fetchOptions = Object.assign(this.fetchOptions, stack_arguments[4]);\n }\n return this;\n default:\n console.error(\"Kindly provide valid parameters to initialize the Contentstack javascript-SDK Stack.\");\n }\n }\n\n /**\n * @method setPort\n * @memberOf Stack\n * @description Sets the port of the host\n * @param {Number} port - Port Number\n * @return {Stack}\n * @instance\n * */\n\n\n _createClass(Stack, [{\n key: 'setPort',\n value: function setPort(port) {\n if (typeof port === \"number\") this.config.port = port;\n return this;\n }\n\n /**\n * @method setProtocol\n * @memberOf Stack\n * @description Sets the protocol for the host\n * @param {String} protocol - http/https protocol\n * @return {Stack}\n * @instance\n * */\n\n }, {\n key: 'setProtocol',\n value: function setProtocol(protocol) {\n if (typeof protocol === \"string\" && ~[\"https\", \"http\"].indexOf(protocol)) this.config.protocol = protocol;\n return this;\n }\n\n /**\n * @method setHost\n * @memberOf Stack\n * @description Sets the host of the API server\n * @param {String} host - valid ip or host\n * @return {Stack}\n * @instance\n * */\n\n }, {\n key: 'setHost',\n value: function setHost(host) {\n if (typeof host === \"string\" && host) this.config.host = host;\n return this;\n }\n\n /**\n * @method setCachePolicy\n * @memberOf Stack\n * @description Allows you to set cache policies\n * @param {Constant} [key=ONLY_NETWORK] - Cache policy to be applied on Stack or Query.\n * @example\n * Stack.setCachePolicy(Contentstack.CachePolicy.IGNORE_CACHE)\n * Stack.setCachePolicy(Contentstack.CachePolicy.ONLY_NETWORK)\n * Stack.setCachePolicy(Contentstack.CachePolicy.CACHE_ELSE_NETWORK)\n * Stack.setCachePolicy(Contentstack.CachePolicy.NETWORK_ELSE_CACHE)\n * Stack.setCachePolicy(Contentstack.CachePolicy.CACHE_THEN_NETWORK)\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'setCachePolicy',\n value: function setCachePolicy(policy) {\n if (typeof policy === 'number' && policy >= -1 && policy < 4) {\n if (!this._query) {\n this.cachePolicy = policy;\n } else {\n this.queryCachePolicy = policy;\n }\n } else {\n console.error(\"Kindly provide the valid policy\");\n }\n return this;\n }\n\n /**\n * @method setCacheProvider\n * @memberOf Stack\n * @description Allows you to set an object of the cache provider\n * @example\n * Stack\n * .setCacheProvider({\n * get: function (key, callback) {\n * // custom logic\n * },\n * set: function (key, value, callback) {\n * // custom logic\n * }\n * });\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'setCacheProvider',\n value: function setCacheProvider(provider) {\n if (provider && (typeof provider === 'undefined' ? 'undefined' : _typeof(provider)) === 'object') {\n this.provider = provider;\n }\n return this;\n }\n\n /**\n * @method clearByQuery\n * @memberOf Stack\n * @description 'clearByQuery' function to clear the query from the cache.\n * @example\n * Stack.clearQuery(query, callback);\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'clearByQuery',\n value: function clearByQuery() {\n if (this.provider && typeof this.provider.clearByQuery === 'function') {\n return this.provider.clearByQuery.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method clearByContentType\n * @memberOf Stack\n * @description 'clearByContentType' function to clear the query from the cache by specified content type.\n * @example\n * Stack.clearByContentType(content_type_uid, callback);\n * Stack.clearByContentType(content_type_uid, language_uid, callback);\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'clearByContentType',\n value: function clearByContentType() {\n if (this.provider && typeof this.provider.clearByContentType === 'function') {\n return this.provider.clearByContentType.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method clearAll\n * @memberOf Stack\n * @description 'clearAll' function to clear all the queries from cache.\n * @example\n * Stack.clearAll(callback);\n * @returns {Stack}\n * @instance \n */\n\n }, {\n key: 'clearAll',\n value: function clearAll() {\n if (this.provider && typeof this.provider.clearAll === 'function') {\n return this.provider.clearAll.apply(this.provider, arguments);\n }\n }\n\n /**\n * @method getCacheProvider\n * @memberOf Stack\n * @description Returns the currently set object of 'CacheProvider'\n * @example Stack.getCacheProvider();\n * @returns {object}\n * @instance\n */\n\n }, {\n key: 'getCacheProvider',\n value: function getCacheProvider() {\n return this.provider;\n }\n\n /**\n * @method ContentType\n * @memberOf Stack\n * @description Set the content type of which you want to retrieve the entries\n * @param {String} [content_type_uid] - uid of the existing content type\n * @example \n * let data = Stack.ContentType('blog').Query().toJSON().find()\n * data\n * .then(function(result) {\n * // 'result' content the list of entries of particular content type blog. \n * }, function(error) {\n * // error function\n * })\n * @returns {Stack}\n * @instance\n */\n\n }, {\n key: 'ContentType',\n value: function ContentType(uid) {\n if (uid && typeof uid === 'string') {\n this.content_type_uid = uid;\n this.type = \"contentType\";\n }\n return this;\n }\n\n /**\n * @method Entry\n * @memberOf ContentType\n * @param {String} uid - uid of the entry \n * @description An initializer is responsible for creating Entry object\n * @returns {Entry}\n * @instance \n */\n\n }, {\n key: 'Entry',\n value: function Entry(uid) {\n var entry = new _entry2.default();\n if (uid && typeof uid === \"string\") {\n entry.entry_uid = uid;\n }\n return Utils.merge(entry, this);\n }\n\n /**\n * @method fetch\n * @memberOf ContentType\n * @description This method returns the complete information of a specific content type.\n * @example\n * let single_contenttype = Stack.ContentType(content_type_uid).fetch()\n * single_contenttype\n * .then(function(result) {\n * // 'result' is a single contentType information. \n * }).catch((error) => {\n * console.log(error)\n * });\n * @returns {promise}\n * @instance \n */\n\n }, {\n key: 'fetch',\n value: function fetch(fetchOptions) {\n var result = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types + this.content_type_uid,\n body: {\n _method: 'GET',\n environment: this.environment\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return (0, _request2.default)(result, options);\n }\n\n /**\n * @method Assets\n * @memberOf Stack\n * @param {String} uid - uid of the asset \n * @description Retrieves all assets of a stack by default. To retrieve a single asset, specify its UID.\n * @example \n * // Retrieves all assets\n * let data = Stack.Assets().Query().toJSON().find()\n * data\n * .then(function(result) {\n * // All the asset with limit of 100\n * // Use skip and limit functions to paginate\n * // ‘result’ will display all assets present in stack \n * }, function(error) {\n * // error function\n * })\n * \n * @example \n * let data = Stack.Assets('bltsomething123').toJSON().fetch()\n * data\n * .then(function(result) {\n * // ‘result’ is a single asset object of specified uid \n * }, function(error) {\n * // error function\n * })\n * \n * @returns {Assets}\n * @instance \n */\n\n }, {\n key: 'Assets',\n value: function Assets(uid) {\n this.type = 'asset';\n if (uid && typeof uid === \"string\") {\n var asset = new _assets2.default();\n asset.asset_uid = uid;\n return Utils.merge(asset, this);\n }\n return this;\n }\n\n /**\n * @method Query\n * @memberOf Stack\n * @description An initializer is responsible for creating Query object.Provides support for all search queries\n * @returns {Query}\n * @instance \n */\n\n }, {\n key: 'Query',\n value: function Query() {\n var query = new _query2.default();\n return Utils.merge(query, this);\n }\n\n /**\n * @method getLastActivities\n * @memberOf Stack\n * @description getLastActivities get all the ContentTypes whose last activity updated.\n * @example Stack.getLastActivities()\n * @example \n * let data = Stack.getLastActivities().toJSON().fetch()\n * data\n * .then(function(result) {\n * // 'result' is list of contentTypes whose last activity updated. \n * }, function(error) {\n * // error function\n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'getLastActivities',\n value: function getLastActivities() {\n var query = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types,\n body: {\n _method: 'GET',\n only_last_activity: true,\n environment: this.environment\n }\n };\n return (0, _request2.default)(query, this.fetchOptions);\n }\n\n /**\n * @method getContentTypes\n * @memberOf Stack\n * @param {String} param - Query on contentTypes\n * @description This method returns comprehensive information of all the content types of a particular stack in your account.\n * @example \n * let data = Stack.getContentTypes({\"include_global_field_schema\": true})\n * data\n * .then(function(result) {\n * // 'result' is list of contentTypes. \n * }, function(error) {\n * // error function\n * })\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'getContentTypes',\n value: function getContentTypes() {\n var param = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var query = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types,\n body: {\n _method: 'GET',\n environment: this.environment\n }\n };\n if (param && param !== undefined) {\n for (var key in param) {\n query.body[key] = param[key];\n }\n }\n return (0, _request2.default)(query, this.fetchOptions);\n }\n\n /**\n * @method sync\n * @memberOf Stack\n * @description Syncs your Contentstack data with your app and ensures that the data is always up-to-date by providing delta updates\n * @param {object} params - params is an object that supports ‘locale’, ‘start_date’, ‘content_type_uid’, and ‘type’ queries.\n * @example \n * Stack.sync({'init': true}) // For initializing sync\n * @example \n * Stack.sync({'init': true, 'locale': 'en-us'}) //For initializing sync with entries of a specific locale\n * @example \n * Stack.sync({'init': true, 'start_date': '2018-10-22'}) //For initializing sync with entries published after a specific date\n * @example \n * Stack.sync({'init': true, 'content_type_uid': 'session'}) //For initializing sync with entries of a specific content type\n * @example \n * Stack.sync({'init': true, 'type': 'entry_published'}) //Use the type parameter to get a specific type of content.Supports 'asset_published', 'entry_published', 'asset_unpublished', 'entry_unpublished', 'asset_deleted', 'entry_deleted', 'content_type_deleted'.\n * @example \n * Stack.sync({'pagination_token': ''}) // For fetching the next batch of entries using pagination token\n * @example \n * Stack.sync({'sync_token': ''}) // For performing subsequent sync after initial sync\n * @returns {promise}\n * @instance\n */\n\n }, {\n key: 'sync',\n value: function sync(params, fetchOptions) {\n this._query = {};\n this._query = Object.assign(this._query, params);\n this.requestParams = {\n method: 'POST',\n headers: this.headers,\n url: this.config.protocol + \"://\" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.sync,\n body: {\n _method: 'GET',\n query: this._query\n }\n };\n var options = Object.assign({}, this.fetchOptions, fetchOptions);\n return Utils.sendRequest(this, options);\n }\n\n /**\n * @method imageTransform\n * @memberOf Stack\n * @description Performs transformations on images of mentioned url based on transformation parameters \n * @param {String} url - Image url on which transformations need to be applied.\n * @param {String} params - Object with transformation parameters\n * @example\n * Stack.imageTransform(imageURL, {height: 100, width: 200, disable: \"upscale\"});\n * @example\n * Stack.imageTransform(imageURL, {crop: \"150,100\"});\n * @example\n * Stack.imageTransform(imageURL, {format: \"png\", crop: \"150,100\"});\n * @returns {string} [Image url with transformation parameters.]\n * @instance\n */\n\n }, {\n key: 'imageTransform',\n value: function imageTransform(url, params) {\n if (url && typeof url === \"string\" && (typeof params === 'undefined' ? 'undefined' : _typeof(params)) === \"object\" && params.length === undefined) {\n var queryParams = [];\n for (var operation in params) {\n queryParams.push(operation + '=' + params[operation]);\n }\n url += url.indexOf(\"?\") <= -1 ? \"?\" + queryParams.join('&') : \"&\" + queryParams.join('&');\n }\n\n return url;\n }\n }]);\n\n return Stack;\n}();\n\nexports.default = Stack;\n\n//# sourceURL=webpack://Contentstack/./src/core/stack.js?"); /***/ }), diff --git a/dist/web/contentstack.js b/dist/web/contentstack.js index 0fdc9bd2..2fd71970 100644 --- a/dist/web/contentstack.js +++ b/dist/web/contentstack.js @@ -1,4 +1,4 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Contentstack=t():e.Contentstack=t()}(window,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=8)}([function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.transform=function(e){return function(){switch(this._query[e]=this._query[e]||{},arguments.length){case 1:if(Array.isArray(arguments[0])||"string"==typeof arguments[0]){var t=this._query[e].BASE||[];return t=t.concat(arguments[0]),this._query[e].BASE=t,this}console.error("Kindly provide valid parameters");break;case 2:if("string"==typeof arguments[0]&&(Array.isArray(arguments[1])||"string"==typeof arguments[1])){var r=this._query[e][arguments[0]]||[];return r=r.concat(arguments[1]),this._query[e][arguments[0]]=r,this}console.error("Kindly provide valid parameters");break;default:console.error("Kindly provide valid parameters")}}},t._type=function(e){var t=void 0===e?"undefined":n(e);switch(t){case"object":t,Array.isArray(e)&&(t="array");break;default:t}return t},t.mergeDeep=function(e,t){var r=this;return function e(t,n){for(var o in n)"object"==r._type(n[o])&&r._type(t[o])==r._type(n[o])?e(t[o],n[o]):"array"==r._type(n[o])&&r._type(t[o])==r._type(n[o])?t[o]=t[o].concat(n[o]):t[o]=n[o]}(e,t),e},t.merge=u,t.isBrowser=function(){return"undefined"!=typeof window&&"object"===(void 0===e?"undefined":n(e))&&"browser"===e.title},t.parseQueryFromParams=c,t.getHash=a,t.generateHash=f,t.resultWrapper=l,t.spreadResult=y,t.sendRequest=function(e,t){var r=e.environment_uid;r?e._query.environment_uid=r:(e._query||(e._query={}),e._query.environment=e.environment);var i=e,s=void 0!==i.queryCachePolicy?i.queryCachePolicy:i.cachePolicy,f=void 0!==i.tojson&&i.tojson,h=!!(i.entry_uid||i.singleEntry||i.asset_uid),d=a(c(i,h,f));if(e&&e.requestParams&&e.requestParams.body&&e.requestParams.body.query){var p=JSON.parse(JSON.stringify(e.requestParams.body.query));"object"!==(void 0===p?"undefined":n(p))&&(p=JSON.parse(p)),delete e.requestParams.body.query,e.requestParams.body=u(e.requestParams.body,p)}var v=function(){return function(e,t){return new Promise((function(r,n){try{if(e)throw e;f||(t=l(t)),r(y(t))}catch(e){n(e)}}))}},_=function(r,n,u){r&&(0,o.default)(e.requestParams,t).then(function(t){try{i.entry_uid=i.asset_uid=i.tojson=i.queryCachePolicy=void 0;var r={},o={};if(e.singleEntry)if(e.singleEntry=!1,t.schema&&(r.schema=t.schema),t.content_type&&(r.content_type=t.content_type,delete r.schema),t.entries&&t.entries.length)r.entry=t.entries[0];else{if(!t.assets||!t.assets.length)return 2!==s||null===i.provider?u({error_code:141,error_message:"The requested entry doesn't exist."}):void i.provider.get(d,v());r.assets=t.assets[0]}else t.items?o={items:t.items,pagination_token:t.pagination_token,sync_token:t.sync_token,total_count:t.total_count}:r=t;return-1!==s&&null!==i.provider?(i.provider.set(d,r,(function(e){try{if(e)throw e;return f||(r=l(r)),n(y(r))}catch(e){return u(e)}})),n(y(r))):Object.keys(o).length?n(o):(f||(r=l(r)),n(y(r)))}catch(e){return u({message:e.message})}}.bind(i)).catch((function(e){if(2!==s||null===i.provider)return u(e);i.provider.get(d,v())}))};switch(s){case 1:return new Promise((function(e,t){null!==i.provider?i.provider.get(d,(function(r,n){try{if(!r&&n)return f||(n=l(n)),e(y(n));_(!0,e,t)}catch(e){return t(e)}})):_(!0,e,t)}));case 2:case 0:case void 0:case-1:return new Promise((function(e,t){_(!0,e,t)}))}if(3===s){return new Promise((function(e,t){null!==i.provider&&i.provider.get(d,(function(r,n){try{r||!n?t(r):(f||(n=l(n)),e(y(n)))}catch(e){t(e)}}))})).then((function(){return new Promise((function(e,t){_(!0,e,t)}))})).catch((function(e){return new Promise((function(e,t){_(!0,e,t)}))}))}};var o=s(r(2)),i=s(r(14));function s(e){return e&&e.__esModule?e:{default:e}}function u(e,t){if(e&&t)for(var r in t)e[r]=t[r];return e}function c(e,t,r){if(e&&e.requestParams){var n=u({},e.requestParams.body&&e.requestParams.body.query||{});return n.environment_uid&&(delete n.environment_uid,n.environment=e.environment),n.environment=e.environment,{content_type_uid:e.content_type_uid,locale:n.locale||"en-us",query:n,entry_uid:e.entry_uid,asset_uid:e.asset_uid,single:t||"false",toJSON:r||"false",api_key:e.requestParams.headers?e.requestParams.headers.api_key:""}}}function a(e){try{var t=f(JSON.stringify(e)),r=[];return r.push(e.content_type_uid),r.push(e.locale),e.entry_uid&&r.push(e.entry_uid),e.asset_uid&&r.push(e.asset_uid),r.push(t),r.join(".")}catch(e){}}function f(e){var t,r=0,n=void 0;if(0===e.length)return r;for(n=0,t=e.length;n=-1&&e<4?this._query?this.queryCachePolicy=e:this.cachePolicy=e:console.error("Kindly provide the valid policy"),this}},{key:"setCacheProvider",value:function(e){return e&&"object"===(void 0===e?"undefined":n(e))&&(this.provider=e),this}},{key:"clearByQuery",value:function(){if(this.provider&&"function"==typeof this.provider.clearByQuery)return this.provider.clearByQuery.apply(this.provider,arguments)}},{key:"clearByContentType",value:function(){if(this.provider&&"function"==typeof this.provider.clearByContentType)return this.provider.clearByContentType.apply(this.provider,arguments)}},{key:"clearAll",value:function(){if(this.provider&&"function"==typeof this.provider.clearAll)return this.provider.clearAll.apply(this.provider,arguments)}},{key:"getCacheProvider",value:function(){return this.provider}},{key:"ContentType",value:function(e){return e&&"string"==typeof e&&(this.content_type_uid=e,this.type="contentType"),this}},{key:"Entry",value:function(e){var t=new u.default;return e&&"string"==typeof e&&(t.entry_uid=e),s.merge(t,this)}},{key:"fetch",value:function(e){var t={method:"POST",headers:this.headers,url:this.config.protocol+"://"+this.config.host+":"+this.config.port+"/"+this.config.version+this.config.urls.content_types+this.content_type_uid,body:{_method:"GET",environment:this.environment}},r=Object.assign({},this.fetchOptions,e);return(0,f.default)(t,r)}},{key:"Assets",value:function(e){if(this.type="asset",e&&"string"==typeof e){var t=new c.default;return t.asset_uid=e,s.merge(t,this)}return this}},{key:"Query",value:function(){var e=new a.default;return s.merge(e,this)}},{key:"getLastActivities",value:function(){var e={method:"POST",headers:this.headers,url:this.config.protocol+"://"+this.config.host+":"+this.config.port+"/"+this.config.version+this.config.urls.content_types,body:{_method:"GET",only_last_activity:!0,environment:this.environment}};return(0,f.default)(e,this.fetchOptions)}},{key:"getContentTypes",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={method:"POST",headers:this.headers,url:this.config.protocol+"://"+this.config.host+":"+this.config.port+"/"+this.config.version+this.config.urls.content_types,body:{_method:"GET",environment:this.environment}};if(e&&void 0!==e)for(var r in e)t.body[r]=e[r];return(0,f.default)(t,this.fetchOptions)}},{key:"sync",value:function(e,t){this._query={},this._query=Object.assign(this._query,e),this.requestParams={method:"POST",headers:this.headers,url:this.config.protocol+"://"+this.config.host+":"+this.config.port+"/"+this.config.version+this.config.urls.sync,body:{_method:"GET",query:this._query}};var r=Object.assign({},this.fetchOptions,t);return s.sendRequest(this,r)}},{key:"imageTransform",value:function(e,t){if(e&&"string"==typeof e&&"object"===(void 0===t?"undefined":n(t))&&void 0===t.length){var r=[];for(var o in t)r.push(o+"="+t[o]);e+=e.indexOf("?")<=-1?"?"+r.join("&"):"&"+r.join("&")}return e}}]),e}();t.default=v},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=function(e,t){return new Promise((function(r,o){var i=void 0,c=e.url,a=e.headers;return a["Content-Type"]="application/json; charset=UTF-8",a["X-User-Agent"]="contentstack-web/3.12.2",e.body&&"object"===n(e.body)&&(delete e.body._method,"object"===n(e.body.query)&&0===Object.keys(e.body.query).length&&delete e.body.query,i=function e(t,r){var o=[],i=void 0;if("object"===(void 0===t?"undefined":n(t))&&void 0!==t.length)for(var s=0,u=t.length;s2&&void 0!==arguments[2]?arguments[2]:300,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5,i=arguments[4],c=arguments[5],a=arguments[6],f=Object.assign({method:"GET",headers:r,timeout:3e4},i);function l(s){if(0===o)a(s);else{var f=n;o-=1;var l=i.retryLimit-o;i.retryDelayOptions&&(i.retryDelayOptions.base?f=i.retryDelayOptions.base*l:i.retryDelayOptions.customBackoff&&(f=i.retryDelayOptions.customBackoff(l,s))),u(f).then((function(){return e(t,r,n,o,i,c,a)}))}}(0,s.default)(t,f).then((function(e){var t=e.json();e.ok&&200===e.status?c(t):t.then((function(t){i.retryCondition&&i.retryCondition(e)?l(t):a(t)})).catch((function(){a({status:e.status,statusText:e.statusText})}))})).catch((function(e){a(e)}))}(c+"?"+i,a,t.retryDelay,t.retryLimit,t,r,o)}))};!function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);t.default=e}(r(0));var o,i=r(10),s=(o=i)&&o.__esModule?o:{default:o};function u(e){return new Promise((function(t){setTimeout(t,e)}))}},function(e,t,r){"use strict";var n,o,i=e.exports={};function s(){throw new Error("setTimeout has not been defined")}function u(){throw new Error("clearTimeout has not been defined")}function c(e){if(n===setTimeout)return setTimeout(e,0);if((n===s||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:s}catch(e){n=s}try{o="function"==typeof clearTimeout?clearTimeout:u}catch(e){o=u}}();var a,f=[],l=!1,y=-1;function h(){l&&a&&(l=!1,a.length?f=a.concat(f):y=-1,f.length&&d())}function d(){if(!l){var e=c(h);l=!0;for(var t=f.length;t;){for(a=f,f=[];++y1)for(var r=1;r=-1&&e<4?this._query?this.queryCachePolicy=e:this.cachePolicy=e:console.error("Kindly provide the valid policy"),this}},{key:"includeReference",value:function(){for(var e=arguments.length,t=Array(e),r=0;r=-1&&e<4?this._query?this.queryCachePolicy=e:this.cachePolicy=e:console.error("Kindly provide the valid policy"),this}},{key:"setCacheProvider",value:function(e){return e&&"object"===(void 0===e?"undefined":n(e))&&(this.provider=e),this}},{key:"clearByQuery",value:function(){if(this.provider&&"function"==typeof this.provider.clearByQuery)return this.provider.clearByQuery.apply(this.provider,arguments)}},{key:"clearByContentType",value:function(){if(this.provider&&"function"==typeof this.provider.clearByContentType)return this.provider.clearByContentType.apply(this.provider,arguments)}},{key:"clearAll",value:function(){if(this.provider&&"function"==typeof this.provider.clearAll)return this.provider.clearAll.apply(this.provider,arguments)}},{key:"getCacheProvider",value:function(){return this.provider}},{key:"ContentType",value:function(e){return e&&"string"==typeof e&&(this.content_type_uid=e,this.type="contentType"),this}},{key:"Entry",value:function(e){var r=new s.default;return e&&"string"==typeof e&&(r.entry_uid=e),a.merge(r,this)}},{key:"fetch",value:function(e){var r={method:"POST",headers:this.headers,url:this.config.protocol+"://"+this.config.host+":"+this.config.port+"/"+this.config.version+this.config.urls.content_types+this.content_type_uid,body:{_method:"GET",environment:this.environment}},t=Object.assign({},this.fetchOptions,e);return(0,l.default)(r,t)}},{key:"Assets",value:function(e){if(this.type="asset",e&&"string"==typeof e){var r=new u.default;return r.asset_uid=e,a.merge(r,this)}return this}},{key:"Query",value:function(){var e=new c.default;return a.merge(e,this)}},{key:"getLastActivities",value:function(){var e={method:"POST",headers:this.headers,url:this.config.protocol+"://"+this.config.host+":"+this.config.port+"/"+this.config.version+this.config.urls.content_types,body:{_method:"GET",only_last_activity:!0,environment:this.environment}};return(0,l.default)(e,this.fetchOptions)}},{key:"getContentTypes",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r={method:"POST",headers:this.headers,url:this.config.protocol+"://"+this.config.host+":"+this.config.port+"/"+this.config.version+this.config.urls.content_types,body:{_method:"GET",environment:this.environment}};if(e&&void 0!==e)for(var t in e)r.body[t]=e[t];return(0,l.default)(r,this.fetchOptions)}},{key:"sync",value:function(e,r){this._query={},this._query=Object.assign(this._query,e),this.requestParams={method:"POST",headers:this.headers,url:this.config.protocol+"://"+this.config.host+":"+this.config.port+"/"+this.config.version+this.config.urls.sync,body:{_method:"GET",query:this._query}};var t=Object.assign({},this.fetchOptions,r);return a.sendRequest(this,t)}},{key:"imageTransform",value:function(e,r){if(e&&"string"==typeof e&&"object"===(void 0===r?"undefined":n(r))&&void 0===r.length){var t=[];for(var o in r)t.push(o+"="+r[o]);e+=e.indexOf("?")<=-1?"?"+t.join("&"):"&"+t.join("&")}return e}}]),e}();r.default=g},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};r.default=function(e,r){return new Promise((function(t,o){var i=void 0,u=e.url,c=e.headers;return c["Content-Type"]="application/json; charset=UTF-8",c["X-User-Agent"]="contentstack-web/3.13.0",e.body&&"object"===n(e.body)&&(delete e.body._method,"object"===n(e.body.query)&&0===Object.keys(e.body.query).length&&delete e.body.query,i=function e(r,t){var o=[],i=void 0;if("object"===(void 0===r?"undefined":n(r))&&void 0!==r.length)for(var a=0,s=r.length;a2&&void 0!==arguments[2]?arguments[2]:300,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5,i=arguments[4],u=arguments[5],c=arguments[6],l=Object.assign({method:"GET",headers:t,timeout:3e4},i);function p(a){if(0===o)c(a);else{var l=n;o-=1;var p=i.retryLimit-o;i.retryDelayOptions&&(i.retryDelayOptions.base?l=i.retryDelayOptions.base*p:i.retryDelayOptions.customBackoff&&(l=i.retryDelayOptions.customBackoff(p,a))),s(l).then((function(){return e(r,t,n,o,i,u,c)}))}}(0,a.default)(r,l).then((function(e){var r=e.json();e.ok&&200===e.status?u(r):r.then((function(r){i.retryCondition&&i.retryCondition(e)?p(r):c(r)})).catch((function(){c({status:e.status,statusText:e.statusText})}))})).catch((function(e){c(e)}))}(u+"?"+i,c,r.retryDelay,r.retryLimit,r,t,o)}))};!function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t]);r.default=e}(t(0));var o,i=t(15),a=(o=i)&&o.__esModule?o:{default:o};function s(e){return new Promise((function(r){setTimeout(r,e)}))}},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.default={protocol:"https",host:"cdn.contentstack.io",port:443,version:"v3",urls:{sync:"/stacks/sync",content_types:"/content_types/",entries:"/entries/",assets:"/assets/",environments:"/environments/"}}},function(e,r,t){"use strict";var n,o,i=e.exports={};function a(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function u(e){if(n===setTimeout)return setTimeout(e,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(r){try{return n.call(null,e,0)}catch(r){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(e){n=a}try{o="function"==typeof clearTimeout?clearTimeout:s}catch(e){o=s}}();var c,l=[],p=!1,f=-1;function d(){p&&c&&(p=!1,c.length?l=c.concat(l):f=-1,l.length&&h())}function h(){if(!p){var e=u(d);p=!0;for(var r=l.length;r;){for(c=l,l=[];++f1)for(var t=1;t=-1&&e<4?this._query?this.queryCachePolicy=e:this.cachePolicy=e:console.error("Kindly provide the valid policy"),this}},{key:"includeReference",value:function(){for(var e=arguments.length,r=Array(e),t=0;t",t=i.parse(r);t.querySelectorAll(".embedded-entry").forEach((function(r){e(r.outerHTML,c(u(r)))})),t.querySelectorAll(".embedded-asset").forEach((function(r){e(r.outerHTML,c(u(r)))}))};var p=((l={})[a.BLOCK]=function(e){return"

"+(e.title||e.uid)+"

Content type: "+e._content_type_uid+"

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

(static) render

+ + + + +
+ Renders embedded objects in Rich text from Entry or Multiple Entry Object. +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +

(static) renderContent

+ + + + +
+ Renders embedded objects in Rich text from String or String of array. +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + diff --git a/js-sdk-reference/Entry.html b/js-sdk-reference/Entry.html index b80b37a9..30a725ef 100644 --- a/js-sdk-reference/Entry.html +++ b/js-sdk-reference/Entry.html @@ -33,7 +33,7 @@
@@ -1029,6 +1029,85 @@
Example
+

includeEmbeddedObjects() → {Entry}

+ + + + + +
+ Include Embedded Objects (Entries and Assets) along with entry/entries details. +
+ + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Example
+ +
Stack.ContentType("contentType_uid").Entry("entry_uid").includeEmbeddedObjects().fetch()
+ + + + + + + + +

includeSchema() → {Entry}

diff --git a/js-sdk-reference/Query.html b/js-sdk-reference/Query.html index 56c7c6fc..ee56c3d0 100644 --- a/js-sdk-reference/Query.html +++ b/js-sdk-reference/Query.html @@ -33,7 +33,7 @@
diff --git a/js-sdk-reference/Result.html b/js-sdk-reference/Result.html index 86b04a9a..5b0140e5 100644 --- a/js-sdk-reference/Result.html +++ b/js-sdk-reference/Result.html @@ -33,7 +33,7 @@
diff --git a/js-sdk-reference/Stack.html b/js-sdk-reference/Stack.html index b30471e5..e87ec5f5 100644 --- a/js-sdk-reference/Stack.html +++ b/js-sdk-reference/Stack.html @@ -33,7 +33,7 @@
@@ -241,7 +241,7 @@
Properties
- A function to determine if the error can be retried. Default retry is on status codes 408, 429, and greter than equal to 500. + A function to determine if the error can be retried. Default retry is on status codes 408, 429. diff --git a/js-sdk-reference/contentstack.js.html b/js-sdk-reference/contentstack.js.html index 88a32129..ef1d43a3 100644 --- a/js-sdk-reference/contentstack.js.html +++ b/js-sdk-reference/contentstack.js.html @@ -33,7 +33,7 @@
@@ -50,7 +50,7 @@

contentstack.js

import Stack from "./stack";
 import CacheProvider from './cache-provider/index';
 import ContentstackRegion from "./contentstackregion";
-
+import {render , renderContent} from '@contentstack/utils';
 
  /**
  * @class 
@@ -74,6 +74,26 @@ 

contentstack.js

*/ this.CachePolicy = CacheProvider.policies; this.Region = ContentstackRegion; + + this.Utils = { + /** + * @memberof Contentstack + * @description Renders embedded objects in Rich text from Entry or Multiple Entry Object. + * + * @param {EntryEmbedable| EntryEmbedable[]} entry - Objects that contains RTE with embedded objects + * @param {string[]} keyPaths - Key paths for RTE contents in Entry object + * @param {RenderOption?} renderOption - Optional render options to render content + */ + render, + /** + * @memberof Contentstack + * @description Renders embedded objects in Rich text from String or String of array. + * @param {string | string[]} content - RTE content to render + * @param {EntryEmbedable} options.entry - Entry object containing embedded objects + * @param {RenderOption?} options.renderOption - Optional render options to render content + */ + renderContent + } } /** diff --git a/js-sdk-reference/index.html b/js-sdk-reference/index.html index 435cb7df..72454138 100644 --- a/js-sdk-reference/index.html +++ b/js-sdk-reference/index.html @@ -33,7 +33,7 @@
@@ -104,37 +104,41 @@

Initializing your SDK

Once you have initialized the SDK, you can start getting content in your app.

Querying content from your stack

To get a single entry, you need to specify the content type as well as the ID of the entry.

-
const Query = Stack.ContentType('blog').Entry("blt123something");
+            
const Stack = Contentstack.Stack("stack_api_key", "delivery_token", "environment_name");
 
-            Query.fetch()
-            .then(function success(entry) {
-            console.log(entry.get('title')); // Retrieve field value by providing a field's uid
-            console.log(entry.toJSON()); // Convert the entry result object to JSON
-            }, function error(err) {
-            // err object
-            });
+const Query = Stack.ContentType('blog').Entry("blt123something");
+
+Query.fetch()
+.then(function success(entry) {
+    console.log(entry.get('title')); // Retrieve field value by providing a field's uid
+    console.log(entry.toJSON()); // Convert the entry result object to JSON
+}, function error(err) {
+    // err object
+});
             

Note: We have a method on query for a specific language. For example, consider the following query:

Stack.ContentType(type).Query().language('fr-fr').toJSON().find()
It will provide all entries of a content type published on the French locale.

To retrieve multiple entries of a content type, you need to specify the content type uid. You can also specify search parameters to filter results.

-
const Query = Stack.ContentType('blog').Query();
-
-            Query 
-            .where("title", "welcome")
-            .includeSchema()
-            .includeCount()
-            .toJSON()
-            .find()
-            .then(function success(result) {
-                // result is array where -
-                // result[0] =&gt; entry objects
-                // result[result.length-1] =&gt; entry objects count included only when .includeCount() is queried.
-                // result[1] =&gt; schema of the content type is included when .includeSchema() is queried.
-            }, function error(err) {
-            // err object
-            });
-            
+
const Stack = Contentstack.Stack("stack_api_key", "delivery_token", "environment_name");
+
+const Query = Stack.ContentType('blog').Query();
+
+Query 
+.where("title", "welcome")
+.includeSchema()
+.includeCount()
+.toJSON()
+.find()
+.then(function success(result) {
+    // result is array where -
+    // result[0] =&gt; entry objects
+    // result[result.length-1] =&gt; entry objects count included only when .includeCount() is queried.
+    // result[1] =&gt; schema of the content type is included when .includeSchema() is queried.
+}, function error(err) {
+    // err object
+});
+

Note: Currently, the JavaScript SDK does not support multiple content types referencing in a single query. For more information on how to query entries and assets, refer the Queries section of our Content Delivery API documentation.

Paginating Responses

@@ -144,38 +148,42 @@

Paginating Responses

let blogQuery = Stack.ContentType('example').Query(); let data = blogQuery.skip(20).limit(20).find() data.then(function(result) { - // result is array where - - // result[0] =&gt; entry objects - },function (error) { - // error function - })
+ // result is array where - + // result[0] =&gt; entry objects + },function (error) { + // error function + })

Querying Assets from your stack

To get a single asset, you need to specify the UID of the asset.

-
const Asset = Stack.Asset("blt123something");
+            
const Stack = Contentstack.Stack("stack_api_key", "delivery_token", "environment_name");
 
-            Asset.fetch()
-            .then(function success(asset) {
-            console.log(asset.get('title')); // Retrieve field value by providing a field's uid
-            console.log(asset.toJSON()); // Convert the entry result object to JSON
-            }, function error(err) {
-            // err object
-            });
+const Asset = Stack.Asset("blt123something");
+
+Asset.fetch()
+.then(function success(asset) {
+    console.log(asset.get('title')); // Retrieve field value by providing a field's uid
+    console.log(asset.toJSON()); // Convert the entry result object to JSON
+}, function error(err) {
+    // err object
+});
             

To retrieve multiple assets. You can also specify search parameters to filter results.

-
const Query = Stack.Asset().Query();
+
const Stack = Contentstack.Stack("stack_api_key", "delivery_token", "environment_name");
 
-            Query
-            .limit(20)
-            .toJSON()
-            .find()
-            .then(function success(result) {
-                // result is array where -
-                // result[0] =&gt; asset objects
-            }, function error(err) {
-            // err object
-            });
-            
+const Query = Stack.Asset().Query(); + +Query +.limit(20) +.toJSON() +.find() +.then(function success(result) { + // result is array where - + // result[0] =&gt; asset objects +}, function error(err) { +// err object +}); +

Cache Policies

@@ -183,12 +191,12 @@

Cache Policies

Setting a cache policy on a stack

This option allows you to globalize a cache policy. This means the cache policy you set will be applied to all the query objects of the stack.

//Setting a cache policy on a stack    
-            Stack.setCachePolicy(Contentstack.CachePolicy.NETWORK_ELSE_CACHE)
+Stack.setCachePolicy(Contentstack.CachePolicy.NETWORK_ELSE_CACHE)
             
Setting a cache policy on a query object

This option allows you to set/override a cache policy on a specific query object.

// setting a cache policy on a queryobject
-            Query.setCachePolicy(Contentstack.CachePolicy.CACHE_THEN_NETWORK)
+Query.setCachePolicy(Contentstack.CachePolicy.CACHE_THEN_NETWORK)
             

Advanced Queries

You can query for content types, entries, assets and more using our JavaScript API Reference.

@@ -197,7 +205,28 @@

Working with Images

We have introduced Image Delivery APIs that let you retrieve images and then manipulate and optimize them for your digital properties. It lets you perform a host of other actions such as crop, trim, resize, rotate, overlay, and so on.

For example, if you want to crop an image (with width as 300 and height as 400), you simply need to append query parameters at the end of the image URL, such as, https://images.contentstack.io/v3/assets/blteae40eb499811073/bltc5064f36b5855343/59e0c41ac0eddd140d5a8e3e/owl.jpg?crop=300,400. There are several more parameters that you can use for your images.

Read Image Delivery API documentation.

-

SDK functions for Image Delivery API coming soon.

+ +
Following are Image Delivery API examples
+

Following are Image Delivery API examples.

+

+// Set the quality 100 
+const Stack = Contentstack.Stack("stack_api_key", "delivery_token", "environment_name");
+
+const imageUrl = Stack.imageTransform(imageUrl, {
+    'quality': 100
+})
+            
+

+// set the quality to 100, auto optimization, width and height
+const Stack = Contentstack.Stack("stack_api_key", "delivery_token", "environment_name");
+
+const imageUrl = Stack.imageTransform(imageUrl, {
+    'quality': 100,
+    'auto': 'webp',
+    'width': 100,
+    'height': 100
+})
+            

Helpful Links

The MIT License (MIT)

-

Copyright © 2016-2020 Contentstack. All Rights Reserved

+

Copyright © 2016-2021 Contentstack. All Rights Reserved

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

diff --git a/js-sdk-reference/modules_assets.js.html b/js-sdk-reference/modules_assets.js.html index a9343279..ced4b82a 100644 --- a/js-sdk-reference/modules_assets.js.html +++ b/js-sdk-reference/modules_assets.js.html @@ -33,7 +33,7 @@
diff --git a/js-sdk-reference/modules_entry.js.html b/js-sdk-reference/modules_entry.js.html index 9010aa98..5f4f6443 100644 --- a/js-sdk-reference/modules_entry.js.html +++ b/js-sdk-reference/modules_entry.js.html @@ -33,7 +33,7 @@
@@ -233,6 +233,19 @@

modules/entry.js

} } + /** + * @method includeEmbeddedObjects + * @memberOf Entry + * @description Include Embedded Objects (Entries and Assets) along with entry/entries details. + * @example Stack.ContentType("contentType_uid").Entry("entry_uid").includeEmbeddedObjects().fetch() + * @returns {Entry} + * @instance + */ + includeEmbeddedItems() { + this._query['include_embedded_items'] = ["BASE"]; + return this; + } + /** * @method includeSchema * @memberOf Entry diff --git a/js-sdk-reference/modules_query.js.html b/js-sdk-reference/modules_query.js.html index 6626c7da..4f652d9e 100644 --- a/js-sdk-reference/modules_query.js.html +++ b/js-sdk-reference/modules_query.js.html @@ -33,7 +33,7 @@
diff --git a/js-sdk-reference/modules_result.js.html b/js-sdk-reference/modules_result.js.html index bf9db758..7d1460f8 100644 --- a/js-sdk-reference/modules_result.js.html +++ b/js-sdk-reference/modules_result.js.html @@ -33,7 +33,7 @@
diff --git a/js-sdk-reference/stack.js.html b/js-sdk-reference/stack.js.html index 08afe1f2..6297786b 100644 --- a/js-sdk-reference/stack.js.html +++ b/js-sdk-reference/stack.js.html @@ -33,7 +33,7 @@
@@ -69,7 +69,7 @@

stack.js

* @param fetchOptions.timeout - Set timeout for the request. * @param fetchOptions.retryLimit - The number of retries before failure. Default is 5 * @param fetchOptions.retryDelay - The number of ms to use for operation retries. Default is 300ms - * @param fetchOptions.retryCondition - A function to determine if the error can be retried. Default retry is on status codes 408, 429, and greter than equal to 500. + * @param fetchOptions.retryCondition - A function to determine if the error can be retried. Default retry is on status codes 408, 429. * @param fetchOptions.retryDelayOptions.base - The base number of milliseconds to use in the exponential backoff for operation retries. * @param fetchOptions.retryDelayOptions.customBackoff - A custom function that accepts a retry count and error and returns the amount of time to delay in milliseconds. * @example diff --git a/package-lock.json b/package-lock.json index 7cc0a9c4..2088549f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,55 +1,60 @@ { "name": "contentstack", - "version": "3.12.2", + "version": "3.13.0", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.12.13" } }, + "@babel/compat-data": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.12.tgz", + "integrity": "sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ==", + "dev": true + }, "@babel/core": { - "version": "7.11.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz", - "integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.6", - "@babel/helper-module-transforms": "^7.11.0", - "@babel/helpers": "^7.10.4", - "@babel/parser": "^7.11.5", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.11.5", - "@babel/types": "^7.11.5", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.14.tgz", + "integrity": "sha512-wZso/vyF4ki0l0znlgM4inxbdrUvCb+cVz8grxDq+6C9k6qbqoIJteQOKicaKjCipU3ISV+XedCqpL2RJJVehA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.9", + "@babel/helper-compilation-targets": "^7.13.13", + "@babel/helper-module-transforms": "^7.13.14", + "@babel/helpers": "^7.13.10", + "@babel/parser": "^7.13.13", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.13", + "@babel/types": "^7.13.14", "convert-source-map": "^1.7.0", "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", + "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", + "semver": "^6.3.0", "source-map": "^0.5.0" }, "dependencies": { "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { "ms": "2.1.2" } }, "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -60,16 +65,22 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, "@babel/generator": { - "version": "7.11.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", - "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", + "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", "dev": true, "requires": { - "@babel/types": "^7.11.5", + "@babel/types": "^7.13.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -82,129 +93,168 @@ } } }, + "@babel/helper-compilation-targets": { + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz", + "integrity": "sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.12", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.14.5", + "semver": "^6.3.0" + }, + "dependencies": { + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.13" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", - "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", + "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", "dev": true, "requires": { - "@babel/types": "^7.11.0" + "@babel/types": "^7.13.12" } }, "@babel/helper-module-imports": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", - "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", + "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.13.12" } }, "@babel/helper-module-transforms": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", - "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz", + "integrity": "sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/template": "^7.10.4", - "@babel/types": "^7.11.0", - "lodash": "^4.17.19" + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-replace-supers": "^7.13.12", + "@babel/helper-simple-access": "^7.13.12", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.13", + "@babel/types": "^7.13.14" } }, "@babel/helper-optimise-call-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", - "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.13" } }, "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", "dev": true }, "@babel/helper-replace-supers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", - "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", + "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-member-expression-to-functions": "^7.13.12", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.12" } }, "@babel/helper-simple-access": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", - "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", + "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", "dev": true, "requires": { - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/types": "^7.13.12" } }, "@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", "dev": true, "requires": { - "@babel/types": "^7.11.0" + "@babel/types": "^7.12.13" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", "dev": true }, "@babel/helpers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", - "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz", + "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==", "dev": true, "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" } }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -268,9 +318,9 @@ } }, "@babel/parser": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", - "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", + "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -292,12 +342,12 @@ } }, "@babel/plugin-syntax-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", - "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-syntax-import-meta": { @@ -372,38 +422,63 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", + "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/runtime": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + } + } + }, "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", - "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/traverse": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", - "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz", + "integrity": "sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.5", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.11.5", - "@babel/types": "^7.11.5", + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.9", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.13", + "@babel/types": "^7.13.13", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" }, "dependencies": { "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -424,12 +499,12 @@ } }, "@babel/types": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", - "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" }, @@ -458,6 +533,58 @@ "minimist": "^1.2.0" } }, + "@contentstack/utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@contentstack/utils/-/utils-1.0.0.tgz", + "integrity": "sha512-iMGSJkC92UmCnqObMpEOKW0mocDr3xKjuxDiNtaMoFp5Jnh5oph0PmWCgG9HQHWGTT38ayDQPJLkTh0MSOoXrg==", + "requires": { + "babel-core": "^6.26.3", + "babel-loader": "8.1.0", + "babel-preset-es2015": "^6.24.1", + "babel-preset-react": "^6.24.1", + "node-html-parser": "^1.4.2" + }, + "dependencies": { + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "requires": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + } + } + } + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -490,15 +617,6 @@ "p-locate": "^4.1.0" } }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, "p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", @@ -508,12 +626,6 @@ "p-limit": "^2.2.0" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -523,45 +635,32 @@ } }, "@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, "@jest/console": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.3.0.tgz", - "integrity": "sha512-/5Pn6sJev0nPUcAdpJHMVIsA8sKizL2ZkcKPE5+dJrCccks7tcM7c9wbgHudBJbxXLoTbqsHkG1Dofoem4F09w==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", + "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", "dev": true, "requires": { - "@jest/types": "^26.3.0", + "@jest/types": "^26.6.2", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^26.3.0", - "jest-util": "^26.3.0", + "jest-message-util": "^26.6.2", + "jest-util": "^26.6.2", "slash": "^3.0.0" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "color-convert": "^2.0.1" } }, "chalk": { @@ -579,38 +678,47 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "@jest/core": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.4.2.tgz", - "integrity": "sha512-sDva7YkeNprxJfepOctzS8cAk9TOekldh+5FhVuXS40+94SHbiicRO1VV2tSoRtgIo+POs/Cdyf8p76vPTd6dg==", + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", + "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", "dev": true, "requires": { - "@jest/console": "^26.3.0", - "@jest/reporters": "^26.4.1", - "@jest/test-result": "^26.3.0", - "@jest/transform": "^26.3.0", - "@jest/types": "^26.3.0", + "@jest/console": "^26.6.2", + "@jest/reporters": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.3.0", - "jest-config": "^26.4.2", - "jest-haste-map": "^26.3.0", - "jest-message-util": "^26.3.0", + "jest-changed-files": "^26.6.2", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.4.0", - "jest-resolve-dependencies": "^26.4.2", - "jest-runner": "^26.4.2", - "jest-runtime": "^26.4.2", - "jest-snapshot": "^26.4.2", - "jest-util": "^26.3.0", - "jest-validate": "^26.4.2", - "jest-watcher": "^26.3.0", + "jest-resolve": "^26.6.2", + "jest-resolve-dependencies": "^26.6.3", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "jest-watcher": "^26.6.2", "micromatch": "^4.0.2", "p-each-series": "^2.1.0", "rimraf": "^3.0.0", @@ -618,26 +726,19 @@ "strip-ansi": "^6.0.0" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "color-convert": "^2.0.1" } }, "chalk": { @@ -664,159 +765,66 @@ "requires": { "ansi-regex": "^5.0.0" } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "@jest/environment": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.3.0.tgz", - "integrity": "sha512-EW+MFEo0DGHahf83RAaiqQx688qpXgl99wdb8Fy67ybyzHwR1a58LHcO376xQJHfmoXTu89M09dH3J509cx2AA==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", + "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", "dev": true, "requires": { - "@jest/fake-timers": "^26.3.0", - "@jest/types": "^26.3.0", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", "@types/node": "*", - "jest-mock": "^26.3.0" - }, - "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "jest-mock": "^26.6.2" } }, "@jest/fake-timers": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.3.0.tgz", - "integrity": "sha512-ZL9ytUiRwVP8ujfRepffokBvD2KbxbqMhrXSBhSdAhISCw3gOkuntisiSFv+A6HN0n0fF4cxzICEKZENLmW+1A==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", + "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", "dev": true, "requires": { - "@jest/types": "^26.3.0", + "@jest/types": "^26.6.2", "@sinonjs/fake-timers": "^6.0.1", "@types/node": "*", - "jest-message-util": "^26.3.0", - "jest-mock": "^26.3.0", - "jest-util": "^26.3.0" - }, - "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" } }, "@jest/globals": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.4.2.tgz", - "integrity": "sha512-Ot5ouAlehhHLRhc+sDz2/9bmNv9p5ZWZ9LE1pXGGTCXBasmi5jnYjlgYcYt03FBwLmZXCZ7GrL29c33/XRQiow==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", + "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", "dev": true, "requires": { - "@jest/environment": "^26.3.0", - "@jest/types": "^26.3.0", - "expect": "^26.4.2" - }, - "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "@jest/environment": "^26.6.2", + "@jest/types": "^26.6.2", + "expect": "^26.6.2" } }, "@jest/reporters": { - "version": "26.4.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.4.1.tgz", - "integrity": "sha512-aROTkCLU8++yiRGVxLsuDmZsQEKO6LprlrxtAuzvtpbIFl3eIjgIf3EUxDKgomkS25R9ZzwGEdB5weCcBZlrpQ==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", + "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.3.0", - "@jest/test-result": "^26.3.0", - "@jest/transform": "^26.3.0", - "@jest/types": "^26.3.0", + "@jest/console": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", @@ -827,38 +835,25 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.3.0", - "jest-resolve": "^26.4.0", - "jest-util": "^26.3.0", - "jest-worker": "^26.3.0", + "jest-haste-map": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", "node-notifier": "^8.0.0", "slash": "^3.0.0", "source-map": "^0.6.0", "string-length": "^4.0.1", "terminal-link": "^2.0.0", - "v8-to-istanbul": "^5.0.1" + "v8-to-istanbul": "^7.0.0" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "color-convert": "^2.0.1" } }, "chalk": { @@ -896,13 +891,22 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "@jest/source-map": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.3.0.tgz", - "integrity": "sha512-hWX5IHmMDWe1kyrKl7IhFwqOuAreIwHhbe44+XH2ZRHjrKIh0LO5eLQ/vxHFeAfRwJapmxuqlGAEYLadDq6ZGQ==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", + "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", "dev": true, "requires": { "callsites": "^3.0.0", @@ -919,80 +923,46 @@ } }, "@jest/test-result": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.3.0.tgz", - "integrity": "sha512-a8rbLqzW/q7HWheFVMtghXV79Xk+GWwOK1FrtimpI5n1la2SY0qHri3/b0/1F0Ve0/yJmV8pEhxDfVwiUBGtgg==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", + "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", "dev": true, "requires": { - "@jest/console": "^26.3.0", - "@jest/types": "^26.3.0", + "@jest/console": "^26.6.2", + "@jest/types": "^26.6.2", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } } }, "@jest/test-sequencer": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.4.2.tgz", - "integrity": "sha512-83DRD8N3M0tOhz9h0bn6Kl6dSp+US6DazuVF8J9m21WAp5x7CqSMaNycMP0aemC/SH/pDQQddbsfHRTBXVUgog==", + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", + "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", "dev": true, "requires": { - "@jest/test-result": "^26.3.0", + "@jest/test-result": "^26.6.2", "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.3.0", - "jest-runner": "^26.4.2", - "jest-runtime": "^26.4.2" + "jest-haste-map": "^26.6.2", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3" } }, "@jest/transform": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.3.0.tgz", - "integrity": "sha512-Isj6NB68QorGoFWvcOjlUhpkT56PqNIsXKR7XfvoDlCANn/IANlh8DrKAA2l2JKC3yWSMH5wS0GwuQM20w3b2A==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", + "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^26.3.0", + "@jest/types": "^26.6.2", "babel-plugin-istanbul": "^6.0.0", "chalk": "^4.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.3.0", + "jest-haste-map": "^26.6.2", "jest-regex-util": "^26.0.0", - "jest-util": "^26.3.0", + "jest-util": "^26.6.2", "micromatch": "^4.0.2", "pirates": "^4.0.1", "slash": "^3.0.0", @@ -1000,26 +970,13 @@ "write-file-atomic": "^3.0.0" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "color-convert": "^2.0.1" } }, "chalk": { @@ -1043,25 +1000,65 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "@sinonjs/commons": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", - "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", + "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -1077,9 +1074,9 @@ } }, "@types/babel__core": { - "version": "7.1.10", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.10.tgz", - "integrity": "sha512-x8OM8XzITIMyiwl5Vmo2B1cR1S1Ipkyv4mdlbJjMa1lmuKvKY9FrBbEANIaMlnWn5Rf7uO+rC/VgYabNkE17Hw==", + "version": "7.1.14", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz", + "integrity": "sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -1090,18 +1087,18 @@ } }, "@types/babel__generator": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz", - "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", + "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", "dev": true, "requires": { "@babel/types": "^7.0.0" } }, "@types/babel__template": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.3.tgz", - "integrity": "sha512-uCoznIPDmnickEi6D0v11SBpW0OuVqHJCa7syXqQHy5uktSCreIlt0iglsCnmvz8yCb38hGcWeseA8cWJSwv5Q==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", + "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -1109,24 +1106,18 @@ } }, "@types/babel__traverse": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.14.tgz", - "integrity": "sha512-8w9szzKs14ZtBVuP6Wn7nMLRJ0D6dfB0VEBEyRgxrZ/Ln49aNMykrghM2FaNn4FJRzNppCSa0Rv9pBRM5Xc3wg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz", + "integrity": "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==", "dev": true, "requires": { "@babel/types": "^7.3.0" } }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, "@types/graceful-fs": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz", - "integrity": "sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", "dev": true, "requires": { "@types/node": "*" @@ -1148,29 +1139,33 @@ } }, "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { - "@types/istanbul-lib-coverage": "*", "@types/istanbul-lib-report": "*" } }, "@types/jest": { - "version": "26.0.14", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.14.tgz", - "integrity": "sha512-Hz5q8Vu0D288x3iWXePSn53W7hAjP0H7EQ6QvDO9c7t46mR0lNOLlfuwQ+JkVxuhygHzlzPX+0jKdA3ZgSh+Vg==", + "version": "26.0.22", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.22.tgz", + "integrity": "sha512-eeWwWjlqxvBxc4oQdkueW5OF/gtfSceKk4OnOAGlUSwS/liBRtZppbJuz1YkgbrbfGOoeBHun9fOvXnjNwrSOw==", "dev": true, "requires": { - "jest-diff": "^25.2.1", - "pretty-format": "^25.2.1" + "jest-diff": "^26.0.0", + "pretty-format": "^26.0.0" } }, + "@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==" + }, "@types/node": { - "version": "14.11.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.2.tgz", - "integrity": "sha512-jiE3QIxJ8JLNcb1Ps6rDbysDhN4xa8DJJvuC9prr6w+1tIh+QAbYyNF3tyiZNLDBIuBCf4KEcV2UvQm/V60xfA==", + "version": "14.14.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz", + "integrity": "sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==", "dev": true }, "@types/normalize-package-data": { @@ -1180,30 +1175,30 @@ "dev": true }, "@types/prettier": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.1.tgz", - "integrity": "sha512-2zs+O+UkDsJ1Vcp667pd3f8xearMdopz/z54i99wtRDI5KLmngk7vlrYZD0ZjKHaROR03EznlBbVY9PfAEyJIQ==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.3.tgz", + "integrity": "sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==", "dev": true }, "@types/stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", + "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", "dev": true }, "@types/yargs": { - "version": "15.0.7", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.7.tgz", - "integrity": "sha512-Gf4u3EjaPNcC9cTu4/j2oN14nSVhr8PQ+BvBcBQHAhDZfl0bVIiLgvnRXv/dn58XhTm9UXvBpvJpDlwV65QxOA==", + "version": "15.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", + "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", - "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", + "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", "dev": true }, "@webassemblyjs/ast": { @@ -1422,9 +1417,9 @@ }, "dependencies": { "acorn": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", - "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true } } @@ -1442,10 +1437,9 @@ "dev": true }, "ajv": { - "version": "6.12.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", - "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", - "dev": true, + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1462,8 +1456,7 @@ "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" }, "align-text": { "version": "0.1.4", @@ -1494,37 +1487,31 @@ "dev": true }, "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "requires": { - "type-fest": "^0.11.0" + "type-fest": "^0.21.3" }, "dependencies": { "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true } } }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "anymatch": { "version": "3.1.1", @@ -1597,9 +1584,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true } } @@ -1696,47 +1683,19 @@ "dev": true }, "aws4": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz", - "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "dev": true }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, "requires": { "chalk": "^1.1.3", "esutils": "^2.0.2", "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } } }, "babel-core": { @@ -1770,7 +1729,6 @@ "version": "6.26.1", "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, "requires": { "babel-messages": "^6.23.0", "babel-runtime": "^6.26.0", @@ -1804,11 +1762,20 @@ "babel-types": "^6.24.1" } }, + "babel-helper-builder-react-jsx": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", + "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "esutils": "^2.0.2" + } + }, "babel-helper-call-delegate": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true, "requires": { "babel-helper-hoist-variables": "^6.24.1", "babel-runtime": "^6.22.0", @@ -1820,7 +1787,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, "requires": { "babel-helper-function-name": "^6.24.1", "babel-runtime": "^6.26.0", @@ -1855,7 +1821,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, "requires": { "babel-helper-get-function-arity": "^6.24.1", "babel-runtime": "^6.22.0", @@ -1868,7 +1833,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" @@ -1878,7 +1842,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" @@ -1888,7 +1851,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" @@ -1898,7 +1860,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, "requires": { "babel-runtime": "^6.26.0", "babel-types": "^6.26.0", @@ -1922,7 +1883,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true, "requires": { "babel-helper-optimise-call-expression": "^6.24.1", "babel-messages": "^6.23.0", @@ -1936,48 +1896,34 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" } }, "babel-jest": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.3.0.tgz", - "integrity": "sha512-sxPnQGEyHAOPF8NcUsD0g7hDCnvLL2XyblRBcgrzTWBB/mAIpWow3n1bEL+VghnnZfreLhFSBsFluRoK2tRK4g==", + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", + "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", "dev": true, "requires": { - "@jest/transform": "^26.3.0", - "@jest/types": "^26.3.0", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", "@types/babel__core": "^7.1.7", "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.3.0", + "babel-preset-jest": "^26.6.2", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "slash": "^3.0.0" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "color-convert": "^2.0.1" } }, "chalk": { @@ -1995,6 +1941,15 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -2007,13 +1962,92 @@ "find-cache-dir": "^1.0.0", "loader-utils": "^1.0.2", "mkdirp": "^0.5.1" + }, + "dependencies": { + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + } } }, "babel-messages": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -2022,7 +2056,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -2041,9 +2074,9 @@ } }, "babel-plugin-jest-hoist": { - "version": "26.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.2.0.tgz", - "integrity": "sha512-B/hVMRv8Nh1sQ1a3EY8I0n4Y1Wty3NrR5ebOyVT302op+DOAau+xNEImGMsUWOC3++ZlMooCytKz+NgN8aKGbA==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", + "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", "dev": true, "requires": { "@babel/template": "^7.3.3", @@ -2100,6 +2133,16 @@ "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=", "dev": true }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=" + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + }, "babel-plugin-syntax-object-rest-spread": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", @@ -2174,7 +2217,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -2183,7 +2225,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -2192,7 +2233,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, "requires": { "babel-runtime": "^6.26.0", "babel-template": "^6.26.0", @@ -2205,7 +2245,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, "requires": { "babel-helper-define-map": "^6.24.1", "babel-helper-function-name": "^6.24.1", @@ -2222,7 +2261,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" @@ -2232,7 +2270,6 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -2241,7 +2278,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" @@ -2251,7 +2287,6 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -2260,7 +2295,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, "requires": { "babel-helper-function-name": "^6.24.1", "babel-runtime": "^6.22.0", @@ -2271,7 +2305,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -2280,7 +2313,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, "requires": { "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", "babel-runtime": "^6.22.0", @@ -2291,7 +2323,6 @@ "version": "6.26.2", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "dev": true, "requires": { "babel-plugin-transform-strict-mode": "^6.24.1", "babel-runtime": "^6.26.0", @@ -2303,7 +2334,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true, "requires": { "babel-helper-hoist-variables": "^6.24.1", "babel-runtime": "^6.22.0", @@ -2314,7 +2344,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true, "requires": { "babel-plugin-transform-es2015-modules-amd": "^6.24.1", "babel-runtime": "^6.22.0", @@ -2325,7 +2354,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true, "requires": { "babel-helper-replace-supers": "^6.24.1", "babel-runtime": "^6.22.0" @@ -2335,7 +2363,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, "requires": { "babel-helper-call-delegate": "^6.24.1", "babel-helper-get-function-arity": "^6.24.1", @@ -2349,7 +2376,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" @@ -2359,7 +2385,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -2368,7 +2393,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, "requires": { "babel-helper-regex": "^6.24.1", "babel-runtime": "^6.22.0", @@ -2379,7 +2403,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -2388,7 +2411,6 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -2397,7 +2419,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, "requires": { "babel-helper-regex": "^6.24.1", "babel-runtime": "^6.22.0", @@ -2425,6 +2446,15 @@ "babel-runtime": "^6.22.0" } }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "requires": { + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" + } + }, "babel-plugin-transform-object-rest-spread": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", @@ -2435,11 +2465,46 @@ "babel-runtime": "^6.26.0" } }, + "babel-plugin-transform-react-display-name": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", + "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-react-jsx": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", + "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "requires": { + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-react-jsx-self": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", + "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "requires": { + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-react-jsx-source": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", + "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "requires": { + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, "babel-plugin-transform-regenerator": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, "requires": { "regenerator-transform": "^0.10.0" } @@ -2457,16 +2522,15 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, "babel-preset-current-node-syntax": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.3.tgz", - "integrity": "sha512-uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -2479,7 +2543,8 @@ "@babel/plugin-syntax-numeric-separator": "^7.8.3", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" } }, "babel-preset-env": { @@ -2524,7 +2589,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", - "dev": true, "requires": { "babel-plugin-check-es2015-constants": "^6.22.0", "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", @@ -2561,14 +2625,35 @@ "babel-plugin-transform-exponentiation-operator": "^6.24.1" } }, + "babel-preset-flow": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", + "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "requires": { + "babel-plugin-transform-flow-strip-types": "^6.22.0" + } + }, "babel-preset-jest": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.3.0.tgz", - "integrity": "sha512-5WPdf7nyYi2/eRxCbVrE1kKCWxgWY4RsPEbdJWFm7QsesFGqjdkyLeu1zRkwM1cxK6EPIlNd6d2AxLk7J+t4pw==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", + "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "^26.2.0", - "babel-preset-current-node-syntax": "^0.1.3" + "babel-plugin-jest-hoist": "^26.6.2", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "babel-preset-react": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", + "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", + "requires": { + "babel-plugin-syntax-jsx": "^6.3.13", + "babel-plugin-transform-react-display-name": "^6.23.0", + "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-plugin-transform-react-jsx-self": "^6.22.0", + "babel-plugin-transform-react-jsx-source": "^6.22.0", + "babel-preset-flow": "^6.23.0" } }, "babel-preset-stage-1": { @@ -2611,7 +2696,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, "requires": { "babel-core": "^6.26.0", "babel-runtime": "^6.26.0", @@ -2620,13 +2704,40 @@ "lodash": "^4.17.4", "mkdirp": "^0.5.1", "source-map-support": "^0.4.15" + }, + "dependencies": { + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + } } }, "babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, "requires": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" @@ -2636,7 +2747,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, "requires": { "babel-runtime": "^6.26.0", "babel-traverse": "^6.26.0", @@ -2649,7 +2759,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, "requires": { "babel-code-frame": "^6.26.0", "babel-messages": "^6.23.0", @@ -2666,7 +2775,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, "requires": { "babel-runtime": "^6.26.0", "esutils": "^2.0.2", @@ -2677,14 +2785,12 @@ "babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", @@ -2748,9 +2854,9 @@ "dev": true }, "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true }, "bcrypt-pbkdf": { @@ -2765,13 +2871,12 @@ "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" }, "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, "optional": true }, @@ -2792,16 +2897,15 @@ "dev": true }, "bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", "dev": true }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2866,21 +2970,13 @@ } }, "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", "dev": true, "requires": { - "bn.js": "^4.1.0", + "bn.js": "^5.0.0", "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } } }, "browserify-sign": { @@ -3031,6 +3127,15 @@ "path-is-absolute": "^1.0.0" } }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -3039,6 +3144,12 @@ "requires": { "glob": "^7.1.3" } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true } } }, @@ -3059,6 +3170,16 @@ "unset-value": "^1.0.0" } }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -3072,9 +3193,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001137", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001137.tgz", - "integrity": "sha512-54xKQZTqZrKVHmVz0+UvdZR6kQc7pJDgfhsMYDG19ID1BWoNnDMFm5Q3uSBSU401pBvKYMsHAt9qhEDcxmk8aw==", + "version": "1.0.30001207", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001207.tgz", + "integrity": "sha512-UPQZdmAsyp2qfCTiMU/zqGSWOYaY9F9LL61V8f+8MrubsaDGpaHD9HRV/EWZGULZn0Hxu48SKzI5DgFwTvHuYw==", "dev": true }, "capture-exit": { @@ -3112,13 +3233,15 @@ } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "char-regex": { @@ -3134,20 +3257,20 @@ "dev": true }, "chokidar": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", - "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", "dev": true, "optional": true, "requires": { "anymatch": "~3.1.1", "braces": "~3.0.2", - "fsevents": "~2.1.2", + "fsevents": "~2.3.1", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" + "readdirp": "~3.5.0" } }, "chownr": { @@ -3181,6 +3304,12 @@ "safe-buffer": "^5.0.1" } }, + "cjs-module-lexer": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", + "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", + "dev": true + }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -3241,6 +3370,12 @@ "wrap-ansi": "^6.2.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -3289,6 +3424,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -3307,8 +3448,7 @@ "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, "commoner": { "version": "0.10.8", @@ -3346,8 +3486,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "1.6.2", @@ -3406,7 +3545,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, "requires": { "safe-buffer": "~5.1.1" } @@ -3457,10 +3595,9 @@ "dev": true }, "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", - "dev": true + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" }, "core-util-is": { "version": "1.0.2", @@ -3479,9 +3616,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true } } @@ -3681,12 +3818,12 @@ "dev": true }, "whatwg-url": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.2.2.tgz", - "integrity": "sha512-PcVnO6NiewhkmzV0qn7A+UZ9Xx4maNTI+O+TShmfE4pqjoCMwUMjkvoNhNHPTvgR7QH9Xt3R13iHuWy2sToFxQ==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.5.0.tgz", + "integrity": "sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg==", "dev": true, "requires": { - "lodash.sortby": "^4.7.0", + "lodash": "^4.7.0", "tr46": "^2.0.2", "webidl-conversions": "^6.1.0" } @@ -3703,7 +3840,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -3715,9 +3851,9 @@ "dev": true }, "decimal.js": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz", - "integrity": "sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", + "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==", "dev": true }, "decode-uri-component": { @@ -3744,6 +3880,12 @@ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -3834,7 +3976,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, "requires": { "repeating": "^2.0.0" } @@ -3856,9 +3997,9 @@ } }, "diff-sequences": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", - "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", "dev": true }, "diffie-hellman": { @@ -3873,9 +4014,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true } } @@ -3891,9 +4032,9 @@ }, "dependencies": { "domelementtype": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.2.tgz", - "integrity": "sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", "dev": true } } @@ -4001,9 +4142,9 @@ } }, "electron-to-chromium": { - "version": "1.3.572", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.572.tgz", - "integrity": "sha512-TKqdEukCCl7JC20SwEoWTbtnGt4YjfHWAv4tcNky0a9qGo0WdM+Lrd60tps+nkaJCmktKBJjr99fLtEBU1ipWQ==", + "version": "1.3.707", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.707.tgz", + "integrity": "sha512-BqddgxNPrcWnbDdJw7SzXVzPmp+oiyjVrc7tkQVaznPGSS9SKZatw6qxoP857M+HbOyyqJQwYQtsuFIMSTNSZA==", "dev": true }, "elliptic": { @@ -4030,9 +4171,9 @@ } }, "emittery": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.1.tgz", - "integrity": "sha512-d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", + "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", "dev": true }, "emoji-regex": { @@ -4044,8 +4185,7 @@ "emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" }, "end-of-stream": { "version": "1.4.4", @@ -4057,9 +4197,9 @@ } }, "enhanced-resolve": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", - "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -4110,9 +4250,9 @@ "dev": true }, "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, "requires": { "prr": "~1.0.1" @@ -4128,28 +4268,33 @@ } }, "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", "dev": true, "requires": { + "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" }, "dependencies": { "object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", "dev": true }, "object-keys": { @@ -4196,37 +4341,39 @@ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz", "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==" }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", "dev": true, "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", + "esprima": "^2.7.1", + "estraverse": "^1.9.1", "esutils": "^2.0.2", "optionator": "^0.8.1", - "source-map": "~0.6.1" + "source-map": "~0.2.0" }, "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", "dev": true, - "optional": true + "optional": true, + "requires": { + "amdefine": ">=0.0.4" + } } } }, @@ -4238,6 +4385,14 @@ "requires": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" + }, + "dependencies": { + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + } } }, "esprima": { @@ -4264,21 +4419,20 @@ } }, "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", "dev": true }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true }, "events-to-array": { @@ -4298,9 +4452,9 @@ } }, "exec-sh": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", - "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", + "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", "dev": true }, "execa": { @@ -4369,56 +4523,27 @@ } }, "expect": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.4.2.tgz", - "integrity": "sha512-IlJ3X52Z0lDHm7gjEp+m76uX46ldH5VpqmU0006vqDju/285twh7zaWMRhs67VpQhBwjjMchk+p5aA0VkERCAA==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", + "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", "dev": true, "requires": { - "@jest/types": "^26.3.0", + "@jest/types": "^26.6.2", "ansi-styles": "^4.0.0", "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.4.2", - "jest-message-util": "^26.3.0", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", "jest-regex-util": "^26.0.0" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "color-convert": "^2.0.1" } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true } } }, @@ -4523,14 +4648,12 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fast-levenshtein": { "version": "2.0.6", @@ -4548,12 +4671,13 @@ } }, "fetch-mock": { - "version": "9.10.7", - "resolved": "https://registry.npmjs.org/fetch-mock/-/fetch-mock-9.10.7.tgz", - "integrity": "sha512-YkiMHSL8CQ0vlWYpqGvlaZjViFk0Kar9jonPjSvaWoztkeHH6DENqUzBIsffzjVKhwchPI74SZRLRpIsEyNcZQ==", + "version": "9.11.0", + "resolved": "https://registry.npmjs.org/fetch-mock/-/fetch-mock-9.11.0.tgz", + "integrity": "sha512-PG1XUv+x7iag5p/iNHD4/jdpxL9FtVSqRMUQhPab4hVDt80T1MH5ehzVrL2IdXO9Q2iBggArFvPqjUbHFuI58Q==", "dev": true, "requires": { - "babel-runtime": "^6.26.0", + "@babel/core": "^7.0.0", + "@babel/runtime": "^7.0.0", "core-js": "^3.0.0", "debug": "^4.1.1", "glob-to-regexp": "^0.4.0", @@ -4565,15 +4689,15 @@ }, "dependencies": { "core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.10.0.tgz", + "integrity": "sha512-MQx/7TLgmmDVamSyfE+O+5BHvG1aUGj/gHhLn1wVtm2B5u1eVIPvh7vkfjwWKNCjrTJB8+He99IntSQ1qP+vYQ==", "dev": true }, "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -4588,12 +4712,12 @@ } }, "fetch-mock-jest": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fetch-mock-jest/-/fetch-mock-jest-1.3.0.tgz", - "integrity": "sha512-3hHLcSQrww8yhGQnUyKSCQik4piaWcjHc4/bdDfKCQI6GEOsOKBWJro/XBXGnZjZPy47cVtBDx99aQxNYK0/OA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/fetch-mock-jest/-/fetch-mock-jest-1.5.1.tgz", + "integrity": "sha512-+utwzP8C+Pax1GSka3nFXILWMY3Er2L+s090FOgqVNrNCPp0fDqgXnAHAJf12PLHi0z4PhcTaZNTz8e7K3fjqQ==", "dev": true, "requires": { - "fetch-mock": "^9.0.0" + "fetch-mock": "^9.11.0" } }, "figgy-pudding": { @@ -4665,23 +4789,21 @@ } }, "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "requires": { "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" } }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "locate-path": "^2.0.0" + "locate-path": "^3.0.0" } }, "findup-sync": { @@ -4915,15 +5037,23 @@ } }, "fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^1.0.0" + "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } } }, "fs-write-stream-atomic": { @@ -4945,9 +5075,9 @@ "dev": true }, "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "optional": true }, @@ -4958,9 +5088,9 @@ "dev": true }, "gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true }, "get-caller-file": { @@ -4969,6 +5099,17 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, "get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -5013,9 +5154,9 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "optional": true, "requires": { @@ -5066,13 +5207,12 @@ "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" }, "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", "dev": true }, "growly": { @@ -5083,9 +5223,9 @@ "optional": true }, "handlebars": { - "version": "4.7.6", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", - "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", "dev": true, "requires": { "minimist": "^1.2.5", @@ -5102,17 +5242,11 @@ "dev": true }, "uglify-js": { - "version": "3.12.7", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.7.tgz", - "integrity": "sha512-SIZhkoh+U/wjW+BHGhVwE9nt8tWJspncloBcFapkpGRwNPqcH8pzX36BXe3TPBjzHWPMUZotpCigak/udWNr1Q==", + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.3.tgz", + "integrity": "sha512-otIc7O9LyxpUcQoXzj2hL4LPWKklO6LJWoJUzNa8A17Xgi4fOeDC8FBDOLHnC/Slo1CQgsZMcM6as0M76BZaig==", "dev": true, "optional": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true } } }, @@ -5145,19 +5279,16 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, "requires": { "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } } }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -5165,9 +5296,9 @@ "dev": true }, "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "dev": true }, "has-value": { @@ -5271,6 +5402,11 @@ "minimalistic-assert": "^1.0.1" } }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -5286,7 +5422,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.1" @@ -5354,9 +5489,9 @@ }, "dependencies": { "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -5403,9 +5538,9 @@ } }, "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true }, "iferr": { @@ -5443,15 +5578,6 @@ "p-locate": "^4.1.0" } }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, "p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", @@ -5461,12 +5587,6 @@ "p-limit": "^2.2.0" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -5528,17 +5648,10 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, "requires": { "loose-envify": "^1.0.0" } }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", @@ -5565,6 +5678,12 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", + "dev": true + }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -5575,6 +5694,15 @@ "binary-extensions": "^2.0.0" } }, + "is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", @@ -5582,9 +5710,9 @@ "dev": true }, "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", "dev": true }, "is-ci": { @@ -5596,6 +5724,15 @@ "ci-info": "^2.0.0" } }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -5645,8 +5782,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", - "dev": true, - "optional": true + "dev": true }, "is-extendable": { "version": "0.1.1", @@ -5663,8 +5799,7 @@ "is-finite": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "dev": true + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -5688,9 +5823,9 @@ } }, "is-negative-zero": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", - "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", "dev": true }, "is-number": { @@ -5699,6 +5834,12 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "dev": true + }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -5715,11 +5856,12 @@ "dev": true }, "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", "dev": true, "requires": { + "call-bind": "^1.0.2", "has-symbols": "^1.0.1" } }, @@ -5729,6 +5871,12 @@ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, "is-subset": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", @@ -5761,7 +5909,6 @@ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, - "optional": true, "requires": { "is-docker": "^2.0.0" } @@ -5818,47 +5965,12 @@ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, - "escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", - "dev": true, - "requires": { - "esprima": "^2.7.1", - "estraverse": "^1.9.1", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.2.0" - } - }, - "estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", - "dev": true - }, "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - }, - "source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", - "dev": true, - "optional": true, - "requires": { - "amdefine": ">=0.0.4" - } - }, "supports-color": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", @@ -5867,12 +5979,6 @@ "requires": { "has-flag": "^1.0.0" } - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true } } }, @@ -5927,6 +6033,15 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -5942,9 +6057,9 @@ }, "dependencies": { "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -5975,36 +6090,23 @@ } }, "jest": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.4.2.tgz", - "integrity": "sha512-LLCjPrUh98Ik8CzW8LLVnSCfLaiY+wbK53U7VxnFSX7Q+kWC4noVeDvGWIFw0Amfq1lq2VfGm7YHWSLBV62MJw==", + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", + "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", "dev": true, "requires": { - "@jest/core": "^26.4.2", + "@jest/core": "^26.6.3", "import-local": "^3.0.2", - "jest-cli": "^26.4.2" + "jest-cli": "^26.6.3" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "color-convert": "^2.0.1" } }, "chalk": { @@ -6018,71 +6120,48 @@ } }, "jest-cli": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.4.2.tgz", - "integrity": "sha512-zb+lGd/SfrPvoRSC/0LWdaWCnscXc1mGYW//NP4/tmBvRPT3VntZ2jtKUONsRi59zc5JqmsSajA9ewJKFYp8Cw==", + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", "dev": true, "requires": { - "@jest/core": "^26.4.2", - "@jest/test-result": "^26.3.0", - "@jest/types": "^26.3.0", + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.4", "import-local": "^3.0.2", "is-ci": "^2.0.0", - "jest-config": "^26.4.2", - "jest-util": "^26.3.0", - "jest-validate": "^26.4.2", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", "prompts": "^2.0.1", - "yargs": "^15.3.1" + "yargs": "^15.4.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" } } } }, "jest-changed-files": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.3.0.tgz", - "integrity": "sha512-1C4R4nijgPltX6fugKxM4oQ18zimS7LqQ+zTTY8lMCMFPrxqBFb7KJH0Z2fRQJvw2Slbaipsqq7s1mgX5Iot+g==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", + "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", "dev": true, "requires": { - "@jest/types": "^26.3.0", + "@jest/types": "^26.6.2", "execa": "^4.0.0", "throat": "^5.0.0" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -6095,9 +6174,9 @@ } }, "execa": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz", - "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "requires": { "cross-spawn": "^7.0.0", @@ -6168,51 +6247,38 @@ } }, "jest-config": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.4.2.tgz", - "integrity": "sha512-QBf7YGLuToiM8PmTnJEdRxyYy3mHWLh24LJZKVdXZ2PNdizSe1B/E8bVm+HYcjbEzGuVXDv/di+EzdO/6Gq80A==", + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", + "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.4.2", - "@jest/types": "^26.3.0", - "babel-jest": "^26.3.0", + "@jest/test-sequencer": "^26.6.3", + "@jest/types": "^26.6.2", + "babel-jest": "^26.6.3", "chalk": "^4.0.0", "deepmerge": "^4.2.2", "glob": "^7.1.1", "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.3.0", - "jest-environment-node": "^26.3.0", + "jest-environment-jsdom": "^26.6.2", + "jest-environment-node": "^26.6.2", "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.4.2", + "jest-jasmine2": "^26.6.3", "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.4.0", - "jest-util": "^26.3.0", - "jest-validate": "^26.4.2", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", "micromatch": "^4.0.2", - "pretty-format": "^26.4.2" + "pretty-format": "^26.6.2" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "color-convert": "^2.0.1" } }, "chalk": { @@ -6239,80 +6305,36 @@ "path-is-absolute": "^1.0.0" } }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "pretty-format": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.4.2.tgz", - "integrity": "sha512-zK6Gd8zDsEiVydOCGLkoBoZuqv8VTiHyAbKznXe/gaph/DAeZOmit9yMfgIz5adIgAMMs5XfoYSwAX3jcCO1tA==", + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "@jest/types": "^26.3.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" + "has-flag": "^4.0.0" } } } }, "jest-diff": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", - "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", - "dev": true, - "requires": { - "chalk": "^3.0.0", - "diff-sequences": "^25.2.6", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - } - }, - "jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.4.2.tgz", - "integrity": "sha512-p15rt8r8cUcRY0Mvo1fpkOGYm7iI8S6ySxgIdfh3oOIv+gHwrHTy5VWCGOecWUhDsit4Nz8avJWdT07WLpbwDA==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", "dev": true, "requires": { - "@jest/types": "^26.3.0", "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", "jest-get-type": "^26.3.0", - "jest-util": "^26.3.0", - "pretty-format": "^26.4.2" + "pretty-format": "^26.6.2" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "color-convert": "^2.0.1" } }, "chalk": { @@ -6325,61 +6347,46 @@ "supports-color": "^7.1.0" } }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "pretty-format": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.4.2.tgz", - "integrity": "sha512-zK6Gd8zDsEiVydOCGLkoBoZuqv8VTiHyAbKznXe/gaph/DAeZOmit9yMfgIz5adIgAMMs5XfoYSwAX3jcCO1tA==", + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "@jest/types": "^26.3.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" + "has-flag": "^4.0.0" } } } }, - "jest-environment-jsdom": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.3.0.tgz", - "integrity": "sha512-zra8He2btIMJkAzvLaiZ9QwEPGEetbxqmjEBQwhH3CA+Hhhu0jSiEJxnJMbX28TGUvPLxBt/zyaTLrOPF4yMJA==", + "jest-docblock": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", + "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", "dev": true, "requires": { - "@jest/environment": "^26.3.0", - "@jest/fake-timers": "^26.3.0", - "@jest/types": "^26.3.0", - "@types/node": "*", - "jest-mock": "^26.3.0", - "jest-util": "^26.3.0", - "jsdom": "^16.2.2" + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", + "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "color-convert": "^2.0.1" } }, "chalk": { @@ -6391,70 +6398,60 @@ "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, + "jest-environment-jsdom": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", + "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", + "dev": true, + "requires": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2", + "jsdom": "^16.4.0" + } + }, "jest-environment-node": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.3.0.tgz", - "integrity": "sha512-c9BvYoo+FGcMj5FunbBgtBnbR5qk3uky8PKyRVpSfe2/8+LrNQMiXX53z6q2kY+j15SkjQCOSL/6LHnCPLVHNw==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", + "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", "dev": true, "requires": { - "@jest/environment": "^26.3.0", - "@jest/fake-timers": "^26.3.0", - "@jest/types": "^26.3.0", + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", "@types/node": "*", - "jest-mock": "^26.3.0", - "jest-util": "^26.3.0" - }, - "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" } }, "jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", "dev": true }, "jest-haste-map": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.3.0.tgz", - "integrity": "sha512-DHWBpTJgJhLLGwE5Z1ZaqLTYqeODQIZpby0zMBsCU9iRFHYyhklYqP4EiG73j5dkbaAdSZhgB938mL51Q5LeZA==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", + "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", "dev": true, "requires": { - "@jest/types": "^26.3.0", + "@jest/types": "^26.6.2", "@types/graceful-fs": "^4.1.2", "@types/node": "*", "anymatch": "^3.0.3", @@ -6462,103 +6459,57 @@ "fsevents": "^2.1.2", "graceful-fs": "^4.2.4", "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.3.0", - "jest-util": "^26.3.0", - "jest-worker": "^26.3.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", "micromatch": "^4.0.2", "sane": "^4.0.3", "walker": "^1.0.7" - }, - "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } } }, "jest-html-reporters": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/jest-html-reporters/-/jest-html-reporters-2.0.4.tgz", - "integrity": "sha512-RIu6rgPExSnmgZYxpdwiYnmhI7mIlPyOdfLdS5eooR6wfeuXYIUh8tElC7SkWQG7kgEgqQ8dLXVj1NvCmiceLw==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/jest-html-reporters/-/jest-html-reporters-2.1.3.tgz", + "integrity": "sha512-46QGqnILYTlkFINsYnQ333VGZqFhi9pUHY7T3G/66U3iQm725pm+HHMsWBIN/XgXEkIP9jsEKlCg6kg4pAAUrA==", "dev": true, "requires": { - "fs-extra": "^9.0.1" + "fs-extra": "^9.0.1", + "open": "^8.0.3" } }, "jest-jasmine2": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.4.2.tgz", - "integrity": "sha512-z7H4EpCldHN1J8fNgsja58QftxBSL+JcwZmaXIvV9WKIM+x49F4GLHu/+BQh2kzRKHAgaN/E82od+8rTOBPyPA==", + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", + "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", "dev": true, "requires": { "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.3.0", - "@jest/source-map": "^26.3.0", - "@jest/test-result": "^26.3.0", - "@jest/types": "^26.3.0", + "@jest/environment": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "expect": "^26.4.2", + "expect": "^26.6.2", "is-generator-fn": "^2.0.0", - "jest-each": "^26.4.2", - "jest-matcher-utils": "^26.4.2", - "jest-message-util": "^26.3.0", - "jest-runtime": "^26.4.2", - "jest-snapshot": "^26.4.2", - "jest-util": "^26.3.0", - "pretty-format": "^26.4.2", + "jest-each": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2", "throat": "^5.0.0" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "color-convert": "^2.0.1" } }, "chalk": { @@ -6571,114 +6522,46 @@ "supports-color": "^7.1.0" } }, - "pretty-format": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.4.2.tgz", - "integrity": "sha512-zK6Gd8zDsEiVydOCGLkoBoZuqv8VTiHyAbKznXe/gaph/DAeZOmit9yMfgIz5adIgAMMs5XfoYSwAX3jcCO1tA==", + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "@jest/types": "^26.3.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" + "has-flag": "^4.0.0" } } } }, "jest-leak-detector": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.4.2.tgz", - "integrity": "sha512-akzGcxwxtE+9ZJZRW+M2o+nTNnmQZxrHJxX/HjgDaU5+PLmY1qnQPnMjgADPGCRPhB+Yawe1iij0REe+k/aHoA==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", + "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", "dev": true, "requires": { "jest-get-type": "^26.3.0", - "pretty-format": "^26.4.2" - }, - "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "pretty-format": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.4.2.tgz", - "integrity": "sha512-zK6Gd8zDsEiVydOCGLkoBoZuqv8VTiHyAbKznXe/gaph/DAeZOmit9yMfgIz5adIgAMMs5XfoYSwAX3jcCO1tA==", - "dev": true, - "requires": { - "@jest/types": "^26.3.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - } + "pretty-format": "^26.6.2" } }, "jest-matcher-utils": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.4.2.tgz", - "integrity": "sha512-KcbNqWfWUG24R7tu9WcAOKKdiXiXCbMvQYT6iodZ9k1f7065k0keUOW6XpJMMvah+hTfqkhJhRXmA3r3zMAg0Q==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^26.4.2", + "jest-diff": "^26.6.2", "jest-get-type": "^26.3.0", - "pretty-format": "^26.4.2" + "pretty-format": "^26.6.2" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "color-convert": "^2.0.1" } }, "chalk": { @@ -6691,130 +6574,41 @@ "supports-color": "^7.1.0" } }, - "diff-sequences": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.3.0.tgz", - "integrity": "sha512-5j5vdRcw3CNctePNYN0Wy2e/JbWT6cAYnXv5OuqPhDpyCGc0uLu2TK0zOCJWNB9kOIfYMSpIulRaDgIi4HJ6Ig==", - "dev": true - }, - "jest-diff": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.4.2.tgz", - "integrity": "sha512-6T1XQY8U28WH0Z5rGpQ+VqZSZz8EN8rZcBtfvXaOkbwxIEeRre6qnuZQlbY1AJ4MKDxQF8EkrCvK+hL/VkyYLQ==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.3.0", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.4.2" - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "pretty-format": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.4.2.tgz", - "integrity": "sha512-zK6Gd8zDsEiVydOCGLkoBoZuqv8VTiHyAbKznXe/gaph/DAeZOmit9yMfgIz5adIgAMMs5XfoYSwAX3jcCO1tA==", + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "@jest/types": "^26.3.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" + "has-flag": "^4.0.0" } } } }, "jest-message-util": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.3.0.tgz", - "integrity": "sha512-xIavRYqr4/otGOiLxLZGj3ieMmjcNE73Ui+LdSW/Y790j5acqCsAdDiLIbzHCZMpN07JOENRWX5DcU+OQ+TjTA==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", + "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.3.0", - "@types/stack-utils": "^1.0.1", + "@jest/types": "^26.6.2", + "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.2", + "pretty-format": "^26.6.2", "slash": "^3.0.0", "stack-utils": "^2.0.2" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - } - } - }, - "jest-mock": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.3.0.tgz", - "integrity": "sha512-PeaRrg8Dc6mnS35gOo/CbZovoDPKAeB1FICZiuagAgGvbWdNNyjQjkOaGUa/3N3JtpQ/Mh9P4A2D4Fv51NnP8Q==", - "dev": true, - "requires": { - "@jest/types": "^26.3.0", - "@types/node": "*" - }, - "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "color-convert": "^2.0.1" } }, "chalk": { @@ -6826,9 +6620,34 @@ "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, + "jest-mock": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", + "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*" + } + }, "jest-pnp-resolver": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", @@ -6842,41 +6661,28 @@ "dev": true }, "jest-resolve": { - "version": "26.4.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.4.0.tgz", - "integrity": "sha512-bn/JoZTEXRSlEx3+SfgZcJAVuTMOksYq9xe9O6s4Ekg84aKBObEaVXKOEilULRqviSLAYJldnoWV9c07kwtiCg==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", "dev": true, "requires": { - "@jest/types": "^26.3.0", + "@jest/types": "^26.6.2", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.3.0", + "jest-util": "^26.6.2", "read-pkg-up": "^7.0.1", - "resolve": "^1.17.0", + "resolve": "^1.18.1", "slash": "^3.0.0" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "color-convert": "^2.0.1" } }, "chalk": { @@ -6889,107 +6695,79 @@ "supports-color": "^7.1.0" } }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "jest-resolve-dependencies": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.4.2.tgz", - "integrity": "sha512-ADHaOwqEcVc71uTfySzSowA/RdxUpCxhxa2FNLiin9vWLB1uLPad3we+JSSROq5+SrL9iYPdZZF8bdKM7XABTQ==", + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", + "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", "dev": true, "requires": { - "@jest/types": "^26.3.0", + "@jest/types": "^26.6.2", "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.4.2" - }, - "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "jest-snapshot": "^26.6.2" } }, "jest-runner": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.4.2.tgz", - "integrity": "sha512-FgjDHeVknDjw1gRAYaoUoShe1K3XUuFMkIaXbdhEys+1O4bEJS8Avmn4lBwoMfL8O5oFTdWYKcf3tEJyyYyk8g==", + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", + "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", "dev": true, "requires": { - "@jest/console": "^26.3.0", - "@jest/environment": "^26.3.0", - "@jest/test-result": "^26.3.0", - "@jest/types": "^26.3.0", + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.7.1", "exit": "^0.1.2", "graceful-fs": "^4.2.4", - "jest-config": "^26.4.2", + "jest-config": "^26.6.3", "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.3.0", - "jest-leak-detector": "^26.4.2", - "jest-message-util": "^26.3.0", - "jest-resolve": "^26.4.0", - "jest-runtime": "^26.4.2", - "jest-util": "^26.3.0", - "jest-worker": "^26.3.0", + "jest-haste-map": "^26.6.2", + "jest-leak-detector": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", "source-map-support": "^0.5.6", "throat": "^5.0.0" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "color-convert": "^2.0.1" } }, "chalk": { @@ -7017,63 +6795,60 @@ "buffer-from": "^1.0.0", "source-map": "^0.6.0" } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "jest-runtime": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.4.2.tgz", - "integrity": "sha512-4Pe7Uk5a80FnbHwSOk7ojNCJvz3Ks2CNQWT5Z7MJo4tX0jb3V/LThKvD9tKPNVNyeMH98J/nzGlcwc00R2dSHQ==", - "dev": true, - "requires": { - "@jest/console": "^26.3.0", - "@jest/environment": "^26.3.0", - "@jest/fake-timers": "^26.3.0", - "@jest/globals": "^26.4.2", - "@jest/source-map": "^26.3.0", - "@jest/test-result": "^26.3.0", - "@jest/transform": "^26.3.0", - "@jest/types": "^26.3.0", + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", + "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", + "dev": true, + "requires": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/globals": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", "@types/yargs": "^15.0.0", "chalk": "^4.0.0", + "cjs-module-lexer": "^0.6.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", "glob": "^7.1.3", "graceful-fs": "^4.2.4", - "jest-config": "^26.4.2", - "jest-haste-map": "^26.3.0", - "jest-message-util": "^26.3.0", - "jest-mock": "^26.3.0", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.4.0", - "jest-snapshot": "^26.4.2", - "jest-util": "^26.3.0", - "jest-validate": "^26.4.2", + "jest-resolve": "^26.6.2", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", "slash": "^3.0.0", "strip-bom": "^4.0.0", - "yargs": "^15.3.1" + "yargs": "^15.4.1" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "color-convert": "^2.0.1" } }, "chalk": { @@ -7105,13 +6880,22 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "jest-serializer": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.3.0.tgz", - "integrity": "sha512-IDRBQBLPlKa4flg77fqg0n/pH87tcRKwe8zxOVTWISxGpPHYkRZ1dXKyh04JOja7gppc60+soKVZ791mruVdow==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", + "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", "dev": true, "requires": { "@types/node": "*", @@ -7119,48 +6903,36 @@ } }, "jest-snapshot": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.4.2.tgz", - "integrity": "sha512-N6Uub8FccKlf5SBFnL2Ri/xofbaA68Cc3MGjP/NuwgnsvWh+9hLIR/DhrxbSiKXMY9vUW5dI6EW1eHaDHqe9sg==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", + "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", "dev": true, "requires": { "@babel/types": "^7.0.0", - "@jest/types": "^26.3.0", + "@jest/types": "^26.6.2", + "@types/babel__traverse": "^7.0.4", "@types/prettier": "^2.0.0", "chalk": "^4.0.0", - "expect": "^26.4.2", + "expect": "^26.6.2", "graceful-fs": "^4.2.4", - "jest-diff": "^26.4.2", + "jest-diff": "^26.6.2", "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.3.0", - "jest-matcher-utils": "^26.4.2", - "jest-message-util": "^26.3.0", - "jest-resolve": "^26.4.0", + "jest-haste-map": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", "natural-compare": "^1.4.0", - "pretty-format": "^26.4.2", + "pretty-format": "^26.6.2", "semver": "^7.3.2" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "color-convert": "^2.0.1" } }, "chalk": { @@ -7173,57 +6945,33 @@ "supports-color": "^7.1.0" } }, - "diff-sequences": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.3.0.tgz", - "integrity": "sha512-5j5vdRcw3CNctePNYN0Wy2e/JbWT6cAYnXv5OuqPhDpyCGc0uLu2TK0zOCJWNB9kOIfYMSpIulRaDgIi4HJ6Ig==", - "dev": true - }, - "jest-diff": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.4.2.tgz", - "integrity": "sha512-6T1XQY8U28WH0Z5rGpQ+VqZSZz8EN8rZcBtfvXaOkbwxIEeRre6qnuZQlbY1AJ4MKDxQF8EkrCvK+hL/VkyYLQ==", + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.3.0", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.4.2" + "lru-cache": "^6.0.0" } }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "pretty-format": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.4.2.tgz", - "integrity": "sha512-zK6Gd8zDsEiVydOCGLkoBoZuqv8VTiHyAbKznXe/gaph/DAeZOmit9yMfgIz5adIgAMMs5XfoYSwAX3jcCO1tA==", + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "@jest/types": "^26.3.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" + "has-flag": "^4.0.0" } - }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true } } }, "jest-util": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.3.0.tgz", - "integrity": "sha512-4zpn6bwV0+AMFN0IYhH/wnzIQzRaYVrz1A8sYnRnj4UXDXbOVtWmlaZkO9mipFqZ13okIfN87aDoJWB7VH6hcw==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", + "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", "dev": true, "requires": { - "@jest/types": "^26.3.0", + "@jest/types": "^26.6.2", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", @@ -7231,26 +6979,13 @@ "micromatch": "^4.0.2" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "color-convert": "^2.0.1" } }, "chalk": { @@ -7262,49 +6997,45 @@ "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "jest-validate": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.4.2.tgz", - "integrity": "sha512-blft+xDX7XXghfhY0mrsBCYhX365n8K5wNDC4XAcNKqqjEzsRUSXP44m6PL0QJEW2crxQFLLztVnJ4j7oPlQrQ==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", + "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", "dev": true, "requires": { - "@jest/types": "^26.3.0", + "@jest/types": "^26.6.2", "camelcase": "^6.0.0", "chalk": "^4.0.0", "jest-get-type": "^26.3.0", "leven": "^3.1.0", - "pretty-format": "^26.4.2" + "pretty-format": "^26.6.2" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "color-convert": "^2.0.1" } }, "camelcase": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz", - "integrity": "sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true }, "chalk": { @@ -7317,61 +7048,39 @@ "supports-color": "^7.1.0" } }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "pretty-format": { - "version": "26.4.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.4.2.tgz", - "integrity": "sha512-zK6Gd8zDsEiVydOCGLkoBoZuqv8VTiHyAbKznXe/gaph/DAeZOmit9yMfgIz5adIgAMMs5XfoYSwAX3jcCO1tA==", + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "@jest/types": "^26.3.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" + "has-flag": "^4.0.0" } } } }, "jest-watcher": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.3.0.tgz", - "integrity": "sha512-XnLdKmyCGJ3VoF6G/p5ohbJ04q/vv5aH9ENI+i6BL0uu9WWB6Z7Z2lhQQk0d2AVZcRGp1yW+/TsoToMhBFPRdQ==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", + "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", "dev": true, "requires": { - "@jest/test-result": "^26.3.0", - "@jest/types": "^26.3.0", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "jest-util": "^26.3.0", + "jest-util": "^26.6.2", "string-length": "^4.0.1" }, "dependencies": { - "@jest/types": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", - "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "color-convert": "^2.0.1" } }, "chalk": { @@ -7383,30 +7092,49 @@ "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "jest-worker": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz", - "integrity": "sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", "dev": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^7.0.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -7473,45 +7201,77 @@ } }, "jsdom": { - "version": "16.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", - "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", + "version": "16.5.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.2.tgz", + "integrity": "sha512-JxNtPt9C1ut85boCbJmffaQ06NBnzkQY/MWO3YxPW8IWS38A26z+B1oBvA9LwKrytewdfymnhi4UNH3/RAgZrg==", "dev": true, "requires": { - "abab": "^2.0.3", - "acorn": "^7.1.1", + "abab": "^2.0.5", + "acorn": "^8.1.0", "acorn-globals": "^6.0.0", "cssom": "^0.4.4", - "cssstyle": "^2.2.0", + "cssstyle": "^2.3.0", "data-urls": "^2.0.0", - "decimal.js": "^10.2.0", + "decimal.js": "^10.2.1", "domexception": "^2.0.1", - "escodegen": "^1.14.1", + "escodegen": "^2.0.0", "html-encoding-sniffer": "^2.0.1", "is-potential-custom-element-name": "^1.0.0", "nwsapi": "^2.2.0", - "parse5": "5.1.1", + "parse5": "6.0.1", "request": "^2.88.2", - "request-promise-native": "^1.0.8", - "saxes": "^5.0.0", + "request-promise-native": "^1.0.9", + "saxes": "^5.0.1", "symbol-tree": "^3.2.4", - "tough-cookie": "^3.0.1", + "tough-cookie": "^4.0.0", "w3c-hr-time": "^1.0.2", "w3c-xmlserializer": "^2.0.0", "webidl-conversions": "^6.1.0", "whatwg-encoding": "^1.0.5", "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0", - "ws": "^7.2.3", + "whatwg-url": "^8.5.0", + "ws": "^7.4.4", "xml-name-validator": "^3.0.0" }, "dependencies": { "acorn": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", - "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", + "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==", + "dev": true + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, "tr46": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", @@ -7528,12 +7288,12 @@ "dev": true }, "whatwg-url": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.2.2.tgz", - "integrity": "sha512-PcVnO6NiewhkmzV0qn7A+UZ9Xx4maNTI+O+TShmfE4pqjoCMwUMjkvoNhNHPTvgR7QH9Xt3R13iHuWy2sToFxQ==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.5.0.tgz", + "integrity": "sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg==", "dev": true, "requires": { - "lodash.sortby": "^4.7.0", + "lodash": "^4.7.0", "tr46": "^2.0.2", "webidl-conversions": "^6.1.0" } @@ -7543,8 +7303,7 @@ "jsesc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, "jshint": { "version": "2.12.0", @@ -7591,8 +7350,7 @@ "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json-stringify-safe": { "version": "5.0.1", @@ -7603,17 +7361,24 @@ "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" }, "jsonfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", - "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "requires": { "graceful-fs": "^4.1.6", - "universalify": "^1.0.0" + "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } } }, "jsprim": { @@ -7726,7 +7491,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -7737,7 +7501,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, "requires": { "minimist": "^1.2.0" } @@ -7750,20 +7513,18 @@ "integrity": "sha1-5riaV7t2ChVqOMyH4PJVD27UE9g=" }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "^2.0.0", + "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.isequal": { "version": "4.5.0", @@ -7771,12 +7532,6 @@ "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", "dev": true }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -7793,27 +7548,26 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } }, "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "requires": { - "yallist": "^3.0.2" + "yallist": "^4.0.0" } }, "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "requires": { - "pify": "^3.0.0" + "pify": "^4.0.1", + "semver": "^5.6.0" } }, "make-error": { @@ -7962,26 +7716,26 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true } } }, "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", + "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", "dev": true }, "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "version": "2.1.30", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", + "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", "dev": true, "requires": { - "mime-db": "1.44.0" + "mime-db": "1.47.0" } }, "mimic-fn": { @@ -8006,7 +7760,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -8014,8 +7767,7 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minipass": { "version": "2.9.0", @@ -8025,6 +7777,14 @@ "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } } }, "mississippi": { @@ -8106,7 +7866,6 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, "requires": { "minimist": "^1.2.5" } @@ -8153,13 +7912,12 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", "dev": true, "optional": true }, @@ -8253,6 +8011,14 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, + "node-html-parser": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz", + "integrity": "sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw==", + "requires": { + "he": "1.2.0" + } + }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -8348,9 +8114,9 @@ "dev": true }, "node-notifier": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", - "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz", + "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", "dev": true, "optional": true, "requires": { @@ -8362,20 +8128,10 @@ "which": "^2.0.2" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "requires": { - "yallist": "^4.0.0" - } - }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "optional": true, "requires": { @@ -8391,16 +8147,15 @@ "requires": { "isexe": "^2.0.0" } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true } } }, + "node-releases": { + "version": "1.1.71", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", + "dev": true + }, "nodemailer": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-4.7.0.tgz", @@ -8426,6 +8181,18 @@ "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + } } }, "normalize-path": { @@ -8514,43 +8281,17 @@ } }, "object.assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz", - "integrity": "sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, "requires": { + "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.0", "has-symbols": "^1.0.1", "object-keys": "^1.1.1" }, "dependencies": { - "es-abstract": { - "version": "1.18.0-next.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.0.tgz", - "integrity": "sha512-elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", - "dev": true - }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -8586,6 +8327,17 @@ "mimic-fn": "^2.1.0" } }, + "open": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/open/-/open-8.0.5.tgz", + "integrity": "sha512-hkPXCz7gijWp2GoWqsQ4O/5p7F6d5pIQ/+9NyeWG1nABJ4zvLi9kJRv1a44kVf5p13wK0WMoiRA+Xey68yOytA==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, "optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -8609,19 +8361,17 @@ "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "p-each-series": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz", - "integrity": "sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", "dev": true }, "p-finally": { @@ -8631,28 +8381,25 @@ "dev": true }, "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "requires": { - "p-try": "^1.0.0" + "p-try": "^2.0.0" } }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "^1.1.0" + "p-limit": "^2.0.0" } }, "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "pako": { "version": "1.0.11", @@ -8711,9 +8458,9 @@ } }, "parse-json": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", - "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -8729,9 +8476,9 @@ "dev": true }, "parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true }, "pascalcase": { @@ -8756,14 +8503,12 @@ "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { "version": "2.0.1", @@ -8809,10 +8554,9 @@ "dev": true }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" }, "pirates": { "version": "4.0.1", @@ -8824,12 +8568,11 @@ } }, "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "requires": { - "find-up": "^2.1.0" + "find-up": "^3.0.0" } }, "posix-character-classes": { @@ -8845,22 +8588,38 @@ "dev": true }, "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", "dev": true, "requires": { - "@jest/types": "^25.5.0", + "@jest/types": "^26.6.2", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + } } }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" }, "process": { "version": "0.11.10", @@ -8881,13 +8640,13 @@ "dev": true }, "prompts": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz", - "integrity": "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", + "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", "dev": true, "requires": { "kleur": "^3.0.3", - "sisteransi": "^1.0.4" + "sisteransi": "^1.0.5" } }, "prr": { @@ -8923,9 +8682,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true } } @@ -8966,8 +8725,7 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "q": { "version": "1.5.1", @@ -8982,9 +8740,9 @@ "dev": true }, "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", + "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", "dev": true }, "querystring-es3": { @@ -9013,9 +8771,9 @@ } }, "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true }, "read-pkg": { @@ -9068,15 +8826,6 @@ "p-locate": "^4.1.0" } }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, "p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", @@ -9086,12 +8835,6 @@ "p-limit": "^2.2.0" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -9121,9 +8864,9 @@ } }, "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "dev": true, "optional": true, "requires": { @@ -9151,22 +8894,19 @@ } }, "regenerate": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", - "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==", - "dev": true + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" }, "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" }, "regenerator-transform": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dev": true, "requires": { "babel-runtime": "^6.18.0", "babel-types": "^6.19.0", @@ -9187,7 +8927,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, "requires": { "regenerate": "^1.2.1", "regjsgen": "^0.2.0", @@ -9197,14 +8936,12 @@ "regjsgen": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" }, "regjsparser": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, "requires": { "jsesc": "~0.5.0" }, @@ -9212,8 +8949,7 @@ "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" } } }, @@ -9239,7 +8975,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, "requires": { "is-finite": "^1.0.0" } @@ -9344,13 +9079,10 @@ } }, "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true }, "resolve-cwd": { "version": "3.0.0", @@ -9473,8 +9205,7 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safe-regex": { "version": "1.1.0", @@ -9642,21 +9373,19 @@ } }, "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" } }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "serialize-javascript": { "version": "4.0.0", @@ -9755,8 +9484,7 @@ "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" }, "snapdragon": { "version": "0.8.2", @@ -9874,8 +9602,7 @@ "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { "version": "0.5.3", @@ -9894,15 +9621,14 @@ "version": "0.4.18", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, "requires": { "source-map": "^0.5.6" } }, "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", "dev": true }, "spdx-correct": { @@ -9932,9 +9658,9 @@ } }, "spdx-license-ids": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", - "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", "dev": true }, "split-string": { @@ -10024,9 +9750,9 @@ } }, "stack-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.2.tgz", - "integrity": "sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", "dev": true, "requires": { "escape-string-regexp": "^2.0.0" @@ -10159,15 +9885,21 @@ "dev": true }, "string-length": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz", - "integrity": "sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, "requires": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -10241,9 +9973,9 @@ } }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "dev": true, "requires": { "emoji-regex": "^8.0.0", @@ -10251,6 +9983,12 @@ "strip-ansi": "^6.0.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -10274,23 +10012,23 @@ } }, "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "string_decoder": { @@ -10303,17 +10041,8 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, "requires": { "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } } }, "strip-bom": { @@ -10387,13 +10116,9 @@ } }, "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, "supports-hyperlinks": { "version": "2.1.0", @@ -10403,6 +10128,17 @@ "requires": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "symbol-tree": { @@ -10620,89 +10356,21 @@ "worker-farm": "^1.7.0" }, "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, "is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "dev": true, "requires": { - "find-up": "^3.0.0" + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } }, "source-map": { @@ -10791,9 +10459,9 @@ } }, "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", "dev": true, "requires": { "setimmediate": "^1.0.4" @@ -10814,8 +10482,7 @@ "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" }, "to-object-path": { "version": "0.3.0", @@ -10859,14 +10526,14 @@ } }, "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", "dev": true, "requires": { - "ip-regex": "^2.1.0", - "psl": "^1.1.28", - "punycode": "^2.1.1" + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" } }, "tr46": { @@ -10881,22 +10548,20 @@ "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" }, "ts-jest": { - "version": "26.4.0", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.4.0.tgz", - "integrity": "sha512-ofBzoCqf6Nv/PoWb/ByV3VNKy2KJSikamOBxvR3E6eVdIw10GwAXoyvMWXXjZJK2s6S27ZE8fI+JBTnGaovl6Q==", + "version": "26.5.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.4.tgz", + "integrity": "sha512-I5Qsddo+VTm94SukBJ4cPimOoFZsYTeElR2xy6H2TOVs+NsvgYglW8KuQgKoApOKuaU/Ix/vrF9ebFZlb5D2Pg==", "dev": true, "requires": { - "@types/jest": "26.x", "bs-logger": "0.x", "buffer-from": "1.x", "fast-json-stable-stringify": "2.x", "jest-util": "^26.1.0", "json5": "2.x", - "lodash.memoize": "4.x", + "lodash": "4.x", "make-error": "1.x", "mkdirp": "1.x", "semver": "7.x", @@ -10904,9 +10569,9 @@ }, "dependencies": { "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -10919,23 +10584,26 @@ "dev": true }, "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } }, "yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-2agPoRFPoIcFzOIp6656gcvsg2ohtscpw2OINr/q46+Sq41xz2OYLqx5HRHabmFU1OARIPAYH5uteICE7mn/5A==", + "version": "20.2.7", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", + "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", "dev": true } } }, "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tty-browserify": { @@ -10996,9 +10664,9 @@ } }, "typescript": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.3.tgz", - "integrity": "sha512-tEu6DGxGgRJPb/mVPIZ48e69xCn2yRmCgYmDugAVwmJ6o+0u1RI18eO7E7WBTLYLaEVVOhwQmcdhQHweux/WPg==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz", + "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==", "dev": true }, "uc.micro": { @@ -11035,6 +10703,12 @@ "wordwrap": "0.0.2" } }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, "yargs": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", @@ -11056,6 +10730,18 @@ "dev": true, "optional": true }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, "underscore": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", @@ -11093,9 +10779,9 @@ } }, "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, "unset-value": { @@ -11146,10 +10832,9 @@ "optional": true }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", - "dev": true, + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "requires": { "punycode": "^2.1.0" } @@ -11175,6 +10860,12 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true } } }, @@ -11208,22 +10899,22 @@ "dev": true }, "uuid": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", - "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, "optional": true }, "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, "v8-to-istanbul": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-5.0.1.tgz", - "integrity": "sha512-mbDNjuDajqYe3TXFk5qxcQy8L1msXNE37WTlLoqqpBfRsimbNcrlhQlDPntmECEcUvdC+AQ8CyMMf6EUx1r74Q==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.1.tgz", + "integrity": "sha512-p0BB09E5FRjx0ELN6RgusIPsSPhtgexSRcKETybEs6IGOTXJSZqfwxp7r//55nnu0f1AxltY5VvdVqy2vZf9AA==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -11294,21 +10985,21 @@ } }, "watchpack": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", - "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", "dev": true, "requires": { "chokidar": "^3.4.1", "graceful-fs": "^4.1.2", "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.0" + "watchpack-chokidar2": "^2.0.1" } }, "watchpack-chokidar2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", - "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", "dev": true, "optional": true, "requires": { @@ -11568,9 +11259,9 @@ "dev": true }, "webpack": { - "version": "4.44.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", - "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", "dev": true, "requires": { "@webassemblyjs/ast": "1.9.0", @@ -11581,7 +11272,7 @@ "ajv": "^6.10.2", "ajv-keywords": "^3.4.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.3.0", + "enhanced-resolve": "^4.5.0", "eslint-scope": "^4.0.3", "json-parse-better-errors": "^1.0.2", "loader-runner": "^2.4.0", @@ -11599,9 +11290,9 @@ }, "dependencies": { "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", "dev": true }, "braces": { @@ -11697,6 +11388,17 @@ "to-regex": "^3.0.2" } }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -11797,15 +11499,6 @@ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -11828,49 +11521,6 @@ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, "resolve-cwd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", @@ -12027,6 +11677,19 @@ "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -12046,9 +11709,9 @@ "dev": true }, "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, "worker-farm": { @@ -12071,6 +11734,21 @@ "strip-ansi": "^6.0.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -12101,9 +11779,9 @@ } }, "ws": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", - "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", + "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", "dev": true }, "xml-name-validator": { @@ -12137,15 +11815,15 @@ "dev": true }, "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "yaml": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true }, "yargs": { @@ -12186,15 +11864,6 @@ "p-locate": "^4.1.0" } }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, "p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", @@ -12204,12 +11873,6 @@ "p-limit": "^2.2.0" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", diff --git a/package.json b/package.json index 6d2d7360..466cc977 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "contentstack", - "version": "3.12.2", + "version": "3.13.0", "description": "Contentstack Javascript SDK", "homepage": "https://www.contentstack.com/", "author": { @@ -10,7 +10,7 @@ "main": "dist/node/contentstack.js", "browser": "dist/web/contentstack.js", "types": "./index.d.ts", - "_id": "contentstack@3.12.2", + "_id": "contentstack@3.13.0", "scripts": { "test": "npm run test:e2e && npm run test:typescript", "test:e2e": "istanbul cover tape test/index.js | tap-html --out ./tap-html.html", @@ -20,8 +20,9 @@ "buildweb": "webpack -p --config webpack/webpack.web.js", "buildreactnative": "webpack --config webpack/webpack.react-native.js", "buildnativescript": "webpack --config webpack/webpack.nativescript.js", - "buildall": "NODE_ENV=production&&npm run buildnode&npm run buildweb&npm run buildreactnative&npm run buildnativescript", - "generate-docs": "node_modules/.bin/jsdoc --configure docs-config.json --verbose" + "build": "NODE_ENV=production && npm run buildnode && npm run buildweb && npm run buildreactnative && npm run buildnativescript", + "generate-docs": "node_modules/.bin/jsdoc --configure docs-config.json --verbose", + "prepare": "npm run build" }, "repository": { "type": "git", @@ -51,14 +52,14 @@ ], "dist": { "shasum": "a328ed07240476a26b31a23261355dc929e1da63", - "tarball": "https://registry.npmjs.org/contentstack/-/contentstack-3.12.2.tgz" + "tarball": "https://registry.npmjs.org/contentstack/-/contentstack-3.13.0.tgz" }, "license": "MIT", "directories": {}, - "_resolved": "https://registry.npmjs.org/contentstack/-/contentstack-3.12.2.tgz", + "_resolved": "https://registry.npmjs.org/contentstack/-/contentstack-3.13.0.tgz", "_npmOperationalInternal": { "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/contentstack-3.12.2.tgz_1477830884275_0.9869455888401717" + "tmp": "tmp/contentstack-3.13.0.tgz_1477830884275_0.9869455888401717" }, "devDependencies": { "@types/jest": "^26.0.13", @@ -95,6 +96,7 @@ "webpack-merge": "4.1.0" }, "dependencies": { + "@contentstack/utils": "1.0.0", "es6-promise": "4.1.1", "localStorage": "1.0.3", "node-fetch": "^2.6.1" diff --git a/src/core/contentstack.js b/src/core/contentstack.js index bc7da237..419382d8 100755 --- a/src/core/contentstack.js +++ b/src/core/contentstack.js @@ -1,7 +1,7 @@ import Stack from "./stack"; import CacheProvider from './cache-provider/index'; import ContentstackRegion from "./contentstackregion"; - +import {render , renderContent} from '@contentstack/utils'; /** * @class @@ -25,6 +25,26 @@ class Contentstack { */ this.CachePolicy = CacheProvider.policies; this.Region = ContentstackRegion; + + this.Utils = { + /** + * @memberof Contentstack + * @description Renders embedded objects in Rich text from Entry or Multiple Entry Object. + * + * @param {EntryEmbedable| EntryEmbedable[]} entry - Objects that contains RTE with embedded objects + * @param {string[]} keyPaths - Key paths for RTE contents in Entry object + * @param {RenderOption?} renderOption - Optional render options to render content + */ + render, + /** + * @memberof Contentstack + * @description Renders embedded objects in Rich text from String or String of array. + * @param {string | string[]} content - RTE content to render + * @param {EntryEmbedable} options.entry - Entry object containing embedded objects + * @param {RenderOption?} options.renderOption - Optional render options to render content + */ + renderContent + } } /** diff --git a/src/core/lib/utils.js b/src/core/lib/utils.js index 8dbc4725..a3778373 100755 --- a/src/core/lib/utils.js +++ b/src/core/lib/utils.js @@ -1,5 +1,6 @@ import Request from './request'; import Result from '../modules/result'; +import config from '../../../config'; /** * @method addSpread * @description method to add the spread. @@ -237,7 +238,9 @@ export function sendRequest(queryObject, options) { let tojson = (typeof self.tojson !== 'undefined') ? self.tojson : false; let isSingle = (self.entry_uid || self.singleEntry || self.asset_uid) ? true : false; let hashQuery = getHash(parseQueryFromParams(self, isSingle, tojson)); - + if (queryObject.requestParams.url.includes(config.urls.sync)) { + cachePolicy = -1; + } /** for new api v3 */ diff --git a/src/core/modules/entry.js b/src/core/modules/entry.js index e8712b3a..b5d24b01 100755 --- a/src/core/modules/entry.js +++ b/src/core/modules/entry.js @@ -184,6 +184,19 @@ export default class Entry { } } + /** + * @method includeEmbeddedItems + * @memberOf Entry + * @description Include Embedded Objects (Entries and Assets) along with entry/entries details. + * @example Stack.ContentType("contentType_uid").Entry("entry_uid").includeEmbeddedObjects().fetch() + * @returns {Entry} + * @instance + */ + includeEmbeddedItems() { + this._query['include_embedded_items'] = ["BASE"]; + return this; + } + /** * @method includeSchema * @memberOf Entry diff --git a/src/core/stack.js b/src/core/stack.js index 4637d517..9737a23f 100755 --- a/src/core/stack.js +++ b/src/core/stack.js @@ -4,7 +4,6 @@ import Entry from './modules/entry'; import Assets from './modules/assets'; import Query from './modules/query'; import Request from './lib/request'; -import * as cache from './cache'; import CacheProvider from './cache-provider/index'; let errorRetry = [408, 429] @@ -20,7 +19,7 @@ let errorRetry = [408, 429] * @param fetchOptions.timeout - Set timeout for the request. * @param fetchOptions.retryLimit - The number of retries before failure. Default is 5 * @param fetchOptions.retryDelay - The number of ms to use for operation retries. Default is 300ms - * @param fetchOptions.retryCondition - A function to determine if the error can be retried. Default retry is on status codes 408, 429, and greter than equal to 500. + * @param fetchOptions.retryCondition - A function to determine if the error can be retried. Default retry is on status codes 408, 429. * @param fetchOptions.retryDelayOptions.base - The base number of milliseconds to use in the exponential backoff for operation retries. * @param fetchOptions.retryDelayOptions.customBackoff - A custom function that accepts a retry count and error and returns the amount of time to delay in milliseconds. * @example diff --git a/test/asset/find-result-wrapper.js b/test/asset/find-result-wrapper.js index b6958f3b..daacd989 100755 --- a/test/asset/find-result-wrapper.js +++ b/test/asset/find-result-wrapper.js @@ -612,6 +612,26 @@ test('.query() - Raw query', function(assert) { }); }); +test('Non reference .tags() ', function(assert) { + var Query = Stack.Assets().Query(), + field = 'tags', + tags = ["asset3"]; + + Query + .tags(tags) + .find() + .then(function success(assets) { + assert.ok((assets.length >= 1), '1 or more asset/assets present in the resultset'); + if (assets && assets.length && assets[0].length) { + assert.equal(assets[0].length, 0, 'Non refernce tags count should be zero'); + } + assert.end(); + }, function error(err) { + console.error("error :", err); + assert.fail(".tags()"); + assert.end(); + }); +}); // tags test('.tags()', function(assert) { diff --git a/test/asset/find.js b/test/asset/find.js index f95b1bf1..b0329ab2 100755 --- a/test/asset/find.js +++ b/test/asset/find.js @@ -649,6 +649,27 @@ test('.query() - Raw query', function(assert) { }); +test('.tags()', function(assert) { + var Query = Stack.Assets().Query(), + field = 'tags', + tags = ["asset3"]; + + Query + .tags(tags) + .toJSON() + .find() + .then(function success(assets) { + assert.ok((assets.length >= 1), '1 or more asset/assets present in the resultset'); + if (assets && assets.length && assets[0].length) { + assert.equal(assets[0].length, 0, 'Non refernce tags count should be zero'); + } + assert.end(); + }, function error(err) { + console.error("error :", err); + assert.fail(".tags()"); + assert.end(); + }); +}); // tags test('.tags()', function(assert) { var Query = Stack.Assets().Query(), diff --git a/test/entry/find.js b/test/entry/find.js index 4833d3ff..aac228c1 100755 --- a/test/entry/find.js +++ b/test/entry/find.js @@ -10,7 +10,6 @@ const Utils = require('./utils.js'); const config = require('../config.json') Object.assign(init, config) const contentTypes = init.contentTypes; - let Stack; /* * Initalise the Contentstack Instance @@ -760,6 +759,24 @@ test('.regex()', function(assert) { }); }); +// inlcudeEmbeddedItems +test('.inlcudeEmbeddedItems()', function(assert) { + var Query = Stack.ContentType(contentTypes.source).Query(); + + Query + .includeEmbeddedItems() + .toJSON() + .find() + .then(function success(entries) { + assert.ok(entries[0].length, 'Entries present in the resultset'); + assert.end(); + }, function error(err) { + console.error("error :", err); + assert.fail(".inlcudeEmbeddedItems()"); + assert.end(); + }); +}); + test('find: without fallback', function(assert) { var _in = ['ja-jp'] Stack.ContentType(contentTypes.source).Query().language('ja-jp') @@ -816,7 +833,7 @@ test('.includeContentType()', function(assert) { assert.ok((entries[1]['uid'] === contentTypes.source), 'ContentType uid is same as requested'); for(var i=0; i { done() }); + + test('Entry include schema test', done => { + const entry = makeEntry().includeEmbeddedItems() + expect(entry._query).toEqual({"include_embedded_items": ['BASE']}); + done() + }); + test('Entry include schema test', done => { const entry = makeEntry().includeSchema() expect(entry._query).toEqual({"include_schema": true});