671 kBSource Map (JSON)View Raw
1{"version":3,"file":"dep-b2288281.js","sources":["../../../../../node_modules/lodash.camelcase/index.js","../../../../../node_modules/loader-utils/node_modules/json5/lib/unicode.js","../../../../../node_modules/loader-utils/node_modules/json5/lib/util.js","../../../../../node_modules/loader-utils/node_modules/json5/lib/parse.js","../../../../../node_modules/loader-utils/node_modules/json5/lib/stringify.js","../../../../../node_modules/loader-utils/node_modules/json5/lib/index.js","../../../../../node_modules/loader-utils/lib/parseQuery.js","../../../../../node_modules/loader-utils/lib/getOptions.js","../../../../../node_modules/loader-utils/lib/stringifyRequest.js","../../../../../node_modules/loader-utils/lib/getRemainingRequest.js","../../../../../node_modules/loader-utils/lib/getCurrentRequest.js","../../../../../node_modules/loader-utils/lib/isUrlRequest.js","../../../../../node_modules/loader-utils/lib/urlToRequest.js","../../../../../node_modules/loader-utils/lib/parseString.js","../../../../../node_modules/big.js/big.js","../../../../../node_modules/loader-utils/lib/getHashDigest.js","../../../../../node_modules/emojis-list/index.js","../../../../../node_modules/loader-utils/lib/interpolateName.js","../../../../../node_modules/loader-utils/lib/index.js","../../../../../node_modules/generic-names/index.js","../../../../../node_modules/icss-replace-symbols/lib/index.js","../../../../../node_modules/postcss-modules/build/css-loader-core/parser.js","../../../../../node_modules/postcss-modules/build/css-loader-core/loader.js","../../../../../node_modules/string-hash/index.js","../../../../../node_modules/postcss-modules/build/generateScopedName.js","../../../../../node_modules/postcss-modules/build/saveJSON.js","../../../../../node_modules/postcss-selector-parser/dist/util/unesc.js","../../../../../node_modules/postcss-selector-parser/dist/util/getProp.js","../../../../../node_modules/postcss-selector-parser/dist/util/ensureObject.js","../../../../../node_modules/postcss-selector-parser/dist/util/stripComments.js","../../../../../node_modules/postcss-selector-parser/dist/util/index.js","../../../../../node_modules/postcss-selector-parser/dist/selectors/node.js","../../../../../node_modules/postcss-selector-parser/dist/selectors/types.js","../../../../../node_modules/postcss-selector-parser/dist/selectors/container.js","../../../../../node_modules/postcss-selector-parser/dist/selectors/root.js","../../../../../node_modules/postcss-selector-parser/dist/selectors/selector.js","../../../../../node_modules/cssesc/cssesc.js","../../../../../node_modules/postcss-selector-parser/dist/selectors/className.js","../../../../../node_modules/postcss-selector-parser/dist/selectors/comment.js","../../../../../node_modules/postcss-selector-parser/dist/selectors/id.js","../../../../../node_modules/postcss-selector-parser/dist/selectors/namespace.js","../../../../../node_modules/postcss-selector-parser/dist/selectors/tag.js","../../../../../node_modules/postcss-selector-parser/dist/selectors/string.js","../../../../../node_modules/postcss-selector-parser/dist/selectors/pseudo.js","../../../../../node_modules/util-deprecate/node.js","../../../../../node_modules/postcss-selector-parser/dist/selectors/attribute.js","../../../../../node_modules/postcss-selector-parser/dist/selectors/universal.js","../../../../../node_modules/postcss-selector-parser/dist/selectors/combinator.js","../../../../../node_modules/postcss-selector-parser/dist/selectors/nesting.js","../../../../../node_modules/postcss-selector-parser/dist/sortAscending.js","../../../../../node_modules/postcss-selector-parser/dist/tokenTypes.js","../../../../../node_modules/postcss-selector-parser/dist/tokenize.js","../../../../../node_modules/postcss-selector-parser/dist/parser.js","../../../../../node_modules/postcss-selector-parser/dist/processor.js","../../../../../node_modules/postcss-selector-parser/dist/selectors/constructors.js","../../../../../node_modules/postcss-selector-parser/dist/selectors/guards.js","../../../../../node_modules/postcss-selector-parser/dist/selectors/index.js","../../../../../node_modules/postcss-selector-parser/dist/index.js","../../../../../node_modules/icss-utils/src/replaceValueSymbols.js","../../../../../node_modules/icss-utils/src/replaceSymbols.js","../../../../../node_modules/icss-utils/src/extractICSS.js","../../../../../node_modules/icss-utils/src/createICSSRules.js","../../../../../node_modules/icss-utils/src/index.js","../../../../../node_modules/postcss-modules-local-by-default/src/index.js","../../../../../node_modules/postcss-modules-extract-imports/src/topologicalSort.js","../../../../../node_modules/postcss-modules-extract-imports/src/index.js","../../../../../node_modules/postcss-modules-scope/src/index.js","../../../../../node_modules/postcss-modules-values/src/index.js","../../../../../node_modules/postcss-modules/build/behaviours.js","../../../../../node_modules/postcss-modules/build/index.js"],"sourcesContent":["/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe23',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20f0',\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')',\n rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')',\n rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr,\n rsUpper + '+' + rsOptUpperContr,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');\n\n/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 'ss'\n};\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\n/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = camelCase;\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});var Space_Separator=exports.Space_Separator=/[\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;var ID_Start=exports.ID_Start=/[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]/;var ID_Continue=exports.ID_Continue=/[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE3E\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC00-\\uDC4A\\uDC50-\\uDC59\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC36\\uDC38-\\uDC40\\uDC50-\\uDC59\\uDC72-\\uDC8F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F\\uDFE0]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6\\uDD00-\\uDD4A\\uDD50-\\uDD59]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/;","'use strict';Object.defineProperty(exports,'__esModule',{value:true});exports.isSpaceSeparator=isSpaceSeparator;exports.isIdStartChar=isIdStartChar;exports.isIdContinueChar=isIdContinueChar;exports.isDigit=isDigit;exports.isHexDigit=isHexDigit;var _unicode=require('../lib/unicode');var unicode=_interopRequireWildcard(_unicode);function _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}}function isSpaceSeparator(c){return unicode.Space_Separator.test(c)}function isIdStartChar(c){return c>='a'&&c<='z'||c>='A'&&c<='Z'||c==='$'||c==='_'||unicode.ID_Start.test(c)}function isIdContinueChar(c){return c>='a'&&c<='z'||c>='A'&&c<='Z'||c>='0'&&c<='9'||c==='$'||c==='_'||c==='\\u200C'||c==='\\u200D'||unicode.ID_Continue.test(c)}function isDigit(c){return /[0-9]/.test(c)}function isHexDigit(c){return /[0-9A-Fa-f]/.test(c)}","'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _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};exports.default=parse;var _util=require('./util');var util=_interopRequireWildcard(_util);function _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}}var source=void 0;var parseState=void 0;var stack=void 0;var pos=void 0;var line=void 0;var column=void 0;var token=void 0;var key=void 0;var root=void 0;function parse(text,reviver){source=String(text);parseState='start';stack=[];pos=0;line=1;column=0;token=undefined;key=undefined;root=undefined;do{token=lex();parseStates[parseState]()}while(token.type!=='eof');if(typeof reviver==='function'){return internalize({'':root},'',reviver)}return root}function internalize(holder,name,reviver){var value=holder[name];if(value!=null&&(typeof value==='undefined'?'undefined':_typeof(value))==='object'){for(var _key in value){var replacement=internalize(value,_key,reviver);if(replacement===undefined){delete value[_key]}else{value[_key]=replacement}}}return reviver.call(holder,name,value)}var lexState=void 0;var buffer=void 0;var doubleQuote=void 0;var _sign=void 0;var c=void 0;function lex(){lexState='default';buffer='';doubleQuote=false;_sign=1;for(;;){c=peek();var _token=lexStates[lexState]();if(_token){return _token}}}function peek(){if(source[pos]){return String.fromCodePoint(source.codePointAt(pos))}}function read(){var c=peek();if(c==='\\n'){line++;column=0}else if(c){column+=c.length}else{column++}if(c){pos+=c.length}return c}var lexStates={default:function _default(){switch(c){case'\\t':case'\\x0B':case'\\f':case' ':case'\\xA0':case'\\uFEFF':case'\\n':case'\\r':case'\\u2028':case'\\u2029':read();return;case'/':read();lexState='comment';return;case undefined:read();return newToken('eof');}if(util.isSpaceSeparator(c)){read();return}return lexStates[parseState]()},comment:function comment(){switch(c){case'*':read();lexState='multiLineComment';return;case'/':read();lexState='singleLineComment';return;}throw invalidChar(read())},multiLineComment:function multiLineComment(){switch(c){case'*':read();lexState='multiLineCommentAsterisk';return;case undefined:throw invalidChar(read());}read()},multiLineCommentAsterisk:function multiLineCommentAsterisk(){switch(c){case'*':read();return;case'/':read();lexState='default';return;case undefined:throw invalidChar(read());}read();lexState='multiLineComment'},singleLineComment:function singleLineComment(){switch(c){case'\\n':case'\\r':case'\\u2028':case'\\u2029':read();lexState='default';return;case undefined:read();return newToken('eof');}read()},value:function value(){switch(c){case'{':case'[':return newToken('punctuator',read());case'n':read();literal('ull');return newToken('null',null);case't':read();literal('rue');return newToken('boolean',true);case'f':read();literal('alse');return newToken('boolean',false);case'-':case'+':if(read()==='-'){_sign=-1}lexState='sign';return;case'.':buffer=read();lexState='decimalPointLeading';return;case'0':buffer=read();lexState='zero';return;case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':buffer=read();lexState='decimalInteger';return;case'I':read();literal('nfinity');return newToken('numeric',Infinity);case'N':read();literal('aN');return newToken('numeric',NaN);case'\"':case'\\'':doubleQuote=read()==='\"';buffer='';lexState='string';return;}throw invalidChar(read())},identifierNameStartEscape:function identifierNameStartEscape(){if(c!=='u'){throw invalidChar(read())}read();var u=unicodeEscape();switch(u){case'$':case'_':break;default:if(!util.isIdStartChar(u)){throw invalidIdentifier()}break;}buffer+=u;lexState='identifierName'},identifierName:function identifierName(){switch(c){case'$':case'_':case'\\u200C':case'\\u200D':buffer+=read();return;case'\\\\':read();lexState='identifierNameEscape';return;}if(util.isIdContinueChar(c)){buffer+=read();return}return newToken('identifier',buffer)},identifierNameEscape:function identifierNameEscape(){if(c!=='u'){throw invalidChar(read())}read();var u=unicodeEscape();switch(u){case'$':case'_':case'\\u200C':case'\\u200D':break;default:if(!util.isIdContinueChar(u)){throw invalidIdentifier()}break;}buffer+=u;lexState='identifierName'},sign:function sign(){switch(c){case'.':buffer=read();lexState='decimalPointLeading';return;case'0':buffer=read();lexState='zero';return;case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':buffer=read();lexState='decimalInteger';return;case'I':read();literal('nfinity');return newToken('numeric',_sign*Infinity);case'N':read();literal('aN');return newToken('numeric',NaN);}throw invalidChar(read())},zero:function zero(){switch(c){case'.':buffer+=read();lexState='decimalPoint';return;case'e':case'E':buffer+=read();lexState='decimalExponent';return;case'x':case'X':buffer+=read();lexState='hexadecimal';return;}return newToken('numeric',_sign*0)},decimalInteger:function decimalInteger(){switch(c){case'.':buffer+=read();lexState='decimalPoint';return;case'e':case'E':buffer+=read();lexState='decimalExponent';return;}if(util.isDigit(c)){buffer+=read();return}return newToken('numeric',_sign*Number(buffer))},decimalPointLeading:function decimalPointLeading(){if(util.isDigit(c)){buffer+=read();lexState='decimalFraction';return}throw invalidChar(read())},decimalPoint:function decimalPoint(){switch(c){case'e':case'E':buffer+=read();lexState='decimalExponent';return;}if(util.isDigit(c)){buffer+=read();lexState='decimalFraction';return}return newToken('numeric',_sign*Number(buffer))},decimalFraction:function decimalFraction(){switch(c){case'e':case'E':buffer+=read();lexState='decimalExponent';return;}if(util.isDigit(c)){buffer+=read();return}return newToken('numeric',_sign*Number(buffer))},decimalExponent:function decimalExponent(){switch(c){case'+':case'-':buffer+=read();lexState='decimalExponentSign';return;}if(util.isDigit(c)){buffer+=read();lexState='decimalExponentInteger';return}throw invalidChar(read())},decimalExponentSign:function decimalExponentSign(){if(util.isDigit(c)){buffer+=read();lexState='decimalExponentInteger';return}throw invalidChar(read())},decimalExponentInteger:function decimalExponentInteger(){if(util.isDigit(c)){buffer+=read();return}return newToken('numeric',_sign*Number(buffer))},hexadecimal:function hexadecimal(){if(util.isHexDigit(c)){buffer+=read();lexState='hexadecimalInteger';return}throw invalidChar(read())},hexadecimalInteger:function hexadecimalInteger(){if(util.isHexDigit(c)){buffer+=read();return}return newToken('numeric',_sign*Number(buffer))},string:function string(){switch(c){case'\\\\':read();buffer+=escape();return;case'\"':if(doubleQuote){read();return newToken('string',buffer)}buffer+=read();return;case'\\'':if(!doubleQuote){read();return newToken('string',buffer)}buffer+=read();return;case'\\n':case'\\r':throw invalidChar(read());case'\\u2028':case'\\u2029':separatorChar(c);break;case undefined:throw invalidChar(read());}buffer+=read()},start:function start(){switch(c){case'{':case'[':return newToken('punctuator',read());}lexState='value'},beforePropertyName:function beforePropertyName(){switch(c){case'$':case'_':buffer=read();lexState='identifierName';return;case'\\\\':read();lexState='identifierNameStartEscape';return;case'}':return newToken('punctuator',read());case'\"':case'\\'':doubleQuote=read()==='\"';lexState='string';return;}if(util.isIdStartChar(c)){buffer+=read();lexState='identifierName';return}throw invalidChar(read())},afterPropertyName:function afterPropertyName(){if(c===':'){return newToken('punctuator',read())}throw invalidChar(read())},beforePropertyValue:function beforePropertyValue(){lexState='value'},afterPropertyValue:function afterPropertyValue(){switch(c){case',':case'}':return newToken('punctuator',read());}throw invalidChar(read())},beforeArrayValue:function beforeArrayValue(){if(c===']'){return newToken('punctuator',read())}lexState='value'},afterArrayValue:function afterArrayValue(){switch(c){case',':case']':return newToken('punctuator',read());}throw invalidChar(read())},end:function end(){throw invalidChar(read())}};function newToken(type,value){return{type:type,value:value,line:line,column:column}}function literal(s){var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=s[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var _c=_step.value;var p=peek();if(p!==_c){throw invalidChar(read())}read()}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}}function escape(){var c=peek();switch(c){case'b':read();return'\\b';case'f':read();return'\\f';case'n':read();return'\\n';case'r':read();return'\\r';case't':read();return'\\t';case'v':read();return'\\x0B';case'0':read();if(util.isDigit(peek())){throw invalidChar(read())}return'\\0';case'x':read();return hexEscape();case'u':read();return unicodeEscape();case'\\n':case'\\u2028':case'\\u2029':read();return'';case'\\r':read();if(peek()==='\\n'){read()}return'';case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':throw invalidChar(read());case undefined:throw invalidChar(read());}return read()}function hexEscape(){var buffer='';var c=peek();if(!util.isHexDigit(c)){throw invalidChar(read())}buffer+=read();c=peek();if(!util.isHexDigit(c)){throw invalidChar(read())}buffer+=read();return String.fromCodePoint(parseInt(buffer,16))}function unicodeEscape(){var buffer='';var count=4;while(count-->0){var _c2=peek();if(!util.isHexDigit(_c2)){throw invalidChar(read())}buffer+=read()}return String.fromCodePoint(parseInt(buffer,16))}var parseStates={start:function start(){if(token.type==='eof'){throw invalidEOF()}push()},beforePropertyName:function beforePropertyName(){switch(token.type){case'identifier':case'string':key=token.value;parseState='afterPropertyName';return;case'punctuator':pop();return;case'eof':throw invalidEOF();}},afterPropertyName:function afterPropertyName(){if(token.type==='eof'){throw invalidEOF()}parseState='beforePropertyValue'},beforePropertyValue:function beforePropertyValue(){if(token.type==='eof'){throw invalidEOF()}push()},beforeArrayValue:function beforeArrayValue(){if(token.type==='eof'){throw invalidEOF()}if(token.type==='punctuator'&&token.value===']'){pop();return}push()},afterPropertyValue:function afterPropertyValue(){if(token.type==='eof'){throw invalidEOF()}switch(token.value){case',':parseState='beforePropertyName';return;case'}':pop();}},afterArrayValue:function afterArrayValue(){if(token.type==='eof'){throw invalidEOF()}switch(token.value){case',':parseState='beforeArrayValue';return;case']':pop();}},end:function end(){}};function push(){var value=void 0;switch(token.type){case'punctuator':switch(token.value){case'{':value={};break;case'[':value=[];break;}break;case'null':case'boolean':case'numeric':case'string':value=token.value;break;}if(root===undefined){root=value}else{var parent=stack[stack.length-1];if(Array.isArray(parent)){parent.push(value)}else{parent[key]=value}}if(value!==null&&(typeof value==='undefined'?'undefined':_typeof(value))==='object'){stack.push(value);if(Array.isArray(value)){parseState='beforeArrayValue'}else{parseState='beforePropertyName'}}else{var current=stack[stack.length-1];if(current==null){parseState='end'}else if(Array.isArray(current)){parseState='afterArrayValue'}else{parseState='afterPropertyValue'}}}function pop(){stack.pop();var current=stack[stack.length-1];if(current==null){parseState='end'}else if(Array.isArray(current)){parseState='afterArrayValue'}else{parseState='afterPropertyValue'}}function invalidChar(c){if(c===undefined){return syntaxError('JSON5: invalid end of input at '+line+':'+column)}return syntaxError('JSON5: invalid character \\''+formatChar(c)+'\\' at '+line+':'+column)}function invalidEOF(){return syntaxError('JSON5: invalid end of input at '+line+':'+column)}function invalidIdentifier(){column-=5;return syntaxError('JSON5: invalid identifier character at '+line+':'+column)}function separatorChar(c){console.warn('JSON5: \\''+c+'\\' is not valid ECMAScript; consider escaping')}function formatChar(c){var replacements={'\\'':'\\\\\\'','\"':'\\\\\"','\\\\':'\\\\\\\\','\\b':'\\\\b','\\f':'\\\\f','\\n':'\\\\n','\\r':'\\\\r','\\t':'\\\\t','\\x0B':'\\\\v','\\0':'\\\\0','\\u2028':'\\\\u2028','\\u2029':'\\\\u2029'};if(replacements[c]){return replacements[c]}if(c<' '){var hexString=c.charCodeAt(0).toString(16);return'\\\\x'+('00'+hexString).substring(hexString.length)}return c}function syntaxError(message){var err=new SyntaxError(message);err.lineNumber=line;err.columnNumber=column;return err}module.exports=exports['default'];","'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _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};exports.default=stringify;var _util=require('./util');var util=_interopRequireWildcard(_util);function _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}}function stringify(value,replacer,space){var stack=[];var indent='';var propertyList=void 0;var replacerFunc=void 0;var gap='';var quote=void 0;if(replacer!=null&&(typeof replacer==='undefined'?'undefined':_typeof(replacer))==='object'&&!Array.isArray(replacer)){space=replacer.space;quote=replacer.quote;replacer=replacer.replacer}if(typeof replacer==='function'){replacerFunc=replacer}else if(Array.isArray(replacer)){propertyList=[];var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=replacer[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var v=_step.value;var item=void 0;if(typeof v==='string'){item=v}else if(typeof v==='number'||v instanceof String||v instanceof Number){item=String(v)}if(item!==undefined&&propertyList.indexOf(item)<0){propertyList.push(item)}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}}if(space instanceof Number){space=Number(space)}else if(space instanceof String){space=String(space)}if(typeof space==='number'){if(space>0){space=Math.min(10,Math.floor(space));gap=' '.substr(0,space)}}else if(typeof space==='string'){gap=space.substr(0,10)}return serializeProperty('',{'':value});function serializeProperty(key,holder){var value=holder[key];if(value!=null){if(typeof value.toJSON5==='function'){value=value.toJSON5(key)}else if(typeof value.toJSON==='function'){value=value.toJSON(key)}}if(replacerFunc){value=replacerFunc.call(holder,key,value)}if(value instanceof Number){value=Number(value)}else if(value instanceof String){value=String(value)}else if(value instanceof Boolean){value=value.valueOf()}switch(value){case null:return'null';case true:return'true';case false:return'false';}if(typeof value==='string'){return quoteString(value,false)}if(typeof value==='number'){return String(value)}if((typeof value==='undefined'?'undefined':_typeof(value))==='object'){return Array.isArray(value)?serializeArray(value):serializeObject(value)}return undefined}function quoteString(value){var quotes={'\\'':0.1,'\"':0.2};var replacements={'\\'':'\\\\\\'','\"':'\\\\\"','\\\\':'\\\\\\\\','\\b':'\\\\b','\\f':'\\\\f','\\n':'\\\\n','\\r':'\\\\r','\\t':'\\\\t','\\x0B':'\\\\v','\\0':'\\\\0','\\u2028':'\\\\u2028','\\u2029':'\\\\u2029'};var product='';var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=value[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var c=_step2.value;switch(c){case'\\'':case'\"':quotes[c]++;product+=c;continue;}if(replacements[c]){product+=replacements[c];continue}if(c<' '){var hexString=c.charCodeAt(0).toString(16);product+='\\\\x'+('00'+hexString).substring(hexString.length);continue}product+=c}}catch(err){_didIteratorError2=true;_iteratorError2=err}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return()}}finally{if(_didIteratorError2){throw _iteratorError2}}}var quoteChar=quote||Object.keys(quotes).reduce(function(a,b){return quotes[a]<quotes[b]?a:b});product=product.replace(new RegExp(quoteChar,'g'),replacements[quoteChar]);return quoteChar+product+quoteChar}function serializeObject(value){if(stack.indexOf(value)>=0){throw TypeError('Converting circular structure to JSON5')}stack.push(value);var stepback=indent;indent=indent+gap;var keys=propertyList||Object.keys(value);var partial=[];var _iteratorNormalCompletion3=true;var _didIteratorError3=false;var _iteratorError3=undefined;try{for(var _iterator3=keys[Symbol.iterator](),_step3;!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=true){var key=_step3.value;var propertyString=serializeProperty(key,value);if(propertyString!==undefined){var member=serializeKey(key)+':';if(gap!==''){member+=' '}member+=propertyString;partial.push(member)}}}catch(err){_didIteratorError3=true;_iteratorError3=err}finally{try{if(!_iteratorNormalCompletion3&&_iterator3.return){_iterator3.return()}}finally{if(_didIteratorError3){throw _iteratorError3}}}var final=void 0;if(partial.length===0){final='{}'}else{var properties=void 0;if(gap===''){properties=partial.join(',');final='{'+properties+'}'}else{var separator=',\\n'+indent;properties=partial.join(separator);final='{\\n'+indent+properties+',\\n'+stepback+'}'}}stack.pop();indent=stepback;return final}function serializeKey(key){if(key.length===0){return quoteString(key,true)}var firstChar=String.fromCodePoint(key.codePointAt(0));if(!util.isIdStartChar(firstChar)){return quoteString(key,true)}for(var i=firstChar.length;i<key.length;i++){if(!util.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))){return quoteString(key,true)}}return key}function serializeArray(value){if(stack.indexOf(value)>=0){throw TypeError('Converting circular structure to JSON5')}stack.push(value);var stepback=indent;indent=indent+gap;var partial=[];for(var i=0;i<value.length;i++){var propertyString=serializeProperty(String(i),value);partial.push(propertyString!==undefined?propertyString:'null')}var final=void 0;if(partial.length===0){final='[]'}else{if(gap===''){var properties=partial.join(',');final='['+properties+']'}else{var separator=',\\n'+indent;var _properties=partial.join(separator);final='[\\n'+indent+_properties+',\\n'+stepback+']'}}stack.pop();indent=stepback;return final}}module.exports=exports['default'];","'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _parse=require('./parse');var _parse2=_interopRequireDefault(_parse);var _stringify=require('./stringify');var _stringify2=_interopRequireDefault(_stringify);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default={parse:_parse2.default,stringify:_stringify2.default};module.exports=exports['default'];","'use strict';\n\nconst JSON5 = require('json5');\n\nconst specialValues = {\n null: null,\n true: true,\n false: false,\n};\n\nfunction parseQuery(query) {\n if (query.substr(0, 1) !== '?') {\n throw new Error(\n \"A valid query string passed to parseQuery should begin with '?'\"\n );\n }\n\n query = query.substr(1);\n\n if (!query) {\n return {};\n }\n\n if (query.substr(0, 1) === '{' && query.substr(-1) === '}') {\n return JSON5.parse(query);\n }\n\n const queryArgs = query.split(/[,&]/g);\n const result = {};\n\n queryArgs.forEach((arg) => {\n const idx = arg.indexOf('=');\n\n if (idx >= 0) {\n let name = arg.substr(0, idx);\n let value = decodeURIComponent(arg.substr(idx + 1));\n\n if (specialValues.hasOwnProperty(value)) {\n value = specialValues[value];\n }\n\n if (name.substr(-2) === '[]') {\n name = decodeURIComponent(name.substr(0, name.length - 2));\n\n if (!Array.isArray(result[name])) {\n result[name] = [];\n }\n\n result[name].push(value);\n } else {\n name = decodeURIComponent(name);\n result[name] = value;\n }\n } else {\n if (arg.substr(0, 1) === '-') {\n result[decodeURIComponent(arg.substr(1))] = false;\n } else if (arg.substr(0, 1) === '+') {\n result[decodeURIComponent(arg.substr(1))] = true;\n } else {\n result[decodeURIComponent(arg)] = true;\n }\n }\n });\n\n return result;\n}\n\nmodule.exports = parseQuery;\n","'use strict';\n\nconst parseQuery = require('./parseQuery');\n\nfunction getOptions(loaderContext) {\n const query = loaderContext.query;\n\n if (typeof query === 'string' && query !== '') {\n return parseQuery(loaderContext.query);\n }\n\n if (!query || typeof query !== 'object') {\n // Not object-like queries are not supported.\n return null;\n }\n\n return query;\n}\n\nmodule.exports = getOptions;\n","'use strict';\n\nconst path = require('path');\n\nconst matchRelativePath = /^\\.\\.?[/\\\\]/;\n\nfunction isAbsolutePath(str) {\n return path.posix.isAbsolute(str) || path.win32.isAbsolute(str);\n}\n\nfunction isRelativePath(str) {\n return matchRelativePath.test(str);\n}\n\nfunction stringifyRequest(loaderContext, request) {\n const splitted = request.split('!');\n const context =\n loaderContext.context ||\n (loaderContext.options && loaderContext.options.context);\n\n return JSON.stringify(\n splitted\n .map((part) => {\n // First, separate singlePath from query, because the query might contain paths again\n const splittedPart = part.match(/^(.*?)(\\?.*)/);\n const query = splittedPart ? splittedPart[2] : '';\n let singlePath = splittedPart ? splittedPart[1] : part;\n\n if (isAbsolutePath(singlePath) && context) {\n singlePath = path.relative(context, singlePath);\n\n if (isAbsolutePath(singlePath)) {\n // If singlePath still matches an absolute path, singlePath was on a different drive than context.\n // In this case, we leave the path platform-specific without replacing any separators.\n // @see https://github.com/webpack/loader-utils/pull/14\n return singlePath + query;\n }\n\n if (isRelativePath(singlePath) === false) {\n // Ensure that the relative path starts at least with ./ otherwise it would be a request into the modules directory (like node_modules).\n singlePath = './' + singlePath;\n }\n }\n\n return singlePath.replace(/\\\\/g, '/') + query;\n })\n .join('!')\n );\n}\n\nmodule.exports = stringifyRequest;\n","'use strict';\n\nfunction getRemainingRequest(loaderContext) {\n if (loaderContext.remainingRequest) {\n return loaderContext.remainingRequest;\n }\n\n const request = loaderContext.loaders\n .slice(loaderContext.loaderIndex + 1)\n .map((obj) => obj.request)\n .concat([loaderContext.resource]);\n\n return request.join('!');\n}\n\nmodule.exports = getRemainingRequest;\n","'use strict';\n\nfunction getCurrentRequest(loaderContext) {\n if (loaderContext.currentRequest) {\n return loaderContext.currentRequest;\n }\n\n const request = loaderContext.loaders\n .slice(loaderContext.loaderIndex)\n .map((obj) => obj.request)\n .concat([loaderContext.resource]);\n\n return request.join('!');\n}\n\nmodule.exports = getCurrentRequest;\n","'use strict';\n\nconst path = require('path');\n\nfunction isUrlRequest(url, root) {\n // An URL is not an request if\n\n // 1. It's an absolute url and it is not `windows` path like `C:\\dir\\file`\n if (/^[a-z][a-z0-9+.-]*:/i.test(url) && !path.win32.isAbsolute(url)) {\n return false;\n }\n\n // 2. It's a protocol-relative\n if (/^\\/\\//.test(url)) {\n return false;\n }\n\n // 3. It's some kind of url for a template\n if (/^[{}[\\]#*;,'§$%&(=?`´^°<>]/.test(url)) {\n return false;\n }\n\n // 4. It's also not an request if root isn't set and it's a root-relative url\n if ((root === undefined || root === false) && /^\\//.test(url)) {\n return false;\n }\n\n return true;\n}\n\nmodule.exports = isUrlRequest;\n","'use strict';\n\n// we can't use path.win32.isAbsolute because it also matches paths starting with a forward slash\nconst matchNativeWin32Path = /^[A-Z]:[/\\\\]|^\\\\\\\\/i;\n\nfunction urlToRequest(url, root) {\n // Do not rewrite an empty url\n if (url === '') {\n return '';\n }\n\n const moduleRequestRegex = /^[^?]*~/;\n let request;\n\n if (matchNativeWin32Path.test(url)) {\n // absolute windows path, keep it\n request = url;\n } else if (root !== undefined && root !== false && /^\\//.test(url)) {\n // if root is set and the url is root-relative\n switch (typeof root) {\n // 1. root is a string: root is prefixed to the url\n case 'string':\n // special case: `~` roots convert to module request\n if (moduleRequestRegex.test(root)) {\n request = root.replace(/([^~/])$/, '$1/') + url.slice(1);\n } else {\n request = root + url;\n }\n break;\n // 2. root is `true`: absolute paths are allowed\n // *nix only, windows-style absolute paths are always allowed as they doesn't start with a `/`\n case 'boolean':\n request = url;\n break;\n default:\n throw new Error(\n \"Unexpected parameters to loader-utils 'urlToRequest': url = \" +\n url +\n ', root = ' +\n root +\n '.'\n );\n }\n } else if (/^\\.\\.?\\//.test(url)) {\n // A relative url stays\n request = url;\n } else {\n // every other url is threaded like a relative url\n request = './' + url;\n }\n\n // A `~` makes the url an module\n if (moduleRequestRegex.test(request)) {\n request = request.replace(moduleRequestRegex, '');\n }\n\n return request;\n}\n\nmodule.exports = urlToRequest;\n","'use strict';\n\nfunction parseString(str) {\n try {\n if (str[0] === '\"') {\n return JSON.parse(str);\n }\n\n if (str[0] === \"'\" && str.substr(str.length - 1) === \"'\") {\n return parseString(\n str\n .replace(/\\\\.|\"/g, (x) => (x === '\"' ? '\\\\\"' : x))\n .replace(/^'|'$/g, '\"')\n );\n }\n\n return JSON.parse('\"' + str + '\"');\n } catch (e) {\n return str;\n }\n}\n\nmodule.exports = parseString;\n","/*\r\n * big.js v5.2.2\r\n * A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic.\r\n * Copyright (c) 2018 Michael Mclaughlin <M8ch88l@gmail.com>\r\n * https://github.com/MikeMcl/big.js/LICENCE\r\n */\r\n;(function (GLOBAL) {\r\n 'use strict';\r\n var Big,\r\n\r\n\r\n/************************************** EDITABLE DEFAULTS *****************************************/\r\n\r\n\r\n // The default values below must be integers within the stated ranges.\r\n\r\n /*\r\n * The maximum number of decimal places (DP) of the results of operations involving division:\r\n * div and sqrt, and pow with negative exponents.\r\n */\r\n DP = 20, // 0 to MAX_DP\r\n\r\n /*\r\n * The rounding mode (RM) used when rounding to the above decimal places.\r\n *\r\n * 0 Towards zero (i.e. truncate, no rounding). (ROUND_DOWN)\r\n * 1 To nearest neighbour. If equidistant, round up. (ROUND_HALF_UP)\r\n * 2 To nearest neighbour. If equidistant, to even. (ROUND_HALF_EVEN)\r\n * 3 Away from zero. (ROUND_UP)\r\n */\r\n RM = 1, // 0, 1, 2 or 3\r\n\r\n // The maximum value of DP and Big.DP.\r\n MAX_DP = 1E6, // 0 to 1000000\r\n\r\n // The maximum magnitude of the exponent argument to the pow method.\r\n MAX_POWER = 1E6, // 1 to 1000000\r\n\r\n /*\r\n * The negative exponent (NE) at and beneath which toString returns exponential notation.\r\n * (JavaScript numbers: -7)\r\n * -1000000 is the minimum recommended exponent value of a Big.\r\n */\r\n NE = -7, // 0 to -1000000\r\n\r\n /*\r\n * The positive exponent (PE) at and above which toString returns exponential notation.\r\n * (JavaScript numbers: 21)\r\n * 1000000 is the maximum recommended exponent value of a Big.\r\n * (This limit is not enforced or checked.)\r\n */\r\n PE = 21, // 0 to 1000000\r\n\r\n\r\n/**************************************************************************************************/\r\n\r\n\r\n // Error messages.\r\n NAME = '[big.js] ',\r\n INVALID = NAME + 'Invalid ',\r\n INVALID_DP = INVALID + 'decimal places',\r\n INVALID_RM = INVALID + 'rounding mode',\r\n DIV_BY_ZERO = NAME + 'Division by zero',\r\n\r\n // The shared prototype object.\r\n P = {},\r\n UNDEFINED = void 0,\r\n NUMERIC = /^-?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i;\r\n\r\n\r\n /*\r\n * Create and return a Big constructor.\r\n *\r\n */\r\n function _Big_() {\r\n\r\n /*\r\n * The Big constructor and exported function.\r\n * Create and return a new instance of a Big number object.\r\n *\r\n * n {number|string|Big} A numeric value.\r\n */\r\n function Big(n) {\r\n var x = this;\r\n\r\n // Enable constructor usage without new.\r\n if (!(x instanceof Big)) return n === UNDEFINED ? _Big_() : new Big(n);\r\n\r\n // Duplicate.\r\n if (n instanceof Big) {\r\n x.s = n.s;\r\n x.e = n.e;\r\n x.c = n.c.slice();\r\n } else {\r\n parse(x, n);\r\n }\r\n\r\n /*\r\n * Retain a reference to this Big constructor, and shadow Big.prototype.constructor which\r\n * points to Object.\r\n */\r\n x.constructor = Big;\r\n }\r\n\r\n Big.prototype = P;\r\n Big.DP = DP;\r\n Big.RM = RM;\r\n Big.NE = NE;\r\n Big.PE = PE;\r\n Big.version = '5.2.2';\r\n\r\n return Big;\r\n }\r\n\r\n\r\n /*\r\n * Parse the number or string value passed to a Big constructor.\r\n *\r\n * x {Big} A Big number instance.\r\n * n {number|string} A numeric value.\r\n */\r\n function parse(x, n) {\r\n var e, i, nl;\r\n\r\n // Minus zero?\r\n if (n === 0 && 1 / n < 0) n = '-0';\r\n else if (!NUMERIC.test(n += '')) throw Error(INVALID + 'number');\r\n\r\n // Determine sign.\r\n x.s = n.charAt(0) == '-' ? (n = n.slice(1), -1) : 1;\r\n\r\n // Decimal point?\r\n if ((e = n.indexOf('.')) > -1) n = n.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = n.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +n.slice(i + 1);\r\n n = n.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = n.length;\r\n }\r\n\r\n nl = n.length;\r\n\r\n // Determine leading zeros.\r\n for (i = 0; i < nl && n.charAt(i) == '0';) ++i;\r\n\r\n if (i == nl) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n\r\n // Determine trailing zeros.\r\n for (; nl > 0 && n.charAt(--nl) == '0';);\r\n x.e = e - i - 1;\r\n x.c = [];\r\n\r\n // Convert string to array of digits without leading/trailing zeros.\r\n for (e = 0; i <= nl;) x.c[e++] = +n.charAt(i++);\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round Big x to a maximum of dp decimal places using rounding mode rm.\r\n * Called by stringify, P.div, P.round and P.sqrt.\r\n *\r\n * x {Big} The Big to round.\r\n * dp {number} Integer, 0 to MAX_DP inclusive.\r\n * rm {number} 0, 1, 2 or 3 (DOWN, HALF_UP, HALF_EVEN, UP)\r\n * [more] {boolean} Whether the result of division was truncated.\r\n */\r\n function round(x, dp, rm, more) {\r\n var xc = x.c,\r\n i = x.e + dp + 1;\r\n\r\n if (i < xc.length) {\r\n if (rm === 1) {\r\n\r\n // xc[i] is the digit after the digit that may be rounded up.\r\n more = xc[i] >= 5;\r\n } else if (rm === 2) {\r\n more = xc[i] > 5 || xc[i] == 5 &&\r\n (more || i < 0 || xc[i + 1] !== UNDEFINED || xc[i - 1] & 1);\r\n } else if (rm === 3) {\r\n more = more || !!xc[0];\r\n } else {\r\n more = false;\r\n if (rm !== 0) throw Error(INVALID_RM);\r\n }\r\n\r\n if (i < 1) {\r\n xc.length = 1;\r\n\r\n if (more) {\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n x.e = -dp;\r\n xc[0] = 1;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n } else {\r\n\r\n // Remove any digits after the required decimal places.\r\n xc.length = i--;\r\n\r\n // Round up?\r\n if (more) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up.\r\n for (; ++xc[i] > 9;) {\r\n xc[i] = 0;\r\n if (!i--) {\r\n ++x.e;\r\n xc.unshift(1);\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; !xc[--i];) xc.pop();\r\n }\r\n } else if (rm < 0 || rm > 3 || rm !== ~~rm) {\r\n throw Error(INVALID_RM);\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Return a string representing the value of Big x in normal or exponential notation.\r\n * Handles P.toExponential, P.toFixed, P.toJSON, P.toPrecision, P.toString and P.valueOf.\r\n *\r\n * x {Big}\r\n * id? {number} Caller id.\r\n * 1 toExponential\r\n * 2 toFixed\r\n * 3 toPrecision\r\n * 4 valueOf\r\n * n? {number|undefined} Caller's argument.\r\n * k? {number|undefined}\r\n */\r\n function stringify(x, id, n, k) {\r\n var e, s,\r\n Big = x.constructor,\r\n z = !x.c[0];\r\n\r\n if (n !== UNDEFINED) {\r\n if (n !== ~~n || n < (id == 3) || n > MAX_DP) {\r\n throw Error(id == 3 ? INVALID + 'precision' : INVALID_DP);\r\n }\r\n\r\n x = new Big(x);\r\n\r\n // The index of the digit that may be rounded up.\r\n n = k - x.e;\r\n\r\n // Round?\r\n if (x.c.length > ++k) round(x, n, Big.RM);\r\n\r\n // toFixed: recalculate k as x.e may have changed if value rounded up.\r\n if (id == 2) k = x.e + n + 1;\r\n\r\n // Append zeros?\r\n for (; x.c.length < k;) x.c.push(0);\r\n }\r\n\r\n e = x.e;\r\n s = x.c.join('');\r\n n = s.length;\r\n\r\n // Exponential notation?\r\n if (id != 2 && (id == 1 || id == 3 && k <= e || e <= Big.NE || e >= Big.PE)) {\r\n s = s.charAt(0) + (n > 1 ? '.' + s.slice(1) : '') + (e < 0 ? 'e' : 'e+') + e;\r\n\r\n // Normal notation.\r\n } else if (e < 0) {\r\n for (; ++e;) s = '0' + s;\r\n s = '0.' + s;\r\n } else if (e > 0) {\r\n if (++e > n) for (e -= n; e--;) s += '0';\r\n else if (e < n) s = s.slice(0, e) + '.' + s.slice(e);\r\n } else if (n > 1) {\r\n s = s.charAt(0) + '.' + s.slice(1);\r\n }\r\n\r\n return x.s < 0 && (!z || id == 4) ? '-' + s : s;\r\n }\r\n\r\n\r\n // Prototype/instance methods\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the absolute value of this Big.\r\n */\r\n P.abs = function () {\r\n var x = new this.constructor(this);\r\n x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return 1 if the value of this Big is greater than the value of Big y,\r\n * -1 if the value of this Big is less than the value of Big y, or\r\n * 0 if they have the same value.\r\n */\r\n P.cmp = function (y) {\r\n var isneg,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new x.constructor(y)).c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) return !xc[0] ? !yc[0] ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n isneg = i < 0;\r\n\r\n // Compare exponents.\r\n if (k != l) return k > l ^ isneg ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = -1; ++i < j;) {\r\n if (xc[i] != yc[i]) return xc[i] > yc[i] ^ isneg ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ isneg ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the value of this Big divided by the value of Big y, rounded,\r\n * if necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n */\r\n P.div = function (y) {\r\n var x = this,\r\n Big = x.constructor,\r\n a = x.c, // dividend\r\n b = (y = new Big(y)).c, // divisor\r\n k = x.s == y.s ? 1 : -1,\r\n dp = Big.DP;\r\n\r\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) throw Error(INVALID_DP);\r\n\r\n // Divisor is zero?\r\n if (!b[0]) throw Error(DIV_BY_ZERO);\r\n\r\n // Dividend is 0? Return +-0.\r\n if (!a[0]) return new Big(k * 0);\r\n\r\n var bl, bt, n, cmp, ri,\r\n bz = b.slice(),\r\n ai = bl = b.length,\r\n al = a.length,\r\n r = a.slice(0, bl), // remainder\r\n rl = r.length,\r\n q = y, // quotient\r\n qc = q.c = [],\r\n qi = 0,\r\n d = dp + (q.e = x.e - y.e) + 1; // number of digits of the result\r\n\r\n q.s = k;\r\n k = d < 0 ? 0 : d;\r\n\r\n // Create version of divisor with leading zero.\r\n bz.unshift(0);\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; rl++ < bl;) r.push(0);\r\n\r\n do {\r\n\r\n // n is how many times the divisor goes into current remainder.\r\n for (n = 0; n < 10; n++) {\r\n\r\n // Compare divisor and remainder.\r\n if (bl != (rl = r.length)) {\r\n cmp = bl > rl ? 1 : -1;\r\n } else {\r\n for (ri = -1, cmp = 0; ++ri < bl;) {\r\n if (b[ri] != r[ri]) {\r\n cmp = b[ri] > r[ri] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // If divisor < remainder, subtract divisor from remainder.\r\n if (cmp < 0) {\r\n\r\n // Remainder can't be more than 1 digit longer than divisor.\r\n // Equalise lengths using divisor with extra leading zero?\r\n for (bt = rl == bl ? b : bz; rl;) {\r\n if (r[--rl] < bt[rl]) {\r\n ri = rl;\r\n for (; ri && !r[--ri];) r[ri] = 9;\r\n --r[ri];\r\n r[rl] += 10;\r\n }\r\n r[rl] -= bt[rl];\r\n }\r\n\r\n for (; !r[0];) r.shift();\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n // Add the digit n to the result array.\r\n qc[qi++] = cmp ? n : ++n;\r\n\r\n // Update the remainder.\r\n if (r[0] && cmp) r[rl] = a[ai] || 0;\r\n else r = [a[ai]];\r\n\r\n } while ((ai++ < al || r[0] !== UNDEFINED) && k--);\r\n\r\n // Leading zero? Do not remove if result is simply zero (qi == 1).\r\n if (!qc[0] && qi != 1) {\r\n\r\n // There can't be more than one zero.\r\n qc.shift();\r\n q.e--;\r\n }\r\n\r\n // Round?\r\n if (qi > d) round(q, dp, Big.RM, r[0] !== UNDEFINED);\r\n\r\n return q;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Big is equal to the value of Big y, otherwise return false.\r\n */\r\n P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Big is greater than the value of Big y, otherwise return\r\n * false.\r\n */\r\n P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Big is greater than or equal to the value of Big y, otherwise\r\n * return false.\r\n */\r\n P.gte = function (y) {\r\n return this.cmp(y) > -1;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Big is less than the value of Big y, otherwise return false.\r\n */\r\n P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Big is less than or equal to the value of Big y, otherwise\r\n * return false.\r\n */\r\n P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the value of this Big minus the value of Big y.\r\n */\r\n P.minus = P.sub = function (y) {\r\n var i, j, t, xlty,\r\n x = this,\r\n Big = x.constructor,\r\n a = x.s,\r\n b = (y = new Big(y)).s;\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xc = x.c.slice(),\r\n xe = x.e,\r\n yc = y.c,\r\n ye = y.e;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // y is non-zero? x is non-zero? Or both are zero.\r\n return yc[0] ? (y.s = -b, y) : new Big(xc[0] ? x : 0);\r\n }\r\n\r\n // Determine which is the bigger number. Prepend zeros to equalise exponents.\r\n if (a = xe - ye) {\r\n\r\n if (xlty = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n for (b = a; b--;) t.push(0);\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = ((xlty = xc.length < yc.length) ? xc : yc).length;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n if (xc[b] != yc[b]) {\r\n xlty = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xlty) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n /*\r\n * Append zeros to xc if shorter. No need to add zeros to yc if shorter as subtraction only\r\n * needs to start at yc.length.\r\n */\r\n if ((b = (j = yc.length) - (i = xc.length)) > 0) for (; b--;) xc[i++] = 0;\r\n\r\n // Subtract yc from xc.\r\n for (b = i; j > a;) {\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i];) xc[i] = 9;\r\n --xc[i];\r\n xc[j] += 10;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--b] === 0;) xc.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] === 0;) {\r\n xc.shift();\r\n --ye;\r\n }\r\n\r\n if (!xc[0]) {\r\n\r\n // n - n = +0\r\n y.s = 1;\r\n\r\n // Result must be zero.\r\n xc = [ye = 0];\r\n }\r\n\r\n y.c = xc;\r\n y.e = ye;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the value of this Big modulo the value of Big y.\r\n */\r\n P.mod = function (y) {\r\n var ygtx,\r\n x = this,\r\n Big = x.constructor,\r\n a = x.s,\r\n b = (y = new Big(y)).s;\r\n\r\n if (!y.c[0]) throw Error(DIV_BY_ZERO);\r\n\r\n x.s = y.s = 1;\r\n ygtx = y.cmp(x) == 1;\r\n x.s = a;\r\n y.s = b;\r\n\r\n if (ygtx) return new Big(x);\r\n\r\n a = Big.DP;\r\n b = Big.RM;\r\n Big.DP = Big.RM = 0;\r\n x = x.div(y);\r\n Big.DP = a;\r\n Big.RM = b;\r\n\r\n return this.minus(x.times(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the value of this Big plus the value of Big y.\r\n */\r\n P.plus = P.add = function (y) {\r\n var t,\r\n x = this,\r\n Big = x.constructor,\r\n a = x.s,\r\n b = (y = new Big(y)).s;\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e,\r\n xc = x.c,\r\n ye = y.e,\r\n yc = y.c;\r\n\r\n // Either zero? y is non-zero? x is non-zero? Or both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new Big(xc[0] ? x : a * 0);\r\n\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents.\r\n // Note: reverse faster than unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--;) t.push(0);\r\n t.reverse();\r\n }\r\n\r\n // Point xc to the longer array.\r\n if (xc.length - yc.length < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n }\r\n\r\n a = yc.length;\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be left as they are.\r\n for (b = 0; a; xc[a] %= 10) b = (xc[--a] = xc[a] + yc[a] + b) / 10 | 0;\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n\r\n if (b) {\r\n xc.unshift(b);\r\n ++ye;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (a = xc.length; xc[--a] === 0;) xc.pop();\r\n\r\n y.c = xc;\r\n y.e = ye;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * Return a Big whose value is the value of this Big raised to the power n.\r\n * If n is negative, round to a maximum of Big.DP decimal places using rounding\r\n * mode Big.RM.\r\n *\r\n * n {number} Integer, -MAX_POWER to MAX_POWER inclusive.\r\n */\r\n P.pow = function (n) {\r\n var x = this,\r\n one = new x.constructor(1),\r\n y = one,\r\n isneg = n < 0;\r\n\r\n if (n !== ~~n || n < -MAX_POWER || n > MAX_POWER) throw Error(INVALID + 'exponent');\r\n if (isneg) n = -n;\r\n\r\n for (;;) {\r\n if (n & 1) y = y.times(x);\r\n n >>= 1;\r\n if (!n) break;\r\n x = x.times(x);\r\n }\r\n\r\n return isneg ? one.div(y) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the value of this Big rounded using rounding mode rm\r\n * to a maximum of dp decimal places, or, if dp is negative, to an integer which is a\r\n * multiple of 10**-dp.\r\n * If dp is not specified, round to 0 decimal places.\r\n * If rm is not specified, use Big.RM.\r\n *\r\n * dp? {number} Integer, -MAX_DP to MAX_DP inclusive.\r\n * rm? 0, 1, 2 or 3 (ROUND_DOWN, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_UP)\r\n */\r\n P.round = function (dp, rm) {\r\n var Big = this.constructor;\r\n if (dp === UNDEFINED) dp = 0;\r\n else if (dp !== ~~dp || dp < -MAX_DP || dp > MAX_DP) throw Error(INVALID_DP);\r\n return round(new Big(this), dp, rm === UNDEFINED ? Big.RM : rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the square root of the value of this Big, rounded, if\r\n * necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n */\r\n P.sqrt = function () {\r\n var r, c, t,\r\n x = this,\r\n Big = x.constructor,\r\n s = x.s,\r\n e = x.e,\r\n half = new Big(0.5);\r\n\r\n // Zero?\r\n if (!x.c[0]) return new Big(x);\r\n\r\n // Negative?\r\n if (s < 0) throw Error(NAME + 'No square root');\r\n\r\n // Estimate.\r\n s = Math.sqrt(x + '');\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Re-estimate: pass x coefficient to Math.sqrt as integer, then adjust the result exponent.\r\n if (s === 0 || s === 1 / 0) {\r\n c = x.c.join('');\r\n if (!(c.length + e & 1)) c += '0';\r\n s = Math.sqrt(c);\r\n e = ((e + 1) / 2 | 0) - (e < 0 || e & 1);\r\n r = new Big((s == 1 / 0 ? '1e' : (s = s.toExponential()).slice(0, s.indexOf('e') + 1)) + e);\r\n } else {\r\n r = new Big(s);\r\n }\r\n\r\n e = r.e + (Big.DP += 4);\r\n\r\n // Newton-Raphson iteration.\r\n do {\r\n t = r;\r\n r = half.times(t.plus(x.div(t)));\r\n } while (t.c.slice(0, e).join('') !== r.c.slice(0, e).join(''));\r\n\r\n return round(r, Big.DP -= 4, Big.RM);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the value of this Big times the value of Big y.\r\n */\r\n P.times = P.mul = function (y) {\r\n var c,\r\n x = this,\r\n Big = x.constructor,\r\n xc = x.c,\r\n yc = (y = new Big(y)).c,\r\n a = xc.length,\r\n b = yc.length,\r\n i = x.e,\r\n j = y.e;\r\n\r\n // Determine sign of result.\r\n y.s = x.s == y.s ? 1 : -1;\r\n\r\n // Return signed 0 if either 0.\r\n if (!xc[0] || !yc[0]) return new Big(y.s * 0);\r\n\r\n // Initialise exponent of result as x.e + y.e.\r\n y.e = i + j;\r\n\r\n // If array xc has fewer digits than yc, swap xc and yc, and lengths.\r\n if (a < b) {\r\n c = xc;\r\n xc = yc;\r\n yc = c;\r\n j = a;\r\n a = b;\r\n b = j;\r\n }\r\n\r\n // Initialise coefficient array of result with zeros.\r\n for (c = new Array(j = a + b); j--;) c[j] = 0;\r\n\r\n // Multiply.\r\n\r\n // i is initially xc.length.\r\n for (i = b; i--;) {\r\n b = 0;\r\n\r\n // a is yc.length.\r\n for (j = a + i; j > i;) {\r\n\r\n // Current sum of products at this digit position, plus carry.\r\n b = c[j] + yc[i] * xc[j - i - 1] + b;\r\n c[j--] = b % 10;\r\n\r\n // carry\r\n b = b / 10 | 0;\r\n }\r\n\r\n c[j] = (c[j] + b) % 10;\r\n }\r\n\r\n // Increment result exponent if there is a final carry, otherwise remove leading zero.\r\n if (b) ++y.e;\r\n else c.shift();\r\n\r\n // Remove trailing zeros.\r\n for (i = c.length; !c[--i];) c.pop();\r\n y.c = c;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Big in exponential notation to dp fixed decimal\r\n * places and rounded using Big.RM.\r\n *\r\n * dp? {number} Integer, 0 to MAX_DP inclusive.\r\n */\r\n P.toExponential = function (dp) {\r\n return stringify(this, 1, dp, dp);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Big in normal notation to dp fixed decimal\r\n * places and rounded using Big.RM.\r\n *\r\n * dp? {number} Integer, 0 to MAX_DP inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n */\r\n P.toFixed = function (dp) {\r\n return stringify(this, 2, dp, this.e + dp);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Big rounded to sd significant digits using\r\n * Big.RM. Use exponential notation if sd is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * sd {number} Integer, 1 to MAX_DP inclusive.\r\n */\r\n P.toPrecision = function (sd) {\r\n return stringify(this, 3, sd, sd - 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Big.\r\n * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n * Omit the sign for negative zero.\r\n */\r\n P.toString = function () {\r\n return stringify(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Big.\r\n * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n * Include the sign for negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return stringify(this, 4);\r\n };\r\n\r\n\r\n // Export\r\n\r\n\r\n Big = _Big_();\r\n\r\n Big['default'] = Big.Big = Big;\r\n\r\n //AMD.\r\n if (typeof define === 'function' && define.amd) {\r\n define(function () { return Big; });\r\n\r\n // Node and other CommonJS-like environments that support module.exports.\r\n } else if (typeof module !== 'undefined' && module.exports) {\r\n module.exports = Big;\r\n\r\n //Browser.\r\n } else {\r\n GLOBAL.Big = Big;\r\n }\r\n})(this);\r\n","'use strict';\n\nconst baseEncodeTables = {\n 26: 'abcdefghijklmnopqrstuvwxyz',\n 32: '123456789abcdefghjkmnpqrstuvwxyz', // no 0lio\n 36: '0123456789abcdefghijklmnopqrstuvwxyz',\n 49: 'abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ', // no lIO\n 52: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',\n 58: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ', // no 0lIO\n 62: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',\n 64: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_',\n};\n\nfunction encodeBufferToBase(buffer, base) {\n const encodeTable = baseEncodeTables[base];\n if (!encodeTable) {\n throw new Error('Unknown encoding base' + base);\n }\n\n const readLength = buffer.length;\n const Big = require('big.js');\n\n Big.RM = Big.DP = 0;\n let b = new Big(0);\n\n for (let i = readLength - 1; i >= 0; i--) {\n b = b.times(256).plus(buffer[i]);\n }\n\n let output = '';\n while (b.gt(0)) {\n output = encodeTable[b.mod(base)] + output;\n b = b.div(base);\n }\n\n Big.DP = 20;\n Big.RM = 1;\n\n return output;\n}\n\nfunction getHashDigest(buffer, hashType, digestType, maxLength) {\n hashType = hashType || 'md5';\n maxLength = maxLength || 9999;\n\n const hash = require('crypto').createHash(hashType);\n\n hash.update(buffer);\n\n if (\n digestType === 'base26' ||\n digestType === 'base32' ||\n digestType === 'base36' ||\n digestType === 'base49' ||\n digestType === 'base52' ||\n digestType === 'base58' ||\n digestType === 'base62' ||\n digestType === 'base64'\n ) {\n return encodeBufferToBase(hash.digest(), digestType.substr(4)).substr(\n 0,\n maxLength\n );\n } else {\n return hash.digest(digestType || 'hex').substr(0, maxLength);\n }\n}\n\nmodule.exports = getHashDigest;\n","module.exports = [\n \"🀄️\",\n \"🃏\",\n \"🅰️\",\n \"🅱️\",\n \"🅾️\",\n \"🅿️\",\n \"🆎\",\n \"🆑\",\n \"🆒\",\n \"🆓\",\n \"🆔\",\n \"🆕\",\n \"🆖\",\n \"🆗\",\n \"🆘\",\n \"🆙\",\n \"🆚\",\n \"🇦🇨\",\n \"🇦🇩\",\n \"🇦🇪\",\n \"🇦🇫\",\n \"🇦🇬\",\n \"🇦🇮\",\n \"🇦🇱\",\n \"🇦🇲\",\n \"🇦🇴\",\n \"🇦🇶\",\n \"🇦🇷\",\n \"🇦🇸\",\n \"🇦🇹\",\n \"🇦🇺\",\n \"🇦🇼\",\n \"🇦🇽\",\n \"🇦🇿\",\n \"🇦\",\n \"🇧🇦\",\n \"🇧🇧\",\n \"🇧🇩\",\n \"🇧🇪\",\n \"🇧🇫\",\n \"🇧🇬\",\n \"🇧🇭\",\n \"🇧🇮\",\n \"🇧🇯\",\n \"🇧🇱\",\n \"🇧🇲\",\n \"🇧🇳\",\n \"🇧🇴\",\n \"🇧🇶\",\n \"🇧🇷\",\n \"🇧🇸\",\n \"🇧🇹\",\n \"🇧🇻\",\n \"🇧🇼\",\n \"🇧🇾\",\n \"🇧🇿\",\n \"🇧\",\n \"🇨🇦\",\n \"🇨🇨\",\n \"🇨🇩\",\n \"🇨🇫\",\n \"🇨🇬\",\n \"🇨🇭\",\n \"🇨🇮\",\n \"🇨🇰\",\n \"🇨🇱\",\n \"🇨🇲\",\n \"🇨🇳\",\n \"🇨🇴\",\n \"🇨🇵\",\n \"🇨🇷\",\n \"🇨🇺\",\n \"🇨🇻\",\n \"🇨🇼\",\n \"🇨🇽\",\n \"🇨🇾\",\n \"🇨🇿\",\n \"🇨\",\n \"🇩🇪\",\n \"🇩🇬\",\n \"🇩🇯\",\n \"🇩🇰\",\n \"🇩🇲\",\n \"🇩🇴\",\n \"🇩🇿\",\n \"🇩\",\n \"🇪🇦\",\n \"🇪🇨\",\n \"🇪🇪\",\n \"🇪🇬\",\n \"🇪🇭\",\n \"🇪🇷\",\n \"🇪🇸\",\n \"🇪🇹\",\n \"🇪🇺\",\n \"🇪\",\n \"🇫🇮\",\n \"🇫🇯\",\n \"🇫🇰\",\n \"🇫🇲\",\n \"🇫🇴\",\n \"🇫🇷\",\n \"🇫\",\n \"🇬🇦\",\n \"🇬🇧\",\n \"🇬🇩\",\n \"🇬🇪\",\n \"🇬🇫\",\n \"🇬🇬\",\n \"🇬🇭\",\n \"🇬🇮\",\n \"🇬🇱\",\n \"🇬🇲\",\n \"🇬🇳\",\n \"🇬🇵\",\n \"🇬🇶\",\n \"🇬🇷\",\n \"🇬🇸\",\n \"🇬🇹\",\n \"🇬🇺\",\n \"🇬🇼\",\n \"🇬🇾\",\n \"🇬\",\n \"🇭🇰\",\n \"🇭🇲\",\n \"🇭🇳\",\n \"🇭🇷\",\n \"🇭🇹\",\n \"🇭🇺\",\n \"🇭\",\n \"🇮🇨\",\n \"🇮🇩\",\n \"🇮🇪\",\n \"🇮🇱\",\n \"🇮🇲\",\n \"🇮🇳\",\n \"🇮🇴\",\n \"🇮🇶\",\n \"🇮🇷\",\n \"🇮🇸\",\n \"🇮🇹\",\n \"🇮\",\n \"🇯🇪\",\n \"🇯🇲\",\n \"🇯🇴\",\n \"🇯🇵\",\n \"🇯\",\n \"🇰🇪\",\n \"🇰🇬\",\n \"🇰🇭\",\n \"🇰🇮\",\n \"🇰🇲\",\n \"🇰🇳\",\n \"🇰🇵\",\n \"🇰🇷\",\n \"🇰🇼\",\n \"🇰🇾\",\n \"🇰🇿\",\n \"🇰\",\n \"🇱🇦\",\n \"🇱🇧\",\n \"🇱🇨\",\n \"🇱🇮\",\n \"🇱🇰\",\n \"🇱🇷\",\n \"🇱🇸\",\n \"🇱🇹\",\n \"🇱🇺\",\n \"🇱🇻\",\n \"🇱🇾\",\n \"🇱\",\n \"🇲🇦\",\n \"🇲🇨\",\n \"🇲🇩\",\n \"🇲🇪\",\n \"🇲🇫\",\n \"🇲🇬\",\n \"🇲🇭\",\n \"🇲🇰\",\n \"🇲🇱\",\n \"🇲🇲\",\n \"🇲🇳\",\n \"🇲🇴\",\n \"🇲🇵\",\n \"🇲🇶\",\n \"🇲🇷\",\n \"🇲🇸\",\n \"🇲🇹\",\n \"🇲🇺\",\n \"🇲🇻\",\n \"🇲🇼\",\n \"🇲🇽\",\n \"🇲🇾\",\n \"🇲🇿\",\n \"🇲\",\n \"🇳🇦\",\n \"🇳🇨\",\n \"🇳🇪\",\n \"🇳🇫\",\n \"🇳🇬\",\n \"🇳🇮\",\n \"🇳🇱\",\n \"🇳🇴\",\n \"🇳🇵\",\n \"🇳🇷\",\n \"🇳🇺\",\n \"🇳🇿\",\n \"🇳\",\n \"🇴🇲\",\n \"🇴\",\n \"🇵🇦\",\n \"🇵🇪\",\n \"🇵🇫\",\n \"🇵🇬\",\n \"🇵🇭\",\n \"🇵🇰\",\n \"🇵🇱\",\n \"🇵🇲\",\n \"🇵🇳\",\n \"🇵🇷\",\n \"🇵🇸\",\n \"🇵🇹\",\n \"🇵🇼\",\n \"🇵🇾\",\n \"🇵\",\n \"🇶🇦\",\n \"🇶\",\n \"🇷🇪\",\n \"🇷🇴\",\n \"🇷🇸\",\n \"🇷🇺\",\n \"🇷🇼\",\n \"🇷\",\n \"🇸🇦\",\n \"🇸🇧\",\n \"🇸🇨\",\n \"🇸🇩\",\n \"🇸🇪\",\n \"🇸🇬\",\n \"🇸🇭\",\n \"🇸🇮\",\n \"🇸🇯\",\n \"🇸🇰\",\n \"🇸🇱\",\n \"🇸🇲\",\n \"🇸🇳\",\n \"🇸🇴\",\n \"🇸🇷\",\n \"🇸🇸\",\n \"🇸🇹\",\n \"🇸🇻\",\n \"🇸🇽\",\n \"🇸🇾\",\n \"🇸🇿\",\n \"🇸\",\n \"🇹🇦\",\n \"🇹🇨\",\n \"🇹🇩\",\n \"🇹🇫\",\n \"🇹🇬\",\n \"🇹🇭\",\n \"🇹🇯\",\n \"🇹🇰\",\n \"🇹🇱\",\n \"🇹🇲\",\n \"🇹🇳\",\n \"🇹🇴\",\n \"🇹🇷\",\n \"🇹🇹\",\n \"🇹🇻\",\n \"🇹🇼\",\n \"🇹🇿\",\n \"🇹\",\n \"🇺🇦\",\n \"🇺🇬\",\n \"🇺🇲\",\n \"🇺🇳\",\n \"🇺🇸\",\n \"🇺🇾\",\n \"🇺🇿\",\n \"🇺\",\n \"🇻🇦\",\n \"🇻🇨\",\n \"🇻🇪\",\n \"🇻🇬\",\n \"🇻🇮\",\n \"🇻🇳\",\n \"🇻🇺\",\n \"🇻\",\n \"🇼🇫\",\n \"🇼🇸\",\n \"🇼\",\n \"🇽🇰\",\n \"🇽\",\n \"🇾🇪\",\n \"🇾🇹\",\n \"🇾\",\n \"🇿🇦\",\n \"🇿🇲\",\n \"🇿🇼\",\n \"🇿\",\n \"🈁\",\n \"🈂️\",\n \"🈚️\",\n \"🈯️\",\n \"🈲\",\n \"🈳\",\n \"🈴\",\n \"🈵\",\n \"🈶\",\n \"🈷️\",\n \"🈸\",\n \"🈹\",\n \"🈺\",\n \"🉐\",\n \"🉑\",\n \"🌀\",\n \"🌁\",\n \"🌂\",\n \"🌃\",\n \"🌄\",\n \"🌅\",\n \"🌆\",\n \"🌇\",\n \"🌈\",\n \"🌉\",\n \"🌊\",\n \"🌋\",\n \"🌌\",\n \"🌍\",\n \"🌎\",\n \"🌏\",\n \"🌐\",\n \"🌑\",\n \"🌒\",\n \"🌓\",\n \"🌔\",\n \"🌕\",\n \"🌖\",\n \"🌗\",\n \"🌘\",\n \"🌙\",\n \"🌚\",\n \"🌛\",\n \"🌜\",\n \"🌝\",\n \"🌞\",\n \"🌟\",\n \"🌠\",\n \"🌡️\",\n \"🌤️\",\n \"🌥️\",\n \"🌦️\",\n \"🌧️\",\n \"🌨️\",\n \"🌩️\",\n \"🌪️\",\n \"🌫️\",\n \"🌬️\",\n \"🌭\",\n \"🌮\",\n \"🌯\",\n \"🌰\",\n \"🌱\",\n \"🌲\",\n \"🌳\",\n \"🌴\",\n \"🌵\",\n \"🌶️\",\n \"🌷\",\n \"🌸\",\n \"🌹\",\n \"🌺\",\n \"🌻\",\n \"🌼\",\n \"🌽\",\n \"🌾\",\n \"🌿\",\n \"🍀\",\n \"🍁\",\n \"🍂\",\n \"🍃\",\n \"🍄\",\n \"🍅\",\n \"🍆\",\n \"🍇\",\n \"🍈\",\n \"🍉\",\n \"🍊\",\n \"🍋\",\n \"🍌\",\n \"🍍\",\n \"🍎\",\n \"🍏\",\n \"🍐\",\n \"🍑\",\n \"🍒\",\n \"🍓\",\n \"🍔\",\n \"🍕\",\n \"🍖\",\n \"🍗\",\n \"🍘\",\n \"🍙\",\n \"🍚\",\n \"🍛\",\n \"🍜\",\n \"🍝\",\n \"🍞\",\n \"🍟\",\n \"🍠\",\n \"🍡\",\n \"🍢\",\n \"🍣\",\n \"🍤\",\n \"🍥\",\n \"🍦\",\n \"🍧\",\n \"🍨\",\n \"🍩\",\n \"🍪\",\n \"🍫\",\n \"🍬\",\n \"🍭\",\n \"🍮\",\n \"🍯\",\n \"🍰\",\n \"🍱\",\n \"🍲\",\n \"🍳\",\n \"🍴\",\n \"🍵\",\n \"🍶\",\n \"🍷\",\n \"🍸\",\n \"🍹\",\n \"🍺\",\n \"🍻\",\n \"🍼\",\n \"🍽️\",\n \"🍾\",\n \"🍿\",\n \"🎀\",\n \"🎁\",\n \"🎂\",\n \"🎃\",\n \"🎄\",\n \"🎅🏻\",\n \"🎅🏼\",\n \"🎅🏽\",\n \"🎅🏾\",\n \"🎅🏿\",\n \"🎅\",\n \"🎆\",\n \"🎇\",\n \"🎈\",\n \"🎉\",\n \"🎊\",\n \"🎋\",\n \"🎌\",\n \"🎍\",\n \"🎎\",\n \"🎏\",\n \"🎐\",\n \"🎑\",\n \"🎒\",\n \"🎓\",\n \"🎖️\",\n \"🎗️\",\n \"🎙️\",\n \"🎚️\",\n \"🎛️\",\n \"🎞️\",\n \"🎟️\",\n \"🎠\",\n \"🎡\",\n \"🎢\",\n \"🎣\",\n \"🎤\",\n \"🎥\",\n \"🎦\",\n \"🎧\",\n \"🎨\",\n \"🎩\",\n \"🎪\",\n \"🎫\",\n \"🎬\",\n \"🎭\",\n \"🎮\",\n \"🎯\",\n \"🎰\",\n \"🎱\",\n \"🎲\",\n \"🎳\",\n \"🎴\",\n \"🎵\",\n \"🎶\",\n \"🎷\",\n \"🎸\",\n \"🎹\",\n \"🎺\",\n \"🎻\",\n \"🎼\",\n \"🎽\",\n \"🎾\",\n \"🎿\",\n \"🏀\",\n \"🏁\",\n \"🏂🏻\",\n \"🏂🏼\",\n \"🏂🏽\",\n \"🏂🏾\",\n \"🏂🏿\",\n \"🏂\",\n \"🏃🏻‍♀️\",\n \"🏃🏻‍♂️\",\n \"🏃🏻\",\n \"🏃🏼‍♀️\",\n \"🏃🏼‍♂️\",\n \"🏃🏼\",\n \"🏃🏽‍♀️\",\n \"🏃🏽‍♂️\",\n \"🏃🏽\",\n \"🏃🏾‍♀️\",\n \"🏃🏾‍♂️\",\n \"🏃🏾\",\n \"🏃🏿‍♀️\",\n \"🏃🏿‍♂️\",\n \"🏃🏿\",\n \"🏃‍♀️\",\n \"🏃‍♂️\",\n \"🏃\",\n \"🏄🏻‍♀️\",\n \"🏄🏻‍♂️\",\n \"🏄🏻\",\n \"🏄🏼‍♀️\",\n \"🏄🏼‍♂️\",\n \"🏄🏼\",\n \"🏄🏽‍♀️\",\n \"🏄🏽‍♂️\",\n \"🏄🏽\",\n \"🏄🏾‍♀️\",\n \"🏄🏾‍♂️\",\n \"🏄🏾\",\n \"🏄🏿‍♀️\",\n \"🏄🏿‍♂️\",\n \"🏄🏿\",\n \"🏄‍♀️\",\n \"🏄‍♂️\",\n \"🏄\",\n \"🏅\",\n \"🏆\",\n \"🏇🏻\",\n \"🏇🏼\",\n \"🏇🏽\",\n \"🏇🏾\",\n \"🏇🏿\",\n \"🏇\",\n \"🏈\",\n \"🏉\",\n \"🏊🏻‍♀️\",\n \"🏊🏻‍♂️\",\n \"🏊🏻\",\n \"🏊🏼‍♀️\",\n \"🏊🏼‍♂️\",\n \"🏊🏼\",\n \"🏊🏽‍♀️\",\n \"🏊🏽‍♂️\",\n \"🏊🏽\",\n \"🏊🏾‍♀️\",\n \"🏊🏾‍♂️\",\n \"🏊🏾\",\n \"🏊🏿‍♀️\",\n \"🏊🏿‍♂️\",\n \"🏊🏿\",\n \"🏊‍♀️\",\n \"🏊‍♂️\",\n \"🏊\",\n \"🏋🏻‍♀️\",\n \"🏋🏻‍♂️\",\n \"🏋🏻\",\n \"🏋🏼‍♀️\",\n \"🏋🏼‍♂️\",\n \"🏋🏼\",\n \"🏋🏽‍♀️\",\n \"🏋🏽‍♂️\",\n \"🏋🏽\",\n \"🏋🏾‍♀️\",\n \"🏋🏾‍♂️\",\n \"🏋🏾\",\n \"🏋🏿‍♀️\",\n \"🏋🏿‍♂️\",\n \"🏋🏿\",\n \"🏋️‍♀️\",\n \"🏋️‍♂️\",\n \"🏋️\",\n \"🏌🏻‍♀️\",\n \"🏌🏻‍♂️\",\n \"🏌🏻\",\n \"🏌🏼‍♀️\",\n \"🏌🏼‍♂️\",\n \"🏌🏼\",\n \"🏌🏽‍♀️\",\n \"🏌🏽‍♂️\",\n \"🏌🏽\",\n \"🏌🏾‍♀️\",\n \"🏌🏾‍♂️\",\n \"🏌🏾\",\n \"🏌🏿‍♀️\",\n \"🏌🏿‍♂️\",\n \"🏌🏿\",\n \"🏌️‍♀️\",\n \"🏌️‍♂️\",\n \"🏌️\",\n \"🏍️\",\n \"🏎️\",\n \"🏏\",\n \"🏐\",\n \"🏑\",\n \"🏒\",\n \"🏓\",\n \"🏔️\",\n \"🏕️\",\n \"🏖️\",\n \"🏗️\",\n \"🏘️\",\n \"🏙️\",\n \"🏚️\",\n \"🏛️\",\n \"🏜️\",\n \"🏝️\",\n \"🏞️\",\n \"🏟️\",\n \"🏠\",\n \"🏡\",\n \"🏢\",\n \"🏣\",\n \"🏤\",\n \"🏥\",\n \"🏦\",\n \"🏧\",\n \"🏨\",\n \"🏩\",\n \"🏪\",\n \"🏫\",\n \"🏬\",\n \"🏭\",\n \"🏮\",\n \"🏯\",\n \"🏰\",\n \"🏳️‍🌈\",\n \"🏳️\",\n \"🏴‍☠️\",\n \"🏴󠁧󠁢󠁥󠁮󠁧󠁿\",\n \"🏴󠁧󠁢󠁳󠁣󠁴󠁿\",\n \"🏴󠁧󠁢󠁷󠁬󠁳󠁿\",\n \"🏴\",\n \"🏵️\",\n \"🏷️\",\n \"🏸\",\n \"🏹\",\n \"🏺\",\n \"🏻\",\n \"🏼\",\n \"🏽\",\n \"🏾\",\n \"🏿\",\n \"🐀\",\n \"🐁\",\n \"🐂\",\n \"🐃\",\n \"🐄\",\n \"🐅\",\n \"🐆\",\n \"🐇\",\n \"🐈\",\n \"🐉\",\n \"🐊\",\n \"🐋\",\n \"🐌\",\n \"🐍\",\n \"🐎\",\n \"🐏\",\n \"🐐\",\n \"🐑\",\n \"🐒\",\n \"🐓\",\n \"🐔\",\n \"🐕‍🦺\",\n \"🐕\",\n \"🐖\",\n \"🐗\",\n \"🐘\",\n \"🐙\",\n \"🐚\",\n \"🐛\",\n \"🐜\",\n \"🐝\",\n \"🐞\",\n \"🐟\",\n \"🐠\",\n \"🐡\",\n \"🐢\",\n \"🐣\",\n \"🐤\",\n \"🐥\",\n \"🐦\",\n \"🐧\",\n \"🐨\",\n \"🐩\",\n \"🐪\",\n \"🐫\",\n \"🐬\",\n \"🐭\",\n \"🐮\",\n \"🐯\",\n \"🐰\",\n \"🐱\",\n \"🐲\",\n \"🐳\",\n \"🐴\",\n \"🐵\",\n \"🐶\",\n \"🐷\",\n \"🐸\",\n \"🐹\",\n \"🐺\",\n \"🐻\",\n \"🐼\",\n \"🐽\",\n \"🐾\",\n \"🐿️\",\n \"👀\",\n \"👁‍🗨\",\n \"👁️\",\n \"👂🏻\",\n \"👂🏼\",\n \"👂🏽\",\n \"👂🏾\",\n \"👂🏿\",\n \"👂\",\n \"👃🏻\",\n \"👃🏼\",\n \"👃🏽\",\n \"👃🏾\",\n \"👃🏿\",\n \"👃\",\n \"👄\",\n \"👅\",\n \"👆🏻\",\n \"👆🏼\",\n \"👆🏽\",\n \"👆🏾\",\n \"👆🏿\",\n \"👆\",\n \"👇🏻\",\n \"👇🏼\",\n \"👇🏽\",\n \"👇🏾\",\n \"👇🏿\",\n \"👇\",\n \"👈🏻\",\n \"👈🏼\",\n \"👈🏽\",\n \"👈🏾\",\n \"👈🏿\",\n \"👈\",\n \"👉🏻\",\n \"👉🏼\",\n \"👉🏽\",\n \"👉🏾\",\n \"👉🏿\",\n \"👉\",\n \"👊🏻\",\n \"👊🏼\",\n \"👊🏽\",\n \"👊🏾\",\n \"👊🏿\",\n \"👊\",\n \"👋🏻\",\n \"👋🏼\",\n \"👋🏽\",\n \"👋🏾\",\n \"👋🏿\",\n \"👋\",\n \"👌🏻\",\n \"👌🏼\",\n \"👌🏽\",\n \"👌🏾\",\n \"👌🏿\",\n \"👌\",\n \"👍🏻\",\n \"👍🏼\",\n \"👍🏽\",\n \"👍🏾\",\n \"👍🏿\",\n \"👍\",\n \"👎🏻\",\n \"👎🏼\",\n \"👎🏽\",\n \"👎🏾\",\n \"👎🏿\",\n \"👎\",\n \"👏🏻\",\n \"👏🏼\",\n \"👏🏽\",\n \"👏🏾\",\n \"👏🏿\",\n \"👏\",\n \"👐🏻\",\n \"👐🏼\",\n \"👐🏽\",\n \"👐🏾\",\n \"👐🏿\",\n \"👐\",\n \"👑\",\n \"👒\",\n \"👓\",\n \"👔\",\n \"👕\",\n \"👖\",\n \"👗\",\n \"👘\",\n \"👙\",\n \"👚\",\n \"👛\",\n \"👜\",\n \"👝\",\n \"👞\",\n \"👟\",\n \"👠\",\n \"👡\",\n \"👢\",\n \"👣\",\n \"👤\",\n \"👥\",\n \"👦🏻\",\n \"👦🏼\",\n \"👦🏽\",\n \"👦🏾\",\n \"👦🏿\",\n \"👦\",\n \"👧🏻\",\n \"👧🏼\",\n \"👧🏽\",\n \"👧🏾\",\n \"👧🏿\",\n \"👧\",\n \"👨🏻‍🌾\",\n \"👨🏻‍🍳\",\n \"👨🏻‍🎓\",\n \"👨🏻‍🎤\",\n \"👨🏻‍🎨\",\n \"👨🏻‍🏫\",\n \"👨🏻‍🏭\",\n \"👨🏻‍💻\",\n \"👨🏻‍💼\",\n \"👨🏻‍🔧\",\n \"👨🏻‍🔬\",\n \"👨🏻‍🚀\",\n \"👨🏻‍🚒\",\n \"👨🏻‍🦯\",\n \"👨🏻‍🦰\",\n \"👨🏻‍🦱\",\n \"👨🏻‍🦲\",\n \"👨🏻‍🦳\",\n \"👨🏻‍🦼\",\n \"👨🏻‍🦽\",\n \"👨🏻‍⚕️\",\n \"👨🏻‍⚖️\",\n \"👨🏻‍✈️\",\n \"👨🏻\",\n \"👨🏼‍🌾\",\n \"👨🏼‍🍳\",\n \"👨🏼‍🎓\",\n \"👨🏼‍🎤\",\n \"👨🏼‍🎨\",\n \"👨🏼‍🏫\",\n \"👨🏼‍🏭\",\n \"👨🏼‍💻\",\n \"👨🏼‍💼\",\n \"👨🏼‍🔧\",\n \"👨🏼‍🔬\",\n \"👨🏼‍🚀\",\n \"👨🏼‍🚒\",\n \"👨🏼‍🤝‍👨🏻\",\n \"👨🏼‍🦯\",\n \"👨🏼‍🦰\",\n \"👨🏼‍🦱\",\n \"👨🏼‍🦲\",\n \"👨🏼‍🦳\",\n \"👨🏼‍🦼\",\n \"👨🏼‍🦽\",\n \"👨🏼‍⚕️\",\n \"👨🏼‍⚖️\",\n \"👨🏼‍✈️\",\n \"👨🏼\",\n \"👨🏽‍🌾\",\n \"👨🏽‍🍳\",\n \"👨🏽‍🎓\",\n \"👨🏽‍🎤\",\n \"👨🏽‍🎨\",\n \"👨🏽‍🏫\",\n \"👨🏽‍🏭\",\n \"👨🏽‍💻\",\n \"👨🏽‍💼\",\n \"👨🏽‍🔧\",\n \"👨🏽‍🔬\",\n \"👨🏽‍🚀\",\n \"👨🏽‍🚒\",\n \"👨🏽‍🤝‍👨🏻\",\n \"👨🏽‍🤝‍👨🏼\",\n \"👨🏽‍🦯\",\n \"👨🏽‍🦰\",\n \"👨🏽‍🦱\",\n \"👨🏽‍🦲\",\n \"👨🏽‍🦳\",\n \"👨🏽‍🦼\",\n \"👨🏽‍🦽\",\n \"👨🏽‍⚕️\",\n \"👨🏽‍⚖️\",\n \"👨🏽‍✈️\",\n \"👨🏽\",\n \"👨🏾‍🌾\",\n \"👨🏾‍🍳\",\n \"👨🏾‍🎓\",\n \"👨🏾‍🎤\",\n \"👨🏾‍🎨\",\n \"👨🏾‍🏫\",\n \"👨🏾‍🏭\",\n \"👨🏾‍💻\",\n \"👨🏾‍💼\",\n \"👨🏾‍🔧\",\n \"👨🏾‍🔬\",\n \"👨🏾‍🚀\",\n \"👨🏾‍🚒\",\n \"👨🏾‍🤝‍👨🏻\",\n \"👨🏾‍🤝‍👨🏼\",\n \"👨🏾‍🤝‍👨🏽\",\n \"👨🏾‍🦯\",\n \"👨🏾‍🦰\",\n \"👨🏾‍🦱\",\n \"👨🏾‍🦲\",\n \"👨🏾‍🦳\",\n \"👨🏾‍🦼\",\n \"👨🏾‍🦽\",\n \"👨🏾‍⚕️\",\n \"👨🏾‍⚖️\",\n \"👨🏾‍✈️\",\n \"👨🏾\",\n \"👨🏿‍🌾\",\n \"👨🏿‍🍳\",\n \"👨🏿‍🎓\",\n \"👨🏿‍🎤\",\n \"👨🏿‍🎨\",\n \"👨🏿‍🏫\",\n \"👨🏿‍🏭\",\n \"👨🏿‍💻\",\n \"👨🏿‍💼\",\n \"👨🏿‍🔧\",\n \"👨🏿‍🔬\",\n \"👨🏿‍🚀\",\n \"👨🏿‍🚒\",\n \"👨🏿‍🤝‍👨🏻\",\n \"👨🏿‍🤝‍👨🏼\",\n \"👨🏿‍🤝‍👨🏽\",\n \"👨🏿‍🤝‍👨🏾\",\n \"👨🏿‍🦯\",\n \"👨🏿‍🦰\",\n \"👨🏿‍🦱\",\n \"👨🏿‍🦲\",\n \"👨🏿‍🦳\",\n \"👨🏿‍🦼\",\n \"👨🏿‍🦽\",\n \"👨🏿‍⚕️\",\n \"👨🏿‍⚖️\",\n \"👨🏿‍✈️\",\n \"👨🏿\",\n \"👨‍🌾\",\n \"👨‍🍳\",\n \"👨‍🎓\",\n \"👨‍🎤\",\n \"👨‍🎨\",\n \"👨‍🏫\",\n \"👨‍🏭\",\n \"👨‍👦‍👦\",\n \"👨‍👦\",\n \"👨‍👧‍👦\",\n \"👨‍👧‍👧\",\n \"👨‍👧\",\n \"👨‍👨‍👦‍👦\",\n \"👨‍👨‍👦\",\n \"👨‍👨‍👧‍👦\",\n \"👨‍👨‍👧‍👧\",\n \"👨‍👨‍👧\",\n \"👨‍👩‍👦‍👦\",\n \"👨‍👩‍👦\",\n \"👨‍👩‍👧‍👦\",\n \"👨‍👩‍👧‍👧\",\n \"👨‍👩‍👧\",\n \"👨‍💻\",\n \"👨‍💼\",\n \"👨‍🔧\",\n \"👨‍🔬\",\n \"👨‍🚀\",\n \"👨‍🚒\",\n \"👨‍🦯\",\n \"👨‍🦰\",\n \"👨‍🦱\",\n \"👨‍🦲\",\n \"👨‍🦳\",\n \"👨‍🦼\",\n \"👨‍🦽\",\n \"👨‍⚕️\",\n \"👨‍⚖️\",\n \"👨‍✈️\",\n \"👨‍❤️‍👨\",\n \"👨‍❤️‍💋‍👨\",\n \"👨\",\n \"👩🏻‍🌾\",\n \"👩🏻‍🍳\",\n \"👩🏻‍🎓\",\n \"👩🏻‍🎤\",\n \"👩🏻‍🎨\",\n \"👩🏻‍🏫\",\n \"👩🏻‍🏭\",\n \"👩🏻‍💻\",\n \"👩🏻‍💼\",\n \"👩🏻‍🔧\",\n \"👩🏻‍🔬\",\n \"👩🏻‍🚀\",\n \"👩🏻‍🚒\",\n \"👩🏻‍🤝‍👨🏼\",\n \"👩🏻‍🤝‍👨🏽\",\n \"👩🏻‍🤝‍👨🏾\",\n \"👩🏻‍🤝‍👨🏿\",\n \"👩🏻‍🦯\",\n \"👩🏻‍🦰\",\n \"👩🏻‍🦱\",\n \"👩🏻‍🦲\",\n \"👩🏻‍🦳\",\n \"👩🏻‍🦼\",\n \"👩🏻‍🦽\",\n \"👩🏻‍⚕️\",\n \"👩🏻‍⚖️\",\n \"👩🏻‍✈️\",\n \"👩🏻\",\n \"👩🏼‍🌾\",\n \"👩🏼‍🍳\",\n \"👩🏼‍🎓\",\n \"👩🏼‍🎤\",\n \"👩🏼‍🎨\",\n \"👩🏼‍🏫\",\n \"👩🏼‍🏭\",\n \"👩🏼‍💻\",\n \"👩🏼‍💼\",\n \"👩🏼‍🔧\",\n \"👩🏼‍🔬\",\n \"👩🏼‍🚀\",\n \"👩🏼‍🚒\",\n \"👩🏼‍🤝‍👨🏻\",\n \"👩🏼‍🤝‍👨🏽\",\n \"👩🏼‍🤝‍👨🏾\",\n \"👩🏼‍🤝‍👨🏿\",\n \"👩🏼‍🤝‍👩🏻\",\n \"👩🏼‍🦯\",\n \"👩🏼‍🦰\",\n \"👩🏼‍🦱\",\n \"👩🏼‍🦲\",\n \"👩🏼‍🦳\",\n \"👩🏼‍🦼\",\n \"👩🏼‍🦽\",\n \"👩🏼‍⚕️\",\n \"👩🏼‍⚖️\",\n \"👩🏼‍✈️\",\n \"👩🏼\",\n \"👩🏽‍🌾\",\n \"👩🏽‍🍳\",\n \"👩🏽‍🎓\",\n \"👩🏽‍🎤\",\n \"👩🏽‍🎨\",\n \"👩🏽‍🏫\",\n \"👩🏽‍🏭\",\n \"👩🏽‍💻\",\n \"👩🏽‍💼\",\n \"👩🏽‍🔧\",\n \"👩🏽‍🔬\",\n \"👩🏽‍🚀\",\n \"👩🏽‍🚒\",\n \"👩🏽‍🤝‍👨🏻\",\n \"👩🏽‍🤝‍👨🏼\",\n \"👩🏽‍🤝‍👨🏾\",\n \"👩🏽‍🤝‍👨🏿\",\n \"👩🏽‍🤝‍👩🏻\",\n \"👩🏽‍🤝‍👩🏼\",\n \"👩🏽‍🦯\",\n \"👩🏽‍🦰\",\n \"👩🏽‍🦱\",\n \"👩🏽‍🦲\",\n \"👩🏽‍🦳\",\n \"👩🏽‍🦼\",\n \"👩🏽‍🦽\",\n \"👩🏽‍⚕️\",\n \"👩🏽‍⚖️\",\n \"👩🏽‍✈️\",\n \"👩🏽\",\n \"👩🏾‍🌾\",\n \"👩🏾‍🍳\",\n \"👩🏾‍🎓\",\n \"👩🏾‍🎤\",\n \"👩🏾‍🎨\",\n \"👩🏾‍🏫\",\n \"👩🏾‍🏭\",\n \"👩🏾‍💻\",\n \"👩🏾‍💼\",\n \"👩🏾‍🔧\",\n \"👩🏾‍🔬\",\n \"👩🏾‍🚀\",\n \"👩🏾‍🚒\",\n \"👩🏾‍🤝‍👨🏻\",\n \"👩🏾‍🤝‍👨🏼\",\n \"👩🏾‍🤝‍👨🏽\",\n \"👩🏾‍🤝‍👨🏿\",\n \"👩🏾‍🤝‍👩🏻\",\n \"👩🏾‍🤝‍👩🏼\",\n \"👩🏾‍🤝‍👩🏽\",\n \"👩🏾‍🦯\",\n \"👩🏾‍🦰\",\n \"👩🏾‍🦱\",\n \"👩🏾‍🦲\",\n \"👩🏾‍🦳\",\n \"👩🏾‍🦼\",\n \"👩🏾‍🦽\",\n \"👩🏾‍⚕️\",\n \"👩🏾‍⚖️\",\n \"👩🏾‍✈️\",\n \"👩🏾\",\n \"👩🏿‍🌾\",\n \"👩🏿‍🍳\",\n \"👩🏿‍🎓\",\n \"👩🏿‍🎤\",\n \"👩🏿‍🎨\",\n \"👩🏿‍🏫\",\n \"👩🏿‍🏭\",\n \"👩🏿‍💻\",\n \"👩🏿‍💼\",\n \"👩🏿‍🔧\",\n \"👩🏿‍🔬\",\n \"👩🏿‍🚀\",\n \"👩🏿‍🚒\",\n \"👩🏿‍🤝‍👨🏻\",\n \"👩🏿‍🤝‍👨🏼\",\n \"👩🏿‍🤝‍👨🏽\",\n \"👩🏿‍🤝‍👨🏾\",\n \"👩🏿‍🤝‍👩🏻\",\n \"👩🏿‍🤝‍👩🏼\",\n \"👩🏿‍🤝‍👩🏽\",\n \"👩🏿‍🤝‍👩🏾\",\n \"👩🏿‍🦯\",\n \"👩🏿‍🦰\",\n \"👩🏿‍🦱\",\n \"👩🏿‍🦲\",\n \"👩🏿‍🦳\",\n \"👩🏿‍🦼\",\n \"👩🏿‍🦽\",\n \"👩🏿‍⚕️\",\n \"👩🏿‍⚖️\",\n \"👩🏿‍✈️\",\n \"👩🏿\",\n \"👩‍🌾\",\n \"👩‍🍳\",\n \"👩‍🎓\",\n \"👩‍🎤\",\n \"👩‍🎨\",\n \"👩‍🏫\",\n \"👩‍🏭\",\n \"👩‍👦‍👦\",\n \"👩‍👦\",\n \"👩‍👧‍👦\",\n \"👩‍👧‍👧\",\n \"👩‍👧\",\n \"👩‍👩‍👦‍👦\",\n \"👩‍👩‍👦\",\n \"👩‍👩‍👧‍👦\",\n \"👩‍👩‍👧‍👧\",\n \"👩‍👩‍👧\",\n \"👩‍💻\",\n \"👩‍💼\",\n \"👩‍🔧\",\n \"👩‍🔬\",\n \"👩‍🚀\",\n \"👩‍🚒\",\n \"👩‍🦯\",\n \"👩‍🦰\",\n \"👩‍🦱\",\n \"👩‍🦲\",\n \"👩‍🦳\",\n \"👩‍🦼\",\n \"👩‍🦽\",\n \"👩‍⚕️\",\n \"👩‍⚖️\",\n \"👩‍✈️\",\n \"👩‍❤️‍👨\",\n \"👩‍❤️‍👩\",\n \"👩‍❤️‍💋‍👨\",\n \"👩‍❤️‍💋‍👩\",\n \"👩\",\n \"👪\",\n \"👫🏻\",\n \"👫🏼\",\n \"👫🏽\",\n \"👫🏾\",\n \"👫🏿\",\n \"👫\",\n \"👬🏻\",\n \"👬🏼\",\n \"👬🏽\",\n \"👬🏾\",\n \"👬🏿\",\n \"👬\",\n \"👭🏻\",\n \"👭🏼\",\n \"👭🏽\",\n \"👭🏾\",\n \"👭🏿\",\n \"👭\",\n \"👮🏻‍♀️\",\n \"👮🏻‍♂️\",\n \"👮🏻\",\n \"👮🏼‍♀️\",\n \"👮🏼‍♂️\",\n \"👮🏼\",\n \"👮🏽‍♀️\",\n \"👮🏽‍♂️\",\n \"👮🏽\",\n \"👮🏾‍♀️\",\n \"👮🏾‍♂️\",\n \"👮🏾\",\n \"👮🏿‍♀️\",\n \"👮🏿‍♂️\",\n \"👮🏿\",\n \"👮‍♀️\",\n \"👮‍♂️\",\n \"👮\",\n \"👯‍♀️\",\n \"👯‍♂️\",\n \"👯\",\n \"👰🏻\",\n \"👰🏼\",\n \"👰🏽\",\n \"👰🏾\",\n \"👰🏿\",\n \"👰\",\n \"👱🏻‍♀️\",\n \"👱🏻‍♂️\",\n \"👱🏻\",\n \"👱🏼‍♀️\",\n \"👱🏼‍♂️\",\n \"👱🏼\",\n \"👱🏽‍♀️\",\n \"👱🏽‍♂️\",\n \"👱🏽\",\n \"👱🏾‍♀️\",\n \"👱🏾‍♂️\",\n \"👱🏾\",\n \"👱🏿‍♀️\",\n \"👱🏿‍♂️\",\n \"👱🏿\",\n \"👱‍♀️\",\n \"👱‍♂️\",\n \"👱\",\n \"👲🏻\",\n \"👲🏼\",\n \"👲🏽\",\n \"👲🏾\",\n \"👲🏿\",\n \"👲\",\n \"👳🏻‍♀️\",\n \"👳🏻‍♂️\",\n \"👳🏻\",\n \"👳🏼‍♀️\",\n \"👳🏼‍♂️\",\n \"👳🏼\",\n \"👳🏽‍♀️\",\n \"👳🏽‍♂️\",\n \"👳🏽\",\n \"👳🏾‍♀️\",\n \"👳🏾‍♂️\",\n \"👳🏾\",\n \"👳🏿‍♀️\",\n \"👳🏿‍♂️\",\n \"👳🏿\",\n \"👳‍♀️\",\n \"👳‍♂️\",\n \"👳\",\n \"👴🏻\",\n \"👴🏼\",\n \"👴🏽\",\n \"👴🏾\",\n \"👴🏿\",\n \"👴\",\n \"👵🏻\",\n \"👵🏼\",\n \"👵🏽\",\n \"👵🏾\",\n \"👵🏿\",\n \"👵\",\n \"👶🏻\",\n \"👶🏼\",\n \"👶🏽\",\n \"👶🏾\",\n \"👶🏿\",\n \"👶\",\n \"👷🏻‍♀️\",\n \"👷🏻‍♂️\",\n \"👷🏻\",\n \"👷🏼‍♀️\",\n \"👷🏼‍♂️\",\n \"👷🏼\",\n \"👷🏽‍♀️\",\n \"👷🏽‍♂️\",\n \"👷🏽\",\n \"👷🏾‍♀️\",\n \"👷🏾‍♂️\",\n \"👷🏾\",\n \"👷🏿‍♀️\",\n \"👷🏿‍♂️\",\n \"👷🏿\",\n \"👷‍♀️\",\n \"👷‍♂️\",\n \"👷\",\n \"👸🏻\",\n \"👸🏼\",\n \"👸🏽\",\n \"👸🏾\",\n \"👸🏿\",\n \"👸\",\n \"👹\",\n \"👺\",\n \"👻\",\n \"👼🏻\",\n \"👼🏼\",\n \"👼🏽\",\n \"👼🏾\",\n \"👼🏿\",\n \"👼\",\n \"👽\",\n \"👾\",\n \"👿\",\n \"💀\",\n \"💁🏻‍♀️\",\n \"💁🏻‍♂️\",\n \"💁🏻\",\n \"💁🏼‍♀️\",\n \"💁🏼‍♂️\",\n \"💁🏼\",\n \"💁🏽‍♀️\",\n \"💁🏽‍♂️\",\n \"💁🏽\",\n \"💁🏾‍♀️\",\n \"💁🏾‍♂️\",\n \"💁🏾\",\n \"💁🏿‍♀️\",\n \"💁🏿‍♂️\",\n \"💁🏿\",\n \"💁‍♀️\",\n \"💁‍♂️\",\n \"💁\",\n \"💂🏻‍♀️\",\n \"💂🏻‍♂️\",\n \"💂🏻\",\n \"💂🏼‍♀️\",\n \"💂🏼‍♂️\",\n \"💂🏼\",\n \"💂🏽‍♀️\",\n \"💂🏽‍♂️\",\n \"💂🏽\",\n \"💂🏾‍♀️\",\n \"💂🏾‍♂️\",\n \"💂🏾\",\n \"💂🏿‍♀️\",\n \"💂🏿‍♂️\",\n \"💂🏿\",\n \"💂‍♀️\",\n \"💂‍♂️\",\n \"💂\",\n \"💃🏻\",\n \"💃🏼\",\n \"💃🏽\",\n \"💃🏾\",\n \"💃🏿\",\n \"💃\",\n \"💄\",\n \"💅🏻\",\n \"💅🏼\",\n \"💅🏽\",\n \"💅🏾\",\n \"💅🏿\",\n \"💅\",\n \"💆🏻‍♀️\",\n \"💆🏻‍♂️\",\n \"💆🏻\",\n \"💆🏼‍♀️\",\n \"💆🏼‍♂️\",\n \"💆🏼\",\n \"💆🏽‍♀️\",\n \"💆🏽‍♂️\",\n \"💆🏽\",\n \"💆🏾‍♀️\",\n \"💆🏾‍♂️\",\n \"💆🏾\",\n \"💆🏿‍♀️\",\n \"💆🏿‍♂️\",\n \"💆🏿\",\n \"💆‍♀️\",\n \"💆‍♂️\",\n \"💆\",\n \"💇🏻‍♀️\",\n \"💇🏻‍♂️\",\n \"💇🏻\",\n \"💇🏼‍♀️\",\n \"💇🏼‍♂️\",\n \"💇🏼\",\n \"💇🏽‍♀️\",\n \"💇🏽‍♂️\",\n \"💇🏽\",\n \"💇🏾‍♀️\",\n \"💇🏾‍♂️\",\n \"💇🏾\",\n \"💇🏿‍♀️\",\n \"💇🏿‍♂️\",\n \"💇🏿\",\n \"💇‍♀️\",\n \"💇‍♂️\",\n \"💇\",\n \"💈\",\n \"💉\",\n \"💊\",\n \"💋\",\n \"💌\",\n \"💍\",\n \"💎\",\n \"💏\",\n \"💐\",\n \"💑\",\n \"💒\",\n \"💓\",\n \"💔\",\n \"💕\",\n \"💖\",\n \"💗\",\n \"💘\",\n \"💙\",\n \"💚\",\n \"💛\",\n \"💜\",\n \"💝\",\n \"💞\",\n \"💟\",\n \"💠\",\n \"💡\",\n \"💢\",\n \"💣\",\n \"💤\",\n \"💥\",\n \"💦\",\n \"💧\",\n \"💨\",\n \"💩\",\n \"💪🏻\",\n \"💪🏼\",\n \"💪🏽\",\n \"💪🏾\",\n \"💪🏿\",\n \"💪\",\n \"💫\",\n \"💬\",\n \"💭\",\n \"💮\",\n \"💯\",\n \"💰\",\n \"💱\",\n \"💲\",\n \"💳\",\n \"💴\",\n \"💵\",\n \"💶\",\n \"💷\",\n \"💸\",\n \"💹\",\n \"💺\",\n \"💻\",\n \"💼\",\n \"💽\",\n \"💾\",\n \"💿\",\n \"📀\",\n \"📁\",\n \"📂\",\n \"📃\",\n \"📄\",\n \"📅\",\n \"📆\",\n \"📇\",\n \"📈\",\n \"📉\",\n \"📊\",\n \"📋\",\n \"📌\",\n \"📍\",\n \"📎\",\n \"📏\",\n \"📐\",\n \"📑\",\n \"📒\",\n \"📓\",\n \"📔\",\n \"📕\",\n \"📖\",\n \"📗\",\n \"📘\",\n \"📙\",\n \"📚\",\n \"📛\",\n \"📜\",\n \"📝\",\n \"📞\",\n \"📟\",\n \"📠\",\n \"📡\",\n \"📢\",\n \"📣\",\n \"📤\",\n \"📥\",\n \"📦\",\n \"📧\",\n \"📨\",\n \"📩\",\n \"📪\",\n \"📫\",\n \"📬\",\n \"📭\",\n \"📮\",\n \"📯\",\n \"📰\",\n \"📱\",\n \"📲\",\n \"📳\",\n \"📴\",\n \"📵\",\n \"📶\",\n \"📷\",\n \"📸\",\n \"📹\",\n \"📺\",\n \"📻\",\n \"📼\",\n \"📽️\",\n \"📿\",\n \"🔀\",\n \"🔁\",\n \"🔂\",\n \"🔃\",\n \"🔄\",\n \"🔅\",\n \"🔆\",\n \"🔇\",\n \"🔈\",\n \"🔉\",\n \"🔊\",\n \"🔋\",\n \"🔌\",\n \"🔍\",\n \"🔎\",\n \"🔏\",\n \"🔐\",\n \"🔑\",\n \"🔒\",\n \"🔓\",\n \"🔔\",\n \"🔕\",\n \"🔖\",\n \"🔗\",\n \"🔘\",\n \"🔙\",\n \"🔚\",\n \"🔛\",\n \"🔜\",\n \"🔝\",\n \"🔞\",\n \"🔟\",\n \"🔠\",\n \"🔡\",\n \"🔢\",\n \"🔣\",\n \"🔤\",\n \"🔥\",\n \"🔦\",\n \"🔧\",\n \"🔨\",\n \"🔩\",\n \"🔪\",\n \"🔫\",\n \"🔬\",\n \"🔭\",\n \"🔮\",\n \"🔯\",\n \"🔰\",\n \"🔱\",\n \"🔲\",\n \"🔳\",\n \"🔴\",\n \"🔵\",\n \"🔶\",\n \"🔷\",\n \"🔸\",\n \"🔹\",\n \"🔺\",\n \"🔻\",\n \"🔼\",\n \"🔽\",\n \"🕉️\",\n \"🕊️\",\n \"🕋\",\n \"🕌\",\n \"🕍\",\n \"🕎\",\n \"🕐\",\n \"🕑\",\n \"🕒\",\n \"🕓\",\n \"🕔\",\n \"🕕\",\n \"🕖\",\n \"🕗\",\n \"🕘\",\n \"🕙\",\n \"🕚\",\n \"🕛\",\n \"🕜\",\n \"🕝\",\n \"🕞\",\n \"🕟\",\n \"🕠\",\n \"🕡\",\n \"🕢\",\n \"🕣\",\n \"🕤\",\n \"🕥\",\n \"🕦\",\n \"🕧\",\n \"🕯️\",\n \"🕰️\",\n \"🕳️\",\n \"🕴🏻‍♀️\",\n \"🕴🏻‍♂️\",\n \"🕴🏻\",\n \"🕴🏼‍♀️\",\n \"🕴🏼‍♂️\",\n \"🕴🏼\",\n \"🕴🏽‍♀️\",\n \"🕴🏽‍♂️\",\n \"🕴🏽\",\n \"🕴🏾‍♀️\",\n \"🕴🏾‍♂️\",\n \"🕴🏾\",\n \"🕴🏿‍♀️\",\n \"🕴🏿‍♂️\",\n \"🕴🏿\",\n \"🕴️‍♀️\",\n \"🕴️‍♂️\",\n \"🕴️\",\n \"🕵🏻‍♀️\",\n \"🕵🏻‍♂️\",\n \"🕵🏻\",\n \"🕵🏼‍♀️\",\n \"🕵🏼‍♂️\",\n \"🕵🏼\",\n \"🕵🏽‍♀️\",\n \"🕵🏽‍♂️\",\n \"🕵🏽\",\n \"🕵🏾‍♀️\",\n \"🕵🏾‍♂️\",\n \"🕵🏾\",\n \"🕵🏿‍♀️\",\n \"🕵🏿‍♂️\",\n \"🕵🏿\",\n \"🕵️‍♀️\",\n \"🕵️‍♂️\",\n \"🕵️\",\n \"🕶️\",\n \"🕷️\",\n \"🕸️\",\n \"🕹️\",\n \"🕺🏻\",\n \"🕺🏼\",\n \"🕺🏽\",\n \"🕺🏾\",\n \"🕺🏿\",\n \"🕺\",\n \"🖇️\",\n \"🖊️\",\n \"🖋️\",\n \"🖌️\",\n \"🖍️\",\n \"🖐🏻\",\n \"🖐🏼\",\n \"🖐🏽\",\n \"🖐🏾\",\n \"🖐🏿\",\n \"🖐️\",\n \"🖕🏻\",\n \"🖕🏼\",\n \"🖕🏽\",\n \"🖕🏾\",\n \"🖕🏿\",\n \"🖕\",\n \"🖖🏻\",\n \"🖖🏼\",\n \"🖖🏽\",\n \"🖖🏾\",\n \"🖖🏿\",\n \"🖖\",\n \"🖤\",\n \"🖥️\",\n \"🖨️\",\n \"🖱️\",\n \"🖲️\",\n \"🖼️\",\n \"🗂️\",\n \"🗃️\",\n \"🗄️\",\n \"🗑️\",\n \"🗒️\",\n \"🗓️\",\n \"🗜️\",\n \"🗝️\",\n \"🗞️\",\n \"🗡️\",\n \"🗣️\",\n \"🗨️\",\n \"🗯️\",\n \"🗳️\",\n \"🗺️\",\n \"🗻\",\n \"🗼\",\n \"🗽\",\n \"🗾\",\n \"🗿\",\n \"😀\",\n \"😁\",\n \"😂\",\n \"😃\",\n \"😄\",\n \"😅\",\n \"😆\",\n \"😇\",\n \"😈\",\n \"😉\",\n \"😊\",\n \"😋\",\n \"😌\",\n \"😍\",\n \"😎\",\n \"😏\",\n \"😐\",\n \"😑\",\n \"😒\",\n \"😓\",\n \"😔\",\n \"😕\",\n \"😖\",\n \"😗\",\n \"😘\",\n \"😙\",\n \"😚\",\n \"😛\",\n \"😜\",\n \"😝\",\n \"😞\",\n \"😟\",\n \"😠\",\n \"😡\",\n \"😢\",\n \"😣\",\n \"😤\",\n \"😥\",\n \"😦\",\n \"😧\",\n \"😨\",\n \"😩\",\n \"😪\",\n \"😫\",\n \"😬\",\n \"😭\",\n \"😮\",\n \"😯\",\n \"😰\",\n \"😱\",\n \"😲\",\n \"😳\",\n \"😴\",\n \"😵\",\n \"😶\",\n \"😷\",\n \"😸\",\n \"😹\",\n \"😺\",\n \"😻\",\n \"😼\",\n \"😽\",\n \"😾\",\n \"😿\",\n \"🙀\",\n \"🙁\",\n \"🙂\",\n \"🙃\",\n \"🙄\",\n \"🙅🏻‍♀️\",\n \"🙅🏻‍♂️\",\n \"🙅🏻\",\n \"🙅🏼‍♀️\",\n \"🙅🏼‍♂️\",\n \"🙅🏼\",\n \"🙅🏽‍♀️\",\n \"🙅🏽‍♂️\",\n \"🙅🏽\",\n \"🙅🏾‍♀️\",\n \"🙅🏾‍♂️\",\n \"🙅🏾\",\n \"🙅🏿‍♀️\",\n \"🙅🏿‍♂️\",\n \"🙅🏿\",\n \"🙅‍♀️\",\n \"🙅‍♂️\",\n \"🙅\",\n \"🙆🏻‍♀️\",\n \"🙆🏻‍♂️\",\n \"🙆🏻\",\n \"🙆🏼‍♀️\",\n \"🙆🏼‍♂️\",\n \"🙆🏼\",\n \"🙆🏽‍♀️\",\n \"🙆🏽‍♂️\",\n \"🙆🏽\",\n \"🙆🏾‍♀️\",\n \"🙆🏾‍♂️\",\n \"🙆🏾\",\n \"🙆🏿‍♀️\",\n \"🙆🏿‍♂️\",\n \"🙆🏿\",\n \"🙆‍♀️\",\n \"🙆‍♂️\",\n \"🙆\",\n \"🙇🏻‍♀️\",\n \"🙇🏻‍♂️\",\n \"🙇🏻\",\n \"🙇🏼‍♀️\",\n \"🙇🏼‍♂️\",\n \"🙇🏼\",\n \"🙇🏽‍♀️\",\n \"🙇🏽‍♂️\",\n \"🙇🏽\",\n \"🙇🏾‍♀️\",\n \"🙇🏾‍♂️\",\n \"🙇🏾\",\n \"🙇🏿‍♀️\",\n \"🙇🏿‍♂️\",\n \"🙇🏿\",\n \"🙇‍♀️\",\n \"🙇‍♂️\",\n \"🙇\",\n \"🙈\",\n \"🙉\",\n \"🙊\",\n \"🙋🏻‍♀️\",\n \"🙋🏻‍♂️\",\n \"🙋🏻\",\n \"🙋🏼‍♀️\",\n \"🙋🏼‍♂️\",\n \"🙋🏼\",\n \"🙋🏽‍♀️\",\n \"🙋🏽‍♂️\",\n \"🙋🏽\",\n \"🙋🏾‍♀️\",\n \"🙋🏾‍♂️\",\n \"🙋🏾\",\n \"🙋🏿‍♀️\",\n \"🙋🏿‍♂️\",\n \"🙋🏿\",\n \"🙋‍♀️\",\n \"🙋‍♂️\",\n \"🙋\",\n \"🙌🏻\",\n \"🙌🏼\",\n \"🙌🏽\",\n \"🙌🏾\",\n \"🙌🏿\",\n \"🙌\",\n \"🙍🏻‍♀️\",\n \"🙍🏻‍♂️\",\n \"🙍🏻\",\n \"🙍🏼‍♀️\",\n \"🙍🏼‍♂️\",\n \"🙍🏼\",\n \"🙍🏽‍♀️\",\n \"🙍🏽‍♂️\",\n \"🙍🏽\",\n \"🙍🏾‍♀️\",\n \"🙍🏾‍♂️\",\n \"🙍🏾\",\n \"🙍🏿‍♀️\",\n \"🙍🏿‍♂️\",\n \"🙍🏿\",\n \"🙍‍♀️\",\n \"🙍‍♂️\",\n \"🙍\",\n \"🙎🏻‍♀️\",\n \"🙎🏻‍♂️\",\n \"🙎🏻\",\n \"🙎🏼‍♀️\",\n \"🙎🏼‍♂️\",\n \"🙎🏼\",\n \"🙎🏽‍♀️\",\n \"🙎🏽‍♂️\",\n \"🙎🏽\",\n \"🙎🏾‍♀️\",\n \"🙎🏾‍♂️\",\n \"🙎🏾\",\n \"🙎🏿‍♀️\",\n \"🙎🏿‍♂️\",\n \"🙎🏿\",\n \"🙎‍♀️\",\n \"🙎‍♂️\",\n \"🙎\",\n \"🙏🏻\",\n \"🙏🏼\",\n \"🙏🏽\",\n \"🙏🏾\",\n \"🙏🏿\",\n \"🙏\",\n \"🚀\",\n \"🚁\",\n \"🚂\",\n \"🚃\",\n \"🚄\",\n \"🚅\",\n \"🚆\",\n \"🚇\",\n \"🚈\",\n \"🚉\",\n \"🚊\",\n \"🚋\",\n \"🚌\",\n \"🚍\",\n \"🚎\",\n \"🚏\",\n \"🚐\",\n \"🚑\",\n \"🚒\",\n \"🚓\",\n \"🚔\",\n \"🚕\",\n \"🚖\",\n \"🚗\",\n \"🚘\",\n \"🚙\",\n \"🚚\",\n \"🚛\",\n \"🚜\",\n \"🚝\",\n \"🚞\",\n \"🚟\",\n \"🚠\",\n \"🚡\",\n \"🚢\",\n \"🚣🏻‍♀️\",\n \"🚣🏻‍♂️\",\n \"🚣🏻\",\n \"🚣🏼‍♀️\",\n \"🚣🏼‍♂️\",\n \"🚣🏼\",\n \"🚣🏽‍♀️\",\n \"🚣🏽‍♂️\",\n \"🚣🏽\",\n \"🚣🏾‍♀️\",\n \"🚣🏾‍♂️\",\n \"🚣🏾\",\n \"🚣🏿‍♀️\",\n \"🚣🏿‍♂️\",\n \"🚣🏿\",\n \"🚣‍♀️\",\n \"🚣‍♂️\",\n \"🚣\",\n \"🚤\",\n \"🚥\",\n \"🚦\",\n \"🚧\",\n \"🚨\",\n \"🚩\",\n \"🚪\",\n \"🚫\",\n \"🚬\",\n \"🚭\",\n \"🚮\",\n \"🚯\",\n \"🚰\",\n \"🚱\",\n \"🚲\",\n \"🚳\",\n \"🚴🏻‍♀️\",\n \"🚴🏻‍♂️\",\n \"🚴🏻\",\n \"🚴🏼‍♀️\",\n \"🚴🏼‍♂️\",\n \"🚴🏼\",\n \"🚴🏽‍♀️\",\n \"🚴🏽‍♂️\",\n \"🚴🏽\",\n \"🚴🏾‍♀️\",\n \"🚴🏾‍♂️\",\n \"🚴🏾\",\n \"🚴🏿‍♀️\",\n \"🚴🏿‍♂️\",\n \"🚴🏿\",\n \"🚴‍♀️\",\n \"🚴‍♂️\",\n \"🚴\",\n \"🚵🏻‍♀️\",\n \"🚵🏻‍♂️\",\n \"🚵🏻\",\n \"🚵🏼‍♀️\",\n \"🚵🏼‍♂️\",\n \"🚵🏼\",\n \"🚵🏽‍♀️\",\n \"🚵🏽‍♂️\",\n \"🚵🏽\",\n \"🚵🏾‍♀️\",\n \"🚵🏾‍♂️\",\n \"🚵🏾\",\n \"🚵🏿‍♀️\",\n \"🚵🏿‍♂️\",\n \"🚵🏿\",\n \"🚵‍♀️\",\n \"🚵‍♂️\",\n \"🚵\",\n \"🚶🏻‍♀️\",\n \"🚶🏻‍♂️\",\n \"🚶🏻\",\n \"🚶🏼‍♀️\",\n \"🚶🏼‍♂️\",\n \"🚶🏼\",\n \"🚶🏽‍♀️\",\n \"🚶🏽‍♂️\",\n \"🚶🏽\",\n \"🚶🏾‍♀️\",\n \"🚶🏾‍♂️\",\n \"🚶🏾\",\n \"🚶🏿‍♀️\",\n \"🚶🏿‍♂️\",\n \"🚶🏿\",\n \"🚶‍♀️\",\n \"🚶‍♂️\",\n \"🚶\",\n \"🚷\",\n \"🚸\",\n \"🚹\",\n \"🚺\",\n \"🚻\",\n \"🚼\",\n \"🚽\",\n \"🚾\",\n \"🚿\",\n \"🛀🏻\",\n \"🛀🏼\",\n \"🛀🏽\",\n \"🛀🏾\",\n \"🛀🏿\",\n \"🛀\",\n \"🛁\",\n \"🛂\",\n \"🛃\",\n \"🛄\",\n \"🛅\",\n \"🛋️\",\n \"🛌🏻\",\n \"🛌🏼\",\n \"🛌🏽\",\n \"🛌🏾\",\n \"🛌🏿\",\n \"🛌\",\n \"🛍️\",\n \"🛎️\",\n \"🛏️\",\n \"🛐\",\n \"🛑\",\n \"🛒\",\n \"🛕\",\n \"🛠️\",\n \"🛡️\",\n \"🛢️\",\n \"🛣️\",\n \"🛤️\",\n \"🛥️\",\n \"🛩️\",\n \"🛫\",\n \"🛬\",\n \"🛰️\",\n \"🛳️\",\n \"🛴\",\n \"🛵\",\n \"🛶\",\n \"🛷\",\n \"🛸\",\n \"🛹\",\n \"🛺\",\n \"🟠\",\n \"🟡\",\n \"🟢\",\n \"🟣\",\n \"🟤\",\n \"🟥\",\n \"🟦\",\n \"🟧\",\n \"🟨\",\n \"🟩\",\n \"🟪\",\n \"🟫\",\n \"🤍\",\n \"🤎\",\n \"🤏🏻\",\n \"🤏🏼\",\n \"🤏🏽\",\n \"🤏🏾\",\n \"🤏🏿\",\n \"🤏\",\n \"🤐\",\n \"🤑\",\n \"🤒\",\n \"🤓\",\n \"🤔\",\n \"🤕\",\n \"🤖\",\n \"🤗\",\n \"🤘🏻\",\n \"🤘🏼\",\n \"🤘🏽\",\n \"🤘🏾\",\n \"🤘🏿\",\n \"🤘\",\n \"🤙🏻\",\n \"🤙🏼\",\n \"🤙🏽\",\n \"🤙🏾\",\n \"🤙🏿\",\n \"🤙\",\n \"🤚🏻\",\n \"🤚🏼\",\n \"🤚🏽\",\n \"🤚🏾\",\n \"🤚🏿\",\n \"🤚\",\n \"🤛🏻\",\n \"🤛🏼\",\n \"🤛🏽\",\n \"🤛🏾\",\n \"🤛🏿\",\n \"🤛\",\n \"🤜🏻\",\n \"🤜🏼\",\n \"🤜🏽\",\n \"🤜🏾\",\n \"🤜🏿\",\n \"🤜\",\n \"🤝\",\n \"🤞🏻\",\n \"🤞🏼\",\n \"🤞🏽\",\n \"🤞🏾\",\n \"🤞🏿\",\n \"🤞\",\n \"🤟🏻\",\n \"🤟🏼\",\n \"🤟🏽\",\n \"🤟🏾\",\n \"🤟🏿\",\n \"🤟\",\n \"🤠\",\n \"🤡\",\n \"🤢\",\n \"🤣\",\n \"🤤\",\n \"🤥\",\n \"🤦🏻‍♀️\",\n \"🤦🏻‍♂️\",\n \"🤦🏻\",\n \"🤦🏼‍♀️\",\n \"🤦🏼‍♂️\",\n \"🤦🏼\",\n \"🤦🏽‍♀️\",\n \"🤦🏽‍♂️\",\n \"🤦🏽\",\n \"🤦🏾‍♀️\",\n \"🤦🏾‍♂️\",\n \"🤦🏾\",\n \"🤦🏿‍♀️\",\n \"🤦🏿‍♂️\",\n \"🤦🏿\",\n \"🤦‍♀️\",\n \"🤦‍♂️\",\n \"🤦\",\n \"🤧\",\n \"🤨\",\n \"🤩\",\n \"🤪\",\n \"🤫\",\n \"🤬\",\n \"🤭\",\n \"🤮\",\n \"🤯\",\n \"🤰🏻\",\n \"🤰🏼\",\n \"🤰🏽\",\n \"🤰🏾\",\n \"🤰🏿\",\n \"🤰\",\n \"🤱🏻\",\n \"🤱🏼\",\n \"🤱🏽\",\n \"🤱🏾\",\n \"🤱🏿\",\n \"🤱\",\n \"🤲🏻\",\n \"🤲🏼\",\n \"🤲🏽\",\n \"🤲🏾\",\n \"🤲🏿\",\n \"🤲\",\n \"🤳🏻\",\n \"🤳🏼\",\n \"🤳🏽\",\n \"🤳🏾\",\n \"🤳🏿\",\n \"🤳\",\n \"🤴🏻\",\n \"🤴🏼\",\n \"🤴🏽\",\n \"🤴🏾\",\n \"🤴🏿\",\n \"🤴\",\n \"🤵🏻‍♀️\",\n \"🤵🏻‍♂️\",\n \"🤵🏻\",\n \"🤵🏼‍♀️\",\n \"🤵🏼‍♂️\",\n \"🤵🏼\",\n \"🤵🏽‍♀️\",\n \"🤵🏽‍♂️\",\n \"🤵🏽\",\n \"🤵🏾‍♀️\",\n \"🤵🏾‍♂️\",\n \"🤵🏾\",\n \"🤵🏿‍♀️\",\n \"🤵🏿‍♂️\",\n \"🤵🏿\",\n \"🤵‍♀️\",\n \"🤵‍♂️\",\n \"🤵\",\n \"🤶🏻\",\n \"🤶🏼\",\n \"🤶🏽\",\n \"🤶🏾\",\n \"🤶🏿\",\n \"🤶\",\n \"🤷🏻‍♀️\",\n \"🤷🏻‍♂️\",\n \"🤷🏻\",\n \"🤷🏼‍♀️\",\n \"🤷🏼‍♂️\",\n \"🤷🏼\",\n \"🤷🏽‍♀️\",\n \"🤷🏽‍♂️\",\n \"🤷🏽\",\n \"🤷🏾‍♀️\",\n \"🤷🏾‍♂️\",\n \"🤷🏾\",\n \"🤷🏿‍♀️\",\n \"🤷🏿‍♂️\",\n \"🤷🏿\",\n \"🤷‍♀️\",\n \"🤷‍♂️\",\n \"🤷\",\n \"🤸🏻‍♀️\",\n \"🤸🏻‍♂️\",\n \"🤸🏻\",\n \"🤸🏼‍♀️\",\n \"🤸🏼‍♂️\",\n \"🤸🏼\",\n \"🤸🏽‍♀️\",\n \"🤸🏽‍♂️\",\n \"🤸🏽\",\n \"🤸🏾‍♀️\",\n \"🤸🏾‍♂️\",\n \"🤸🏾\",\n \"🤸🏿‍♀️\",\n \"🤸🏿‍♂️\",\n \"🤸🏿\",\n \"🤸‍♀️\",\n \"🤸‍♂️\",\n \"🤸\",\n \"🤹🏻‍♀️\",\n \"🤹🏻‍♂️\",\n \"🤹🏻\",\n \"🤹🏼‍♀️\",\n \"🤹🏼‍♂️\",\n \"🤹🏼\",\n \"🤹🏽‍♀️\",\n \"🤹🏽‍♂️\",\n \"🤹🏽\",\n \"🤹🏾‍♀️\",\n \"🤹🏾‍♂️\",\n \"🤹🏾\",\n \"🤹🏿‍♀️\",\n \"🤹🏿‍♂️\",\n \"🤹🏿\",\n \"🤹‍♀️\",\n \"🤹‍♂️\",\n \"🤹\",\n \"🤺\",\n \"🤼‍♀️\",\n \"🤼‍♂️\",\n \"🤼\",\n \"🤽🏻‍♀️\",\n \"🤽🏻‍♂️\",\n \"🤽🏻\",\n \"🤽🏼‍♀️\",\n \"🤽🏼‍♂️\",\n \"🤽🏼\",\n \"🤽🏽‍♀️\",\n \"🤽🏽‍♂️\",\n \"🤽🏽\",\n \"🤽🏾‍♀️\",\n \"🤽🏾‍♂️\",\n \"🤽🏾\",\n \"🤽🏿‍♀️\",\n \"🤽🏿‍♂️\",\n \"🤽🏿\",\n \"🤽‍♀️\",\n \"🤽‍♂️\",\n \"🤽\",\n \"🤾🏻‍♀️\",\n \"🤾🏻‍♂️\",\n \"🤾🏻\",\n \"🤾🏼‍♀️\",\n \"🤾🏼‍♂️\",\n \"🤾🏼\",\n \"🤾🏽‍♀️\",\n \"🤾🏽‍♂️\",\n \"🤾🏽\",\n \"🤾🏾‍♀️\",\n \"🤾🏾‍♂️\",\n \"🤾🏾\",\n \"🤾🏿‍♀️\",\n \"🤾🏿‍♂️\",\n \"🤾🏿\",\n \"🤾‍♀️\",\n \"🤾‍♂️\",\n \"🤾\",\n \"🤿\",\n \"🥀\",\n \"🥁\",\n \"🥂\",\n \"🥃\",\n \"🥄\",\n \"🥅\",\n \"🥇\",\n \"🥈\",\n \"🥉\",\n \"🥊\",\n \"🥋\",\n \"🥌\",\n \"🥍\",\n \"🥎\",\n \"🥏\",\n \"🥐\",\n \"🥑\",\n \"🥒\",\n \"🥓\",\n \"🥔\",\n \"🥕\",\n \"🥖\",\n \"🥗\",\n \"🥘\",\n \"🥙\",\n \"🥚\",\n \"🥛\",\n \"🥜\",\n \"🥝\",\n \"🥞\",\n \"🥟\",\n \"🥠\",\n \"🥡\",\n \"🥢\",\n \"🥣\",\n \"🥤\",\n \"🥥\",\n \"🥦\",\n \"🥧\",\n \"🥨\",\n \"🥩\",\n \"🥪\",\n \"🥫\",\n \"🥬\",\n \"🥭\",\n \"🥮\",\n \"🥯\",\n \"🥰\",\n \"🥱\",\n \"🥳\",\n \"🥴\",\n \"🥵\",\n \"🥶\",\n \"🥺\",\n \"🥻\",\n \"🥼\",\n \"🥽\",\n \"🥾\",\n \"🥿\",\n \"🦀\",\n \"🦁\",\n \"🦂\",\n \"🦃\",\n \"🦄\",\n \"🦅\",\n \"🦆\",\n \"🦇\",\n \"🦈\",\n \"🦉\",\n \"🦊\",\n \"🦋\",\n \"🦌\",\n \"🦍\",\n \"🦎\",\n \"🦏\",\n \"🦐\",\n \"🦑\",\n \"🦒\",\n \"🦓\",\n \"🦔\",\n \"🦕\",\n \"🦖\",\n \"🦗\",\n \"🦘\",\n \"🦙\",\n \"🦚\",\n \"🦛\",\n \"🦜\",\n \"🦝\",\n \"🦞\",\n \"🦟\",\n \"🦠\",\n \"🦡\",\n \"🦢\",\n \"🦥\",\n \"🦦\",\n \"🦧\",\n \"🦨\",\n \"🦩\",\n \"🦪\",\n \"🦮\",\n \"🦯\",\n \"🦰\",\n \"🦱\",\n \"🦲\",\n \"🦳\",\n \"🦴\",\n \"🦵🏻\",\n \"🦵🏼\",\n \"🦵🏽\",\n \"🦵🏾\",\n \"🦵🏿\",\n \"🦵\",\n \"🦶🏻\",\n \"🦶🏼\",\n \"🦶🏽\",\n \"🦶🏾\",\n \"🦶🏿\",\n \"🦶\",\n \"🦷\",\n \"🦸🏻‍♀️\",\n \"🦸🏻‍♂️\",\n \"🦸🏻\",\n \"🦸🏼‍♀️\",\n \"🦸🏼‍♂️\",\n \"🦸🏼\",\n \"🦸🏽‍♀️\",\n \"🦸🏽‍♂️\",\n \"🦸🏽\",\n \"🦸🏾‍♀️\",\n \"🦸🏾‍♂️\",\n \"🦸🏾\",\n \"🦸🏿‍♀️\",\n \"🦸🏿‍♂️\",\n \"🦸🏿\",\n \"🦸‍♀️\",\n \"🦸‍♂️\",\n \"🦸\",\n \"🦹🏻‍♀️\",\n \"🦹🏻‍♂️\",\n \"🦹🏻\",\n \"🦹🏼‍♀️\",\n \"🦹🏼‍♂️\",\n \"🦹🏼\",\n \"🦹🏽‍♀️\",\n \"🦹🏽‍♂️\",\n \"🦹🏽\",\n \"🦹🏾‍♀️\",\n \"🦹🏾‍♂️\",\n \"🦹🏾\",\n \"🦹🏿‍♀️\",\n \"🦹🏿‍♂️\",\n \"🦹🏿\",\n \"🦹‍♀️\",\n \"🦹‍♂️\",\n \"🦹\",\n \"🦺\",\n \"🦻🏻\",\n \"🦻🏼\",\n \"🦻🏽\",\n \"🦻🏾\",\n \"🦻🏿\",\n \"🦻\",\n \"🦼\",\n \"🦽\",\n \"🦾\",\n \"🦿\",\n \"🧀\",\n \"🧁\",\n \"🧂\",\n \"🧃\",\n \"🧄\",\n \"🧅\",\n \"🧆\",\n \"🧇\",\n \"🧈\",\n \"🧉\",\n \"🧊\",\n \"🧍🏻‍♀️\",\n \"🧍🏻‍♂️\",\n \"🧍🏻\",\n \"🧍🏼‍♀️\",\n \"🧍🏼‍♂️\",\n \"🧍🏼\",\n \"🧍🏽‍♀️\",\n \"🧍🏽‍♂️\",\n \"🧍🏽\",\n \"🧍🏾‍♀️\",\n \"🧍🏾‍♂️\",\n \"🧍🏾\",\n \"🧍🏿‍♀️\",\n \"🧍🏿‍♂️\",\n \"🧍🏿\",\n \"🧍‍♀️\",\n \"🧍‍♂️\",\n \"🧍\",\n \"🧎🏻‍♀️\",\n \"🧎🏻‍♂️\",\n \"🧎🏻\",\n \"🧎🏼‍♀️\",\n \"🧎🏼‍♂️\",\n \"🧎🏼\",\n \"🧎🏽‍♀️\",\n \"🧎🏽‍♂️\",\n \"🧎🏽\",\n \"🧎🏾‍♀️\",\n \"🧎🏾‍♂️\",\n \"🧎🏾\",\n \"🧎🏿‍♀️\",\n \"🧎🏿‍♂️\",\n \"🧎🏿\",\n \"🧎‍♀️\",\n \"🧎‍♂️\",\n \"🧎\",\n \"🧏🏻‍♀️\",\n \"🧏🏻‍♂️\",\n \"🧏🏻\",\n \"🧏🏼‍♀️\",\n \"🧏🏼‍♂️\",\n \"🧏🏼\",\n \"🧏🏽‍♀️\",\n \"🧏🏽‍♂️\",\n \"🧏🏽\",\n \"🧏🏾‍♀️\",\n \"🧏🏾‍♂️\",\n \"🧏🏾\",\n \"🧏🏿‍♀️\",\n \"🧏🏿‍♂️\",\n \"🧏🏿\",\n \"🧏‍♀️\",\n \"🧏‍♂️\",\n \"🧏\",\n \"🧐\",\n \"🧑🏻‍🤝‍🧑🏻\",\n \"🧑🏻\",\n \"🧑🏼‍🤝‍🧑🏻\",\n \"🧑🏼‍🤝‍🧑🏼\",\n \"🧑🏼\",\n \"🧑🏽‍🤝‍🧑🏻\",\n \"🧑🏽‍🤝‍🧑🏼\",\n \"🧑🏽‍🤝‍🧑🏽\",\n \"🧑🏽\",\n \"🧑🏾‍🤝‍🧑🏻\",\n \"🧑🏾‍🤝‍🧑🏼\",\n \"🧑🏾‍🤝‍🧑🏽\",\n \"🧑🏾‍🤝‍🧑🏾\",\n \"🧑🏾\",\n \"🧑🏿‍🤝‍🧑🏻\",\n \"🧑🏿‍🤝‍🧑🏼\",\n \"🧑🏿‍🤝‍🧑🏽\",\n \"🧑🏿‍🤝‍🧑🏾\",\n \"🧑🏿‍🤝‍🧑🏿\",\n \"🧑🏿\",\n \"🧑‍🤝‍🧑\",\n \"🧑\",\n \"🧒🏻\",\n \"🧒🏼\",\n \"🧒🏽\",\n \"🧒🏾\",\n \"🧒🏿\",\n \"🧒\",\n \"🧓🏻\",\n \"🧓🏼\",\n \"🧓🏽\",\n \"🧓🏾\",\n \"🧓🏿\",\n \"🧓\",\n \"🧔🏻\",\n \"🧔🏼\",\n \"🧔🏽\",\n \"🧔🏾\",\n \"🧔🏿\",\n \"🧔\",\n \"🧕🏻\",\n \"🧕🏼\",\n \"🧕🏽\",\n \"🧕🏾\",\n \"🧕🏿\",\n \"🧕\",\n \"🧖🏻‍♀️\",\n \"🧖🏻‍♂️\",\n \"🧖🏻\",\n \"🧖🏼‍♀️\",\n \"🧖🏼‍♂️\",\n \"🧖🏼\",\n \"🧖🏽‍♀️\",\n \"🧖🏽‍♂️\",\n \"🧖🏽\",\n \"🧖🏾‍♀️\",\n \"🧖🏾‍♂️\",\n \"🧖🏾\",\n \"🧖🏿‍♀️\",\n \"🧖🏿‍♂️\",\n \"🧖🏿\",\n \"🧖‍♀️\",\n \"🧖‍♂️\",\n \"🧖\",\n \"🧗🏻‍♀️\",\n \"🧗🏻‍♂️\",\n \"🧗🏻\",\n \"🧗🏼‍♀️\",\n \"🧗🏼‍♂️\",\n \"🧗🏼\",\n \"🧗🏽‍♀️\",\n \"🧗🏽‍♂️\",\n \"🧗🏽\",\n \"🧗🏾‍♀️\",\n \"🧗🏾‍♂️\",\n \"🧗🏾\",\n \"🧗🏿‍♀️\",\n \"🧗🏿‍♂️\",\n \"🧗🏿\",\n \"🧗‍♀️\",\n \"🧗‍♂️\",\n \"🧗\",\n \"🧘🏻‍♀️\",\n \"🧘🏻‍♂️\",\n \"🧘🏻\",\n \"🧘🏼‍♀️\",\n \"🧘🏼‍♂️\",\n \"🧘🏼\",\n \"🧘🏽‍♀️\",\n \"🧘🏽‍♂️\",\n \"🧘🏽\",\n \"🧘🏾‍♀️\",\n \"🧘🏾‍♂️\",\n \"🧘🏾\",\n \"🧘🏿‍♀️\",\n \"🧘🏿‍♂️\",\n \"🧘🏿\",\n \"🧘‍♀️\",\n \"🧘‍♂️\",\n \"🧘\",\n \"🧙🏻‍♀️\",\n \"🧙🏻‍♂️\",\n \"🧙🏻\",\n \"🧙🏼‍♀️\",\n \"🧙🏼‍♂️\",\n \"🧙🏼\",\n \"🧙🏽‍♀️\",\n \"🧙🏽‍♂️\",\n \"🧙🏽\",\n \"🧙🏾‍♀️\",\n \"🧙🏾‍♂️\",\n \"🧙🏾\",\n \"🧙🏿‍♀️\",\n \"🧙🏿‍♂️\",\n \"🧙🏿\",\n \"🧙‍♀️\",\n \"🧙‍♂️\",\n \"🧙\",\n \"🧚🏻‍♀️\",\n \"🧚🏻‍♂️\",\n \"🧚🏻\",\n \"🧚🏼‍♀️\",\n \"🧚🏼‍♂️\",\n \"🧚🏼\",\n \"🧚🏽‍♀️\",\n \"🧚🏽‍♂️\",\n \"🧚🏽\",\n \"🧚🏾‍♀️\",\n \"🧚🏾‍♂️\",\n \"🧚🏾\",\n \"🧚🏿‍♀️\",\n \"🧚🏿‍♂️\",\n \"🧚🏿\",\n \"🧚‍♀️\",\n \"🧚‍♂️\",\n \"🧚\",\n \"🧛🏻‍♀️\",\n \"🧛🏻‍♂️\",\n \"🧛🏻\",\n \"🧛🏼‍♀️\",\n \"🧛🏼‍♂️\",\n \"🧛🏼\",\n \"🧛🏽‍♀️\",\n \"🧛🏽‍♂️\",\n \"🧛🏽\",\n \"🧛🏾‍♀️\",\n \"🧛🏾‍♂️\",\n \"🧛🏾\",\n \"🧛🏿‍♀️\",\n \"🧛🏿‍♂️\",\n \"🧛🏿\",\n \"🧛‍♀️\",\n \"🧛‍♂️\",\n \"🧛\",\n \"🧜🏻‍♀️\",\n \"🧜🏻‍♂️\",\n \"🧜🏻\",\n \"🧜🏼‍♀️\",\n \"🧜🏼‍♂️\",\n \"🧜🏼\",\n \"🧜🏽‍♀️\",\n \"🧜🏽‍♂️\",\n \"🧜🏽\",\n \"🧜🏾‍♀️\",\n \"🧜🏾‍♂️\",\n \"🧜🏾\",\n \"🧜🏿‍♀️\",\n \"🧜🏿‍♂️\",\n \"🧜🏿\",\n \"🧜‍♀️\",\n \"🧜‍♂️\",\n \"🧜\",\n \"🧝🏻‍♀️\",\n \"🧝🏻‍♂️\",\n \"🧝🏻\",\n \"🧝🏼‍♀️\",\n \"🧝🏼‍♂️\",\n \"🧝🏼\",\n \"🧝🏽‍♀️\",\n \"🧝🏽‍♂️\",\n \"🧝🏽\",\n \"🧝🏾‍♀️\",\n \"🧝🏾‍♂️\",\n \"🧝🏾\",\n \"🧝🏿‍♀️\",\n \"🧝🏿‍♂️\",\n \"🧝🏿\",\n \"🧝‍♀️\",\n \"🧝‍♂️\",\n \"🧝\",\n \"🧞‍♀️\",\n \"🧞‍♂️\",\n \"🧞\",\n \"🧟‍♀️\",\n \"🧟‍♂️\",\n \"🧟\",\n \"🧠\",\n \"🧡\",\n \"🧢\",\n \"🧣\",\n \"🧤\",\n \"🧥\",\n \"🧦\",\n \"🧧\",\n \"🧨\",\n \"🧩\",\n \"🧪\",\n \"🧫\",\n \"🧬\",\n \"🧭\",\n \"🧮\",\n \"🧯\",\n \"🧰\",\n \"🧱\",\n \"🧲\",\n \"🧳\",\n \"🧴\",\n \"🧵\",\n \"🧶\",\n \"🧷\",\n \"🧸\",\n \"🧹\",\n \"🧺\",\n \"🧻\",\n \"🧼\",\n \"🧽\",\n \"🧾\",\n \"🧿\",\n \"🩰\",\n \"🩱\",\n \"🩲\",\n \"🩳\",\n \"🩸\",\n \"🩹\",\n \"🩺\",\n \"🪀\",\n \"🪁\",\n \"🪂\",\n \"🪐\",\n \"🪑\",\n \"🪒\",\n \"🪓\",\n \"🪔\",\n \"🪕\",\n \"‼️\",\n \"⁉️\",\n \"™️\",\n \"ℹ️\",\n \"↔️\",\n \"↕️\",\n \"↖️\",\n \"↗️\",\n \"↘️\",\n \"↙️\",\n \"↩️\",\n \"↪️\",\n \"#⃣\",\n \"⌚️\",\n \"⌛️\",\n \"⌨️\",\n \"⏏️\",\n \"⏩\",\n \"⏪\",\n \"⏫\",\n \"⏬\",\n \"⏭️\",\n \"⏮️\",\n \"⏯️\",\n \"⏰\",\n \"⏱️\",\n \"⏲️\",\n \"⏳\",\n \"⏸️\",\n \"⏹️\",\n \"⏺️\",\n \"Ⓜ️\",\n \"▪️\",\n \"▫️\",\n \"▶️\",\n \"◀️\",\n \"◻️\",\n \"◼️\",\n \"◽️\",\n \"◾️\",\n \"☀️\",\n \"☁️\",\n \"☂️\",\n \"☃️\",\n \"☄️\",\n \"☎️\",\n \"☑️\",\n \"☔️\",\n \"☕️\",\n \"☘️\",\n \"☝🏻\",\n \"☝🏼\",\n \"☝🏽\",\n \"☝🏾\",\n \"☝🏿\",\n \"☝️\",\n \"☠️\",\n \"☢️\",\n \"☣️\",\n \"☦️\",\n \"☪️\",\n \"☮️\",\n \"☯️\",\n \"☸️\",\n \"☹️\",\n \"☺️\",\n \"♀️\",\n \"♂️\",\n \"♈️\",\n \"♉️\",\n \"♊️\",\n \"♋️\",\n \"♌️\",\n \"♍️\",\n \"♎️\",\n \"♏️\",\n \"♐️\",\n \"♑️\",\n \"♒️\",\n \"♓️\",\n \"♟️\",\n \"♠️\",\n \"♣️\",\n \"♥️\",\n \"♦️\",\n \"♨️\",\n \"♻️\",\n \"♾\",\n \"♿️\",\n \"⚒️\",\n \"⚓️\",\n \"⚔️\",\n \"⚕️\",\n \"⚖️\",\n \"⚗️\",\n \"⚙️\",\n \"⚛️\",\n \"⚜️\",\n \"⚠️\",\n \"⚡️\",\n \"⚪️\",\n \"⚫️\",\n \"⚰️\",\n \"⚱️\",\n \"⚽️\",\n \"⚾️\",\n \"⛄️\",\n \"⛅️\",\n \"⛈️\",\n \"⛎\",\n \"⛏️\",\n \"⛑️\",\n \"⛓️\",\n \"⛔️\",\n \"⛩️\",\n \"⛪️\",\n \"⛰️\",\n \"⛱️\",\n \"⛲️\",\n \"⛳️\",\n \"⛴️\",\n \"⛵️\",\n \"⛷🏻\",\n \"⛷🏼\",\n \"⛷🏽\",\n \"⛷🏾\",\n \"⛷🏿\",\n \"⛷️\",\n \"⛸️\",\n \"⛹🏻‍♀️\",\n \"⛹🏻‍♂️\",\n \"⛹🏻\",\n \"⛹🏼‍♀️\",\n \"⛹🏼‍♂️\",\n \"⛹🏼\",\n \"⛹🏽‍♀️\",\n \"⛹🏽‍♂️\",\n \"⛹🏽\",\n \"⛹🏾‍♀️\",\n \"⛹🏾‍♂️\",\n \"⛹🏾\",\n \"⛹🏿‍♀️\",\n \"⛹🏿‍♂️\",\n \"⛹🏿\",\n \"⛹️‍♀️\",\n \"⛹️‍♂️\",\n \"⛹️\",\n \"⛺️\",\n \"⛽️\",\n \"✂️\",\n \"✅\",\n \"✈️\",\n \"✉️\",\n \"✊🏻\",\n \"✊🏼\",\n \"✊🏽\",\n \"✊🏾\",\n \"✊🏿\",\n \"✊\",\n \"✋🏻\",\n \"✋🏼\",\n \"✋🏽\",\n \"✋🏾\",\n \"✋🏿\",\n \"✋\",\n \"✌🏻\",\n \"✌🏼\",\n \"✌🏽\",\n \"✌🏾\",\n \"✌🏿\",\n \"✌️\",\n \"✍🏻\",\n \"✍🏼\",\n \"✍🏽\",\n \"✍🏾\",\n \"✍🏿\",\n \"✍️\",\n \"✏️\",\n \"✒️\",\n \"✔️\",\n \"✖️\",\n \"✝️\",\n \"✡️\",\n \"✨\",\n \"✳️\",\n \"✴️\",\n \"❄️\",\n \"❇️\",\n \"❌\",\n \"❎\",\n \"❓\",\n \"❔\",\n \"❕\",\n \"❗️\",\n \"❣️\",\n \"❤️\",\n \"➕\",\n \"➖\",\n \"➗\",\n \"➡️\",\n \"➰\",\n \"➿\",\n \"⤴️\",\n \"⤵️\",\n \"*⃣\",\n \"⬅️\",\n \"⬆️\",\n \"⬇️\",\n \"⬛️\",\n \"⬜️\",\n \"⭐️\",\n \"⭕️\",\n \"0⃣\",\n \"〰️\",\n \"〽️\",\n \"1⃣\",\n \"2⃣\",\n \"㊗️\",\n \"㊙️\",\n \"3⃣\",\n \"4⃣\",\n \"5⃣\",\n \"6⃣\",\n \"7⃣\",\n \"8⃣\",\n \"9⃣\",\n \"©️\",\n \"®️\",\n \"\"\n]","'use strict';\n\nconst path = require('path');\nconst emojisList = require('emojis-list');\nconst getHashDigest = require('./getHashDigest');\n\nconst emojiRegex = /[\\uD800-\\uDFFF]./;\nconst emojiList = emojisList.filter((emoji) => emojiRegex.test(emoji));\nconst emojiCache = {};\n\nfunction encodeStringToEmoji(content, length) {\n if (emojiCache[content]) {\n return emojiCache[content];\n }\n\n length = length || 1;\n\n const emojis = [];\n\n do {\n if (!emojiList.length) {\n throw new Error('Ran out of emoji');\n }\n\n const index = Math.floor(Math.random() * emojiList.length);\n\n emojis.push(emojiList[index]);\n emojiList.splice(index, 1);\n } while (--length > 0);\n\n const emojiEncoding = emojis.join('');\n\n emojiCache[content] = emojiEncoding;\n\n return emojiEncoding;\n}\n\nfunction interpolateName(loaderContext, name, options) {\n let filename;\n\n const hasQuery =\n loaderContext.resourceQuery && loaderContext.resourceQuery.length > 1;\n\n if (typeof name === 'function') {\n filename = name(\n loaderContext.resourcePath,\n hasQuery ? loaderContext.resourceQuery : undefined\n );\n } else {\n filename = name || '[hash].[ext]';\n }\n\n const context = options.context;\n const content = options.content;\n const regExp = options.regExp;\n\n let ext = 'bin';\n let basename = 'file';\n let directory = '';\n let folder = '';\n let query = '';\n\n if (loaderContext.resourcePath) {\n const parsed = path.parse(loaderContext.resourcePath);\n let resourcePath = loaderContext.resourcePath;\n\n if (parsed.ext) {\n ext = parsed.ext.substr(1);\n }\n\n if (parsed.dir) {\n basename = parsed.name;\n resourcePath = parsed.dir + path.sep;\n }\n\n if (typeof context !== 'undefined') {\n directory = path\n .relative(context, resourcePath + '_')\n .replace(/\\\\/g, '/')\n .replace(/\\.\\.(\\/)?/g, '_$1');\n directory = directory.substr(0, directory.length - 1);\n } else {\n directory = resourcePath.replace(/\\\\/g, '/').replace(/\\.\\.(\\/)?/g, '_$1');\n }\n\n if (directory.length === 1) {\n directory = '';\n } else if (directory.length > 1) {\n folder = path.basename(directory);\n }\n }\n\n if (loaderContext.resourceQuery && loaderContext.resourceQuery.length > 1) {\n query = loaderContext.resourceQuery;\n\n const hashIdx = query.indexOf('#');\n\n if (hashIdx >= 0) {\n query = query.substr(0, hashIdx);\n }\n }\n\n let url = filename;\n\n if (content) {\n // Match hash template\n url = url\n // `hash` and `contenthash` are same in `loader-utils` context\n // let's keep `hash` for backward compatibility\n .replace(\n /\\[(?:([^:\\]]+):)?(?:hash|contenthash)(?::([a-z]+\\d*))?(?::(\\d+))?\\]/gi,\n (all, hashType, digestType, maxLength) =>\n getHashDigest(content, hashType, digestType, parseInt(maxLength, 10))\n )\n .replace(/\\[emoji(?::(\\d+))?\\]/gi, (all, length) =>\n encodeStringToEmoji(content, parseInt(length, 10))\n );\n }\n\n url = url\n .replace(/\\[ext\\]/gi, () => ext)\n .replace(/\\[name\\]/gi, () => basename)\n .replace(/\\[path\\]/gi, () => directory)\n .replace(/\\[folder\\]/gi, () => folder)\n .replace(/\\[query\\]/gi, () => query);\n\n if (regExp && loaderContext.resourcePath) {\n const match = loaderContext.resourcePath.match(new RegExp(regExp));\n\n match &&\n match.forEach((matched, i) => {\n url = url.replace(new RegExp('\\\\[' + i + '\\\\]', 'ig'), matched);\n });\n }\n\n if (\n typeof loaderContext.options === 'object' &&\n typeof loaderContext.options.customInterpolateName === 'function'\n ) {\n url = loaderContext.options.customInterpolateName.call(\n loaderContext,\n url,\n name,\n options\n );\n }\n\n return url;\n}\n\nmodule.exports = interpolateName;\n","'use strict';\n\nconst getOptions = require('./getOptions');\nconst parseQuery = require('./parseQuery');\nconst stringifyRequest = require('./stringifyRequest');\nconst getRemainingRequest = require('./getRemainingRequest');\nconst getCurrentRequest = require('./getCurrentRequest');\nconst isUrlRequest = require('./isUrlRequest');\nconst urlToRequest = require('./urlToRequest');\nconst parseString = require('./parseString');\nconst getHashDigest = require('./getHashDigest');\nconst interpolateName = require('./interpolateName');\n\nexports.getOptions = getOptions;\nexports.parseQuery = parseQuery;\nexports.stringifyRequest = stringifyRequest;\nexports.getRemainingRequest = getRemainingRequest;\nexports.getCurrentRequest = getCurrentRequest;\nexports.isUrlRequest = isUrlRequest;\nexports.urlToRequest = urlToRequest;\nexports.parseString = parseString;\nexports.getHashDigest = getHashDigest;\nexports.interpolateName = interpolateName;\n","\"use strict\";\n\nvar interpolateName = require(\"loader-utils\").interpolateName;\nvar path = require(\"path\");\n\n/**\n * @param {string} pattern\n * @param {object} options\n * @param {string} options.context\n * @param {string} options.hashPrefix\n * @return {function}\n */\nmodule.exports = function createGenerator(pattern, options) {\n options = options || {};\n var context =\n options && typeof options.context === \"string\"\n ? options.context\n : process.cwd();\n var hashPrefix =\n options && typeof options.hashPrefix === \"string\" ? options.hashPrefix : \"\";\n\n /**\n * @param {string} localName Usually a class name\n * @param {string} filepath Absolute path\n * @return {string}\n */\n return function generate(localName, filepath) {\n var name = pattern.replace(/\\[local\\]/gi, localName);\n var loaderContext = {\n resourcePath: filepath\n };\n\n var loaderOptions = {\n content:\n hashPrefix +\n path.relative(context, filepath).replace(/\\\\/g, \"/\") +\n \"+\" +\n localName,\n context: context\n };\n\n var genericName = interpolateName(loaderContext, name, loaderOptions);\n return genericName\n .replace(new RegExp(\"[^a-zA-Z0-9\\\\-_\\u00A0-\\uFFFF]\", \"g\"), \"-\")\n .replace(/^((-?[0-9])|--)/, \"_$1\");\n };\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.replaceAll = replaceAll;\nvar matchConstName = /[$#]?[\\w-\\.]+/g;\n\nfunction replaceAll(replacements, text) {\n var matches = void 0;\n while (matches = matchConstName.exec(text)) {\n var replacement = replacements[matches[0]];\n if (replacement) {\n text = text.slice(0, matches.index) + replacement + text.slice(matchConstName.lastIndex);\n matchConstName.lastIndex -= matches[0].length - replacement.length;\n }\n }\n return text;\n}\n\nexports.default = function (css, translations) {\n css.walkDecls(function (decl) {\n return decl.value = replaceAll(translations, decl.value);\n });\n css.walkAtRules('media', function (atRule) {\n return atRule.params = replaceAll(translations, atRule.params);\n });\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _icssReplaceSymbols = require(\"icss-replace-symbols\");\n\nvar _icssReplaceSymbols2 = _interopRequireDefault(_icssReplaceSymbols);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Copied from https://github.com/css-modules/css-modules-loader-core\n\nconst importRegexp = /^:import\\((.+)\\)$/;\nclass Parser {\n constructor(pathFetcher, trace) {\n this.pathFetcher = pathFetcher;\n this.plugin = this.plugin.bind(this);\n this.exportTokens = {};\n this.translations = {};\n this.trace = trace;\n }\n\n plugin() {\n const parser = this;\n return {\n postcssPlugin: \"css-modules-parser\",\n OnceExit(css) {\n return Promise.all(parser.fetchAllImports(css)).then(() => parser.linkImportedSymbols(css)).then(() => parser.extractExports(css));\n }\n };\n }\n\n fetchAllImports(css) {\n let imports = [];\n css.each(node => {\n if (node.type == \"rule\" && node.selector.match(importRegexp)) {\n imports.push(this.fetchImport(node, css.source.input.from, imports.length));\n }\n });\n return imports;\n }\n\n linkImportedSymbols(css) {\n (0, _icssReplaceSymbols2.default)(css, this.translations);\n }\n\n extractExports(css) {\n css.each(node => {\n if (node.type == \"rule\" && node.selector == \":export\") this.handleExport(node);\n });\n }\n\n handleExport(exportNode) {\n exportNode.each(decl => {\n if (decl.type == \"decl\") {\n Object.keys(this.translations).forEach(translation => {\n decl.value = decl.value.replace(translation, this.translations[translation]);\n });\n this.exportTokens[decl.prop] = decl.value;\n }\n });\n exportNode.remove();\n }\n\n fetchImport(importNode, relativeTo, depNr) {\n let file = importNode.selector.match(importRegexp)[1],\n depTrace = this.trace + String.fromCharCode(depNr);\n return this.pathFetcher(file, relativeTo, depTrace).then(exports => {\n importNode.each(decl => {\n if (decl.type == \"decl\") {\n this.translations[decl.prop] = exports[decl.value];\n }\n });\n importNode.remove();\n }, err => console.log(err));\n }\n}\nexports.default = Parser;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _postcss = require(\"postcss\");\n\nvar _postcss2 = _interopRequireDefault(_postcss);\n\nvar _fs = require(\"fs\");\n\nvar _fs2 = _interopRequireDefault(_fs);\n\nvar _path = require(\"path\");\n\nvar _path2 = _interopRequireDefault(_path);\n\nvar _parser = require(\"./parser\");\n\nvar _parser2 = _interopRequireDefault(_parser);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Copied from https://github.com/css-modules/css-modules-loader-core\n\nclass Core {\n constructor(plugins) {\n this.plugins = plugins || Core.defaultPlugins;\n }\n\n load(sourceString, sourcePath, trace, pathFetcher) {\n let parser = new _parser2.default(pathFetcher, trace);\n\n return (0, _postcss2.default)(this.plugins.concat([parser.plugin()])).process(sourceString, { from: \"/\" + sourcePath }).then(result => {\n return {\n injectableSource: result.css,\n exportTokens: parser.exportTokens\n };\n });\n }\n}\n\n// Sorts dependencies in the following way:\n// AAA comes before AA and A\n// AB comes after AA and before A\n// All Bs come after all As\n// This ensures that the files are always returned in the following order:\n// - In the order they were required, except\n// - After all their dependencies\nconst traceKeySorter = (a, b) => {\n if (a.length < b.length) {\n return a < b.substring(0, a.length) ? -1 : 1;\n } else if (a.length > b.length) {\n return a.substring(0, b.length) <= b ? -1 : 1;\n } else {\n return a < b ? -1 : 1;\n }\n};\n\nclass FileSystemLoader {\n constructor(root, plugins) {\n this.root = root;\n this.sources = {};\n this.traces = {};\n this.importNr = 0;\n this.core = new Core(plugins);\n this.tokensByFile = {};\n }\n\n fetch(_newPath, relativeTo, _trace) {\n let newPath = _newPath.replace(/^[\"']|[\"']$/g, \"\"),\n trace = _trace || String.fromCharCode(this.importNr++);\n return new Promise((resolve, reject) => {\n let relativeDir = _path2.default.dirname(relativeTo),\n rootRelativePath = _path2.default.resolve(relativeDir, newPath),\n fileRelativePath = _path2.default.resolve(_path2.default.join(this.root, relativeDir), newPath);\n\n // if the path is not relative or absolute, try to resolve it in node_modules\n if (newPath[0] !== \".\" && newPath[0] !== \"/\") {\n try {\n fileRelativePath = require.resolve(newPath);\n } catch (e) {\n // noop\n }\n }\n\n const tokens = this.tokensByFile[fileRelativePath];\n if (tokens) {\n return resolve(tokens);\n }\n\n _fs2.default.readFile(fileRelativePath, \"utf-8\", (err, source) => {\n if (err) reject(err);\n this.core.load(source, rootRelativePath, trace, this.fetch.bind(this)).then(({ injectableSource, exportTokens }) => {\n this.sources[fileRelativePath] = injectableSource;\n this.traces[trace] = fileRelativePath;\n this.tokensByFile[fileRelativePath] = exportTokens;\n resolve(exportTokens);\n }, reject);\n });\n });\n }\n\n get finalSource() {\n const traces = this.traces;\n const sources = this.sources;\n let written = new Set();\n\n return Object.keys(traces).sort(traceKeySorter).map(key => {\n const filename = traces[key];\n if (written.has(filename)) {\n return null;\n }\n written.add(filename);\n\n return sources[filename];\n }).join(\"\");\n }\n}\nexports.default = FileSystemLoader;","\"use strict\";\n\nfunction hash(str) {\n var hash = 5381,\n i = str.length;\n\n while(i) {\n hash = (hash * 33) ^ str.charCodeAt(--i);\n }\n\n /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed\n * integers. Since we want the results to be always positive, convert the\n * signed int to an unsigned by doing an unsigned bitshift. */\n return hash >>> 0;\n}\n\nmodule.exports = hash;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = generateScopedName;\n\nvar _stringHash = require(\"string-hash\");\n\nvar _stringHash2 = _interopRequireDefault(_stringHash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction generateScopedName(name, filename, css) {\n const i = css.indexOf(`.${name}`);\n const lineNumber = css.substr(0, i).split(/[\\r\\n]/).length;\n const hash = (0, _stringHash2.default)(css).toString(36).substr(0, 5);\n\n return `_${name}_${hash}_${lineNumber}`;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = saveJSON;\n\nvar _fs = require(\"fs\");\n\nfunction saveJSON(cssFile, json) {\n return new Promise((resolve, reject) => {\n (0, _fs.writeFile)(`${cssFile}.json`, JSON.stringify(json), e => e ? reject(e) : resolve(json));\n });\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = unesc;\n\n// Many thanks for this post which made this migration much easier.\n// https://mathiasbynens.be/notes/css-escapes\n\n/**\n * \n * @param {string} str \n * @returns {[string, number]|undefined}\n */\nfunction gobbleHex(str) {\n var lower = str.toLowerCase();\n var hex = '';\n var spaceTerminated = false;\n\n for (var i = 0; i < 6 && lower[i] !== undefined; i++) {\n var code = lower.charCodeAt(i); // check to see if we are dealing with a valid hex char [a-f|0-9]\n\n var valid = code >= 97 && code <= 102 || code >= 48 && code <= 57; // https://drafts.csswg.org/css-syntax/#consume-escaped-code-point\n\n spaceTerminated = code === 32;\n\n if (!valid) {\n break;\n }\n\n hex += lower[i];\n }\n\n if (hex.length === 0) {\n return undefined;\n }\n\n var codePoint = parseInt(hex, 16);\n var isSurrogate = codePoint >= 0xD800 && codePoint <= 0xDFFF; // Add special case for\n // \"If this number is zero, or is for a surrogate, or is greater than the maximum allowed code point\"\n // https://drafts.csswg.org/css-syntax/#maximum-allowed-code-point\n\n if (isSurrogate || codePoint === 0x0000 || codePoint > 0x10FFFF) {\n return [\"\\uFFFD\", hex.length + (spaceTerminated ? 1 : 0)];\n }\n\n return [String.fromCodePoint(codePoint), hex.length + (spaceTerminated ? 1 : 0)];\n}\n\nvar CONTAINS_ESCAPE = /\\\\/;\n\nfunction unesc(str) {\n var needToProcess = CONTAINS_ESCAPE.test(str);\n\n if (!needToProcess) {\n return str;\n }\n\n var ret = \"\";\n\n for (var i = 0; i < str.length; i++) {\n if (str[i] === \"\\\\\") {\n var gobbled = gobbleHex(str.slice(i + 1, i + 7));\n\n if (gobbled !== undefined) {\n ret += gobbled[0];\n i += gobbled[1];\n continue;\n } // Retain a pair of \\\\ if double escaped `\\\\\\\\`\n // https://github.com/postcss/postcss-selector-parser/commit/268c9a7656fb53f543dc620aa5b73a30ec3ff20e\n\n\n if (str[i + 1] === \"\\\\\") {\n ret += \"\\\\\";\n i++;\n continue;\n } // if \\\\ is at the end of the string retain it\n // https://github.com/postcss/postcss-selector-parser/commit/01a6b346e3612ce1ab20219acc26abdc259ccefb\n\n\n if (str.length === i + 1) {\n ret += str[i];\n }\n\n continue;\n }\n\n ret += str[i];\n }\n\n return ret;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = getProp;\n\nfunction getProp(obj) {\n for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n props[_key - 1] = arguments[_key];\n }\n\n while (props.length > 0) {\n var prop = props.shift();\n\n if (!obj[prop]) {\n return undefined;\n }\n\n obj = obj[prop];\n }\n\n return obj;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = ensureObject;\n\nfunction ensureObject(obj) {\n for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n props[_key - 1] = arguments[_key];\n }\n\n while (props.length > 0) {\n var prop = props.shift();\n\n if (!obj[prop]) {\n obj[prop] = {};\n }\n\n obj = obj[prop];\n }\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = stripComments;\n\nfunction stripComments(str) {\n var s = \"\";\n var commentStart = str.indexOf(\"/*\");\n var lastEnd = 0;\n\n while (commentStart >= 0) {\n s = s + str.slice(lastEnd, commentStart);\n var commentEnd = str.indexOf(\"*/\", commentStart + 2);\n\n if (commentEnd < 0) {\n return s;\n }\n\n lastEnd = commentEnd + 2;\n commentStart = str.indexOf(\"/*\", lastEnd);\n }\n\n s = s + str.slice(lastEnd);\n return s;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.stripComments = exports.ensureObject = exports.getProp = exports.unesc = void 0;\n\nvar _unesc = _interopRequireDefault(require(\"./unesc\"));\n\nexports.unesc = _unesc[\"default\"];\n\nvar _getProp = _interopRequireDefault(require(\"./getProp\"));\n\nexports.getProp = _getProp[\"default\"];\n\nvar _ensureObject = _interopRequireDefault(require(\"./ensureObject\"));\n\nexports.ensureObject = _ensureObject[\"default\"];\n\nvar _stripComments = _interopRequireDefault(require(\"./stripComments\"));\n\nexports.stripComments = _stripComments[\"default\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _util = require(\"../util\");\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar cloneNode = function cloneNode(obj, parent) {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n\n var cloned = new obj.constructor();\n\n for (var i in obj) {\n if (!obj.hasOwnProperty(i)) {\n continue;\n }\n\n var value = obj[i];\n var type = typeof value;\n\n if (i === 'parent' && type === 'object') {\n if (parent) {\n cloned[i] = parent;\n }\n } else if (value instanceof Array) {\n cloned[i] = value.map(function (j) {\n return cloneNode(j, cloned);\n });\n } else {\n cloned[i] = cloneNode(value, cloned);\n }\n }\n\n return cloned;\n};\n\nvar Node = /*#__PURE__*/function () {\n function Node(opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n Object.assign(this, opts);\n this.spaces = this.spaces || {};\n this.spaces.before = this.spaces.before || '';\n this.spaces.after = this.spaces.after || '';\n }\n\n var _proto = Node.prototype;\n\n _proto.remove = function remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n\n this.parent = undefined;\n return this;\n };\n\n _proto.replaceWith = function replaceWith() {\n if (this.parent) {\n for (var index in arguments) {\n this.parent.insertBefore(this, arguments[index]);\n }\n\n this.remove();\n }\n\n return this;\n };\n\n _proto.next = function next() {\n return this.parent.at(this.parent.index(this) + 1);\n };\n\n _proto.prev = function prev() {\n return this.parent.at(this.parent.index(this) - 1);\n };\n\n _proto.clone = function clone(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n var cloned = cloneNode(this);\n\n for (var name in overrides) {\n cloned[name] = overrides[name];\n }\n\n return cloned;\n }\n /**\n * Some non-standard syntax doesn't follow normal escaping rules for css.\n * This allows non standard syntax to be appended to an existing property\n * by specifying the escaped value. By specifying the escaped value,\n * illegal characters are allowed to be directly inserted into css output.\n * @param {string} name the property to set\n * @param {any} value the unescaped value of the property\n * @param {string} valueEscaped optional. the escaped value of the property.\n */\n ;\n\n _proto.appendToPropertyAndEscape = function appendToPropertyAndEscape(name, value, valueEscaped) {\n if (!this.raws) {\n this.raws = {};\n }\n\n var originalValue = this[name];\n var originalEscaped = this.raws[name];\n this[name] = originalValue + value; // this may trigger a setter that updates raws, so it has to be set first.\n\n if (originalEscaped || valueEscaped !== value) {\n this.raws[name] = (originalEscaped || originalValue) + valueEscaped;\n } else {\n delete this.raws[name]; // delete any escaped value that was created by the setter.\n }\n }\n /**\n * Some non-standard syntax doesn't follow normal escaping rules for css.\n * This allows the escaped value to be specified directly, allowing illegal\n * characters to be directly inserted into css output.\n * @param {string} name the property to set\n * @param {any} value the unescaped value of the property\n * @param {string} valueEscaped the escaped value of the property.\n */\n ;\n\n _proto.setPropertyAndEscape = function setPropertyAndEscape(name, value, valueEscaped) {\n if (!this.raws) {\n this.raws = {};\n }\n\n this[name] = value; // this may trigger a setter that updates raws, so it has to be set first.\n\n this.raws[name] = valueEscaped;\n }\n /**\n * When you want a value to passed through to CSS directly. This method\n * deletes the corresponding raw value causing the stringifier to fallback\n * to the unescaped value.\n * @param {string} name the property to set.\n * @param {any} value The value that is both escaped and unescaped.\n */\n ;\n\n _proto.setPropertyWithoutEscape = function setPropertyWithoutEscape(name, value) {\n this[name] = value; // this may trigger a setter that updates raws, so it has to be set first.\n\n if (this.raws) {\n delete this.raws[name];\n }\n }\n /**\n *\n * @param {number} line The number (starting with 1)\n * @param {number} column The column number (starting with 1)\n */\n ;\n\n _proto.isAtPosition = function isAtPosition(line, column) {\n if (this.source && this.source.start && this.source.end) {\n if (this.source.start.line > line) {\n return false;\n }\n\n if (this.source.end.line < line) {\n return false;\n }\n\n if (this.source.start.line === line && this.source.start.column > column) {\n return false;\n }\n\n if (this.source.end.line === line && this.source.end.column < column) {\n return false;\n }\n\n return true;\n }\n\n return undefined;\n };\n\n _proto.stringifyProperty = function stringifyProperty(name) {\n return this.raws && this.raws[name] || this[name];\n };\n\n _proto.valueToString = function valueToString() {\n return String(this.stringifyProperty(\"value\"));\n };\n\n _proto.toString = function toString() {\n return [this.rawSpaceBefore, this.valueToString(), this.rawSpaceAfter].join('');\n };\n\n _createClass(Node, [{\n key: \"rawSpaceBefore\",\n get: function get() {\n var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.before;\n\n if (rawSpace === undefined) {\n rawSpace = this.spaces && this.spaces.before;\n }\n\n return rawSpace || \"\";\n },\n set: function set(raw) {\n (0, _util.ensureObject)(this, \"raws\", \"spaces\");\n this.raws.spaces.before = raw;\n }\n }, {\n key: \"rawSpaceAfter\",\n get: function get() {\n var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.after;\n\n if (rawSpace === undefined) {\n rawSpace = this.spaces.after;\n }\n\n return rawSpace || \"\";\n },\n set: function set(raw) {\n (0, _util.ensureObject)(this, \"raws\", \"spaces\");\n this.raws.spaces.after = raw;\n }\n }]);\n\n return Node;\n}();\n\nexports[\"default\"] = Node;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.UNIVERSAL = exports.ATTRIBUTE = exports.CLASS = exports.COMBINATOR = exports.COMMENT = exports.ID = exports.NESTING = exports.PSEUDO = exports.ROOT = exports.SELECTOR = exports.STRING = exports.TAG = void 0;\nvar TAG = 'tag';\nexports.TAG = TAG;\nvar STRING = 'string';\nexports.STRING = STRING;\nvar SELECTOR = 'selector';\nexports.SELECTOR = SELECTOR;\nvar ROOT = 'root';\nexports.ROOT = ROOT;\nvar PSEUDO = 'pseudo';\nexports.PSEUDO = PSEUDO;\nvar NESTING = 'nesting';\nexports.NESTING = NESTING;\nvar ID = 'id';\nexports.ID = ID;\nvar COMMENT = 'comment';\nexports.COMMENT = COMMENT;\nvar COMBINATOR = 'combinator';\nexports.COMBINATOR = COMBINATOR;\nvar CLASS = 'class';\nexports.CLASS = CLASS;\nvar ATTRIBUTE = 'attribute';\nexports.ATTRIBUTE = ATTRIBUTE;\nvar UNIVERSAL = 'universal';\nexports.UNIVERSAL = UNIVERSAL;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar types = _interopRequireWildcard(require(\"./types\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Container = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Container, _Node);\n\n function Container(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n\n if (!_this.nodes) {\n _this.nodes = [];\n }\n\n return _this;\n }\n\n var _proto = Container.prototype;\n\n _proto.append = function append(selector) {\n selector.parent = this;\n this.nodes.push(selector);\n return this;\n };\n\n _proto.prepend = function prepend(selector) {\n selector.parent = this;\n this.nodes.unshift(selector);\n return this;\n };\n\n _proto.at = function at(index) {\n return this.nodes[index];\n };\n\n _proto.index = function index(child) {\n if (typeof child === 'number') {\n return child;\n }\n\n return this.nodes.indexOf(child);\n };\n\n _proto.removeChild = function removeChild(child) {\n child = this.index(child);\n this.at(child).parent = undefined;\n this.nodes.splice(child, 1);\n var index;\n\n for (var id in this.indexes) {\n index = this.indexes[id];\n\n if (index >= child) {\n this.indexes[id] = index - 1;\n }\n }\n\n return this;\n };\n\n _proto.removeAll = function removeAll() {\n for (var _iterator = _createForOfIteratorHelperLoose(this.nodes), _step; !(_step = _iterator()).done;) {\n var node = _step.value;\n node.parent = undefined;\n }\n\n this.nodes = [];\n return this;\n };\n\n _proto.empty = function empty() {\n return this.removeAll();\n };\n\n _proto.insertAfter = function insertAfter(oldNode, newNode) {\n newNode.parent = this;\n var oldIndex = this.index(oldNode);\n this.nodes.splice(oldIndex + 1, 0, newNode);\n newNode.parent = this;\n var index;\n\n for (var id in this.indexes) {\n index = this.indexes[id];\n\n if (oldIndex <= index) {\n this.indexes[id] = index + 1;\n }\n }\n\n return this;\n };\n\n _proto.insertBefore = function insertBefore(oldNode, newNode) {\n newNode.parent = this;\n var oldIndex = this.index(oldNode);\n this.nodes.splice(oldIndex, 0, newNode);\n newNode.parent = this;\n var index;\n\n for (var id in this.indexes) {\n index = this.indexes[id];\n\n if (index <= oldIndex) {\n this.indexes[id] = index + 1;\n }\n }\n\n return this;\n };\n\n _proto._findChildAtPosition = function _findChildAtPosition(line, col) {\n var found = undefined;\n this.each(function (node) {\n if (node.atPosition) {\n var foundChild = node.atPosition(line, col);\n\n if (foundChild) {\n found = foundChild;\n return false;\n }\n } else if (node.isAtPosition(line, col)) {\n found = node;\n return false;\n }\n });\n return found;\n }\n /**\n * Return the most specific node at the line and column number given.\n * The source location is based on the original parsed location, locations aren't\n * updated as selector nodes are mutated.\n * \n * Note that this location is relative to the location of the first character\n * of the selector, and not the location of the selector in the overall document\n * when used in conjunction with postcss.\n *\n * If not found, returns undefined.\n * @param {number} line The line number of the node to find. (1-based index)\n * @param {number} col The column number of the node to find. (1-based index)\n */\n ;\n\n _proto.atPosition = function atPosition(line, col) {\n if (this.isAtPosition(line, col)) {\n return this._findChildAtPosition(line, col) || this;\n } else {\n return undefined;\n }\n };\n\n _proto._inferEndPosition = function _inferEndPosition() {\n if (this.last && this.last.source && this.last.source.end) {\n this.source = this.source || {};\n this.source.end = this.source.end || {};\n Object.assign(this.source.end, this.last.source.end);\n }\n };\n\n _proto.each = function each(callback) {\n if (!this.lastEach) {\n this.lastEach = 0;\n }\n\n if (!this.indexes) {\n this.indexes = {};\n }\n\n this.lastEach++;\n var id = this.lastEach;\n this.indexes[id] = 0;\n\n if (!this.length) {\n return undefined;\n }\n\n var index, result;\n\n while (this.indexes[id] < this.length) {\n index = this.indexes[id];\n result = callback(this.at(index), index);\n\n if (result === false) {\n break;\n }\n\n this.indexes[id] += 1;\n }\n\n delete this.indexes[id];\n\n if (result === false) {\n return false;\n }\n };\n\n _proto.walk = function walk(callback) {\n return this.each(function (node, i) {\n var result = callback(node, i);\n\n if (result !== false && node.length) {\n result = node.walk(callback);\n }\n\n if (result === false) {\n return false;\n }\n });\n };\n\n _proto.walkAttributes = function walkAttributes(callback) {\n var _this2 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.ATTRIBUTE) {\n return callback.call(_this2, selector);\n }\n });\n };\n\n _proto.walkClasses = function walkClasses(callback) {\n var _this3 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.CLASS) {\n return callback.call(_this3, selector);\n }\n });\n };\n\n _proto.walkCombinators = function walkCombinators(callback) {\n var _this4 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.COMBINATOR) {\n return callback.call(_this4, selector);\n }\n });\n };\n\n _proto.walkComments = function walkComments(callback) {\n var _this5 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.COMMENT) {\n return callback.call(_this5, selector);\n }\n });\n };\n\n _proto.walkIds = function walkIds(callback) {\n var _this6 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.ID) {\n return callback.call(_this6, selector);\n }\n });\n };\n\n _proto.walkNesting = function walkNesting(callback) {\n var _this7 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.NESTING) {\n return callback.call(_this7, selector);\n }\n });\n };\n\n _proto.walkPseudos = function walkPseudos(callback) {\n var _this8 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.PSEUDO) {\n return callback.call(_this8, selector);\n }\n });\n };\n\n _proto.walkTags = function walkTags(callback) {\n var _this9 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.TAG) {\n return callback.call(_this9, selector);\n }\n });\n };\n\n _proto.walkUniversals = function walkUniversals(callback) {\n var _this10 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.UNIVERSAL) {\n return callback.call(_this10, selector);\n }\n });\n };\n\n _proto.split = function split(callback) {\n var _this11 = this;\n\n var current = [];\n return this.reduce(function (memo, node, index) {\n var split = callback.call(_this11, node);\n current.push(node);\n\n if (split) {\n memo.push(current);\n current = [];\n } else if (index === _this11.length - 1) {\n memo.push(current);\n }\n\n return memo;\n }, []);\n };\n\n _proto.map = function map(callback) {\n return this.nodes.map(callback);\n };\n\n _proto.reduce = function reduce(callback, memo) {\n return this.nodes.reduce(callback, memo);\n };\n\n _proto.every = function every(callback) {\n return this.nodes.every(callback);\n };\n\n _proto.some = function some(callback) {\n return this.nodes.some(callback);\n };\n\n _proto.filter = function filter(callback) {\n return this.nodes.filter(callback);\n };\n\n _proto.sort = function sort(callback) {\n return this.nodes.sort(callback);\n };\n\n _proto.toString = function toString() {\n return this.map(String).join('');\n };\n\n _createClass(Container, [{\n key: \"first\",\n get: function get() {\n return this.at(0);\n }\n }, {\n key: \"last\",\n get: function get() {\n return this.at(this.length - 1);\n }\n }, {\n key: \"length\",\n get: function get() {\n return this.nodes.length;\n }\n }]);\n\n return Container;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Container;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _container = _interopRequireDefault(require(\"./container\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Root = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Root, _Container);\n\n function Root(opts) {\n var _this;\n\n _this = _Container.call(this, opts) || this;\n _this.type = _types.ROOT;\n return _this;\n }\n\n var _proto = Root.prototype;\n\n _proto.toString = function toString() {\n var str = this.reduce(function (memo, selector) {\n memo.push(String(selector));\n return memo;\n }, []).join(',');\n return this.trailingComma ? str + ',' : str;\n };\n\n _proto.error = function error(message, options) {\n if (this._error) {\n return this._error(message, options);\n } else {\n return new Error(message);\n }\n };\n\n _createClass(Root, [{\n key: \"errorGenerator\",\n set: function set(handler) {\n this._error = handler;\n }\n }]);\n\n return Root;\n}(_container[\"default\"]);\n\nexports[\"default\"] = Root;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _container = _interopRequireDefault(require(\"./container\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Selector = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Selector, _Container);\n\n function Selector(opts) {\n var _this;\n\n _this = _Container.call(this, opts) || this;\n _this.type = _types.SELECTOR;\n return _this;\n }\n\n return Selector;\n}(_container[\"default\"]);\n\nexports[\"default\"] = Selector;\nmodule.exports = exports.default;","/*! https://mths.be/cssesc v3.0.0 by @mathias */\n'use strict';\n\nvar object = {};\nvar hasOwnProperty = object.hasOwnProperty;\nvar merge = function merge(options, defaults) {\n\tif (!options) {\n\t\treturn defaults;\n\t}\n\tvar result = {};\n\tfor (var key in defaults) {\n\t\t// `if (defaults.hasOwnProperty(key) { … }` is not needed here, since\n\t\t// only recognized option names are used.\n\t\tresult[key] = hasOwnProperty.call(options, key) ? options[key] : defaults[key];\n\t}\n\treturn result;\n};\n\nvar regexAnySingleEscape = /[ -,\\.\\/:-@\\[-\\^`\\{-~]/;\nvar regexSingleEscape = /[ -,\\.\\/:-@\\[\\]\\^`\\{-~]/;\nvar regexAlwaysEscape = /['\"\\\\]/;\nvar regexExcessiveSpaces = /(^|\\\\+)?(\\\\[A-F0-9]{1,6})\\x20(?![a-fA-F0-9\\x20])/g;\n\n// https://mathiasbynens.be/notes/css-escapes#css\nvar cssesc = function cssesc(string, options) {\n\toptions = merge(options, cssesc.options);\n\tif (options.quotes != 'single' && options.quotes != 'double') {\n\t\toptions.quotes = 'single';\n\t}\n\tvar quote = options.quotes == 'double' ? '\"' : '\\'';\n\tvar isIdentifier = options.isIdentifier;\n\n\tvar firstChar = string.charAt(0);\n\tvar output = '';\n\tvar counter = 0;\n\tvar length = string.length;\n\twhile (counter < length) {\n\t\tvar character = string.charAt(counter++);\n\t\tvar codePoint = character.charCodeAt();\n\t\tvar value = void 0;\n\t\t// If it’s not a printable ASCII character…\n\t\tif (codePoint < 0x20 || codePoint > 0x7E) {\n\t\t\tif (codePoint >= 0xD800 && codePoint <= 0xDBFF && counter < length) {\n\t\t\t\t// It’s a high surrogate, and there is a next character.\n\t\t\t\tvar extra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t\t// next character is low surrogate\n\t\t\t\t\tcodePoint = ((codePoint & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000;\n\t\t\t\t} else {\n\t\t\t\t\t// It’s an unmatched surrogate; only append this code unit, in case\n\t\t\t\t\t// the next code unit is the high surrogate of a surrogate pair.\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t} else {\n\t\t\tif (options.escapeEverything) {\n\t\t\t\tif (regexAnySingleEscape.test(character)) {\n\t\t\t\t\tvalue = '\\\\' + character;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t\t}\n\t\t\t} else if (/[\\t\\n\\f\\r\\x0B]/.test(character)) {\n\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t} else if (character == '\\\\' || !isIdentifier && (character == '\"' && quote == character || character == '\\'' && quote == character) || isIdentifier && regexSingleEscape.test(character)) {\n\t\t\t\tvalue = '\\\\' + character;\n\t\t\t} else {\n\t\t\t\tvalue = character;\n\t\t\t}\n\t\t}\n\t\toutput += value;\n\t}\n\n\tif (isIdentifier) {\n\t\tif (/^-[-\\d]/.test(output)) {\n\t\t\toutput = '\\\\-' + output.slice(1);\n\t\t} else if (/\\d/.test(firstChar)) {\n\t\t\toutput = '\\\\3' + firstChar + ' ' + output.slice(1);\n\t\t}\n\t}\n\n\t// Remove spaces after `\\HEX` escapes that are not followed by a hex digit,\n\t// since they’re redundant. Note that this is only possible if the escape\n\t// sequence isn’t preceded by an odd number of backslashes.\n\toutput = output.replace(regexExcessiveSpaces, function ($0, $1, $2) {\n\t\tif ($1 && $1.length % 2) {\n\t\t\t// It’s not safe to remove the space, so don’t.\n\t\t\treturn $0;\n\t\t}\n\t\t// Strip the space.\n\t\treturn ($1 || '') + $2;\n\t});\n\n\tif (!isIdentifier && options.wrap) {\n\t\treturn quote + output + quote;\n\t}\n\treturn output;\n};\n\n// Expose default options (so they can be overridden globally).\ncssesc.options = {\n\t'escapeEverything': false,\n\t'isIdentifier': false,\n\t'quotes': 'single',\n\t'wrap': false\n};\n\ncssesc.version = '3.0.0';\n\nmodule.exports = cssesc;\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\n\nvar _util = require(\"../util\");\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar ClassName = /*#__PURE__*/function (_Node) {\n _inheritsLoose(ClassName, _Node);\n\n function ClassName(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.CLASS;\n _this._constructed = true;\n return _this;\n }\n\n var _proto = ClassName.prototype;\n\n _proto.valueToString = function valueToString() {\n return '.' + _Node.prototype.valueToString.call(this);\n };\n\n _createClass(ClassName, [{\n key: \"value\",\n get: function get() {\n return this._value;\n },\n set: function set(v) {\n if (this._constructed) {\n var escaped = (0, _cssesc[\"default\"])(v, {\n isIdentifier: true\n });\n\n if (escaped !== v) {\n (0, _util.ensureObject)(this, \"raws\");\n this.raws.value = escaped;\n } else if (this.raws) {\n delete this.raws.value;\n }\n }\n\n this._value = v;\n }\n }]);\n\n return ClassName;\n}(_node[\"default\"]);\n\nexports[\"default\"] = ClassName;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Comment = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Comment, _Node);\n\n function Comment(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.COMMENT;\n return _this;\n }\n\n return Comment;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Comment;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar ID = /*#__PURE__*/function (_Node) {\n _inheritsLoose(ID, _Node);\n\n function ID(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.ID;\n return _this;\n }\n\n var _proto = ID.prototype;\n\n _proto.valueToString = function valueToString() {\n return '#' + _Node.prototype.valueToString.call(this);\n };\n\n return ID;\n}(_node[\"default\"]);\n\nexports[\"default\"] = ID;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\n\nvar _util = require(\"../util\");\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Namespace = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Namespace, _Node);\n\n function Namespace() {\n return _Node.apply(this, arguments) || this;\n }\n\n var _proto = Namespace.prototype;\n\n _proto.qualifiedName = function qualifiedName(value) {\n if (this.namespace) {\n return this.namespaceString + \"|\" + value;\n } else {\n return value;\n }\n };\n\n _proto.valueToString = function valueToString() {\n return this.qualifiedName(_Node.prototype.valueToString.call(this));\n };\n\n _createClass(Namespace, [{\n key: \"namespace\",\n get: function get() {\n return this._namespace;\n },\n set: function set(namespace) {\n if (namespace === true || namespace === \"*\" || namespace === \"&\") {\n this._namespace = namespace;\n\n if (this.raws) {\n delete this.raws.namespace;\n }\n\n return;\n }\n\n var escaped = (0, _cssesc[\"default\"])(namespace, {\n isIdentifier: true\n });\n this._namespace = namespace;\n\n if (escaped !== namespace) {\n (0, _util.ensureObject)(this, \"raws\");\n this.raws.namespace = escaped;\n } else if (this.raws) {\n delete this.raws.namespace;\n }\n }\n }, {\n key: \"ns\",\n get: function get() {\n return this._namespace;\n },\n set: function set(namespace) {\n this.namespace = namespace;\n }\n }, {\n key: \"namespaceString\",\n get: function get() {\n if (this.namespace) {\n var ns = this.stringifyProperty(\"namespace\");\n\n if (ns === true) {\n return '';\n } else {\n return ns;\n }\n } else {\n return '';\n }\n }\n }]);\n\n return Namespace;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Namespace;\n;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Tag = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Tag, _Namespace);\n\n function Tag(opts) {\n var _this;\n\n _this = _Namespace.call(this, opts) || this;\n _this.type = _types.TAG;\n return _this;\n }\n\n return Tag;\n}(_namespace[\"default\"]);\n\nexports[\"default\"] = Tag;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar String = /*#__PURE__*/function (_Node) {\n _inheritsLoose(String, _Node);\n\n function String(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.STRING;\n return _this;\n }\n\n return String;\n}(_node[\"default\"]);\n\nexports[\"default\"] = String;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _container = _interopRequireDefault(require(\"./container\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Pseudo = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Pseudo, _Container);\n\n function Pseudo(opts) {\n var _this;\n\n _this = _Container.call(this, opts) || this;\n _this.type = _types.PSEUDO;\n return _this;\n }\n\n var _proto = Pseudo.prototype;\n\n _proto.toString = function toString() {\n var params = this.length ? '(' + this.map(String).join(',') + ')' : '';\n return [this.rawSpaceBefore, this.stringifyProperty(\"value\"), params, this.rawSpaceAfter].join('');\n };\n\n return Pseudo;\n}(_container[\"default\"]);\n\nexports[\"default\"] = Pseudo;\nmodule.exports = exports.default;","\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = require('util').deprecate;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.unescapeValue = unescapeValue;\nexports[\"default\"] = void 0;\n\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\n\nvar _unesc = _interopRequireDefault(require(\"../util/unesc\"));\n\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\n\nvar _types = require(\"./types\");\n\nvar _CSSESC_QUOTE_OPTIONS;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar deprecate = require(\"util-deprecate\");\n\nvar WRAPPED_IN_QUOTES = /^('|\")([^]*)\\1$/;\nvar warnOfDeprecatedValueAssignment = deprecate(function () {}, \"Assigning an attribute a value containing characters that might need to be escaped is deprecated. \" + \"Call attribute.setValue() instead.\");\nvar warnOfDeprecatedQuotedAssignment = deprecate(function () {}, \"Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead.\");\nvar warnOfDeprecatedConstructor = deprecate(function () {}, \"Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now.\");\n\nfunction unescapeValue(value) {\n var deprecatedUsage = false;\n var quoteMark = null;\n var unescaped = value;\n var m = unescaped.match(WRAPPED_IN_QUOTES);\n\n if (m) {\n quoteMark = m[1];\n unescaped = m[2];\n }\n\n unescaped = (0, _unesc[\"default\"])(unescaped);\n\n if (unescaped !== value) {\n deprecatedUsage = true;\n }\n\n return {\n deprecatedUsage: deprecatedUsage,\n unescaped: unescaped,\n quoteMark: quoteMark\n };\n}\n\nfunction handleDeprecatedContructorOpts(opts) {\n if (opts.quoteMark !== undefined) {\n return opts;\n }\n\n if (opts.value === undefined) {\n return opts;\n }\n\n warnOfDeprecatedConstructor();\n\n var _unescapeValue = unescapeValue(opts.value),\n quoteMark = _unescapeValue.quoteMark,\n unescaped = _unescapeValue.unescaped;\n\n if (!opts.raws) {\n opts.raws = {};\n }\n\n if (opts.raws.value === undefined) {\n opts.raws.value = opts.value;\n }\n\n opts.value = unescaped;\n opts.quoteMark = quoteMark;\n return opts;\n}\n\nvar Attribute = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Attribute, _Namespace);\n\n function Attribute(opts) {\n var _this;\n\n if (opts === void 0) {\n opts = {};\n }\n\n _this = _Namespace.call(this, handleDeprecatedContructorOpts(opts)) || this;\n _this.type = _types.ATTRIBUTE;\n _this.raws = _this.raws || {};\n Object.defineProperty(_this.raws, 'unquoted', {\n get: deprecate(function () {\n return _this.value;\n }, \"attr.raws.unquoted is deprecated. Call attr.value instead.\"),\n set: deprecate(function () {\n return _this.value;\n }, \"Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.\")\n });\n _this._constructed = true;\n return _this;\n }\n /**\n * Returns the Attribute's value quoted such that it would be legal to use\n * in the value of a css file. The original value's quotation setting\n * used for stringification is left unchanged. See `setValue(value, options)`\n * if you want to control the quote settings of a new value for the attribute.\n *\n * You can also change the quotation used for the current value by setting quoteMark.\n *\n * Options:\n * * quoteMark {'\"' | \"'\" | null} - Use this value to quote the value. If this\n * option is not set, the original value for quoteMark will be used. If\n * indeterminate, a double quote is used. The legal values are:\n * * `null` - the value will be unquoted and characters will be escaped as necessary.\n * * `'` - the value will be quoted with a single quote and single quotes are escaped.\n * * `\"` - the value will be quoted with a double quote and double quotes are escaped.\n * * preferCurrentQuoteMark {boolean} - if true, prefer the source quote mark\n * over the quoteMark option value.\n * * smart {boolean} - if true, will select a quote mark based on the value\n * and the other options specified here. See the `smartQuoteMark()`\n * method.\n **/\n\n\n var _proto = Attribute.prototype;\n\n _proto.getQuotedValue = function getQuotedValue(options) {\n if (options === void 0) {\n options = {};\n }\n\n var quoteMark = this._determineQuoteMark(options);\n\n var cssescopts = CSSESC_QUOTE_OPTIONS[quoteMark];\n var escaped = (0, _cssesc[\"default\"])(this._value, cssescopts);\n return escaped;\n };\n\n _proto._determineQuoteMark = function _determineQuoteMark(options) {\n return options.smart ? this.smartQuoteMark(options) : this.preferredQuoteMark(options);\n }\n /**\n * Set the unescaped value with the specified quotation options. The value\n * provided must not include any wrapping quote marks -- those quotes will\n * be interpreted as part of the value and escaped accordingly.\n */\n ;\n\n _proto.setValue = function setValue(value, options) {\n if (options === void 0) {\n options = {};\n }\n\n this._value = value;\n this._quoteMark = this._determineQuoteMark(options);\n\n this._syncRawValue();\n }\n /**\n * Intelligently select a quoteMark value based on the value's contents. If\n * the value is a legal CSS ident, it will not be quoted. Otherwise a quote\n * mark will be picked that minimizes the number of escapes.\n *\n * If there's no clear winner, the quote mark from these options is used,\n * then the source quote mark (this is inverted if `preferCurrentQuoteMark` is\n * true). If the quoteMark is unspecified, a double quote is used.\n *\n * @param options This takes the quoteMark and preferCurrentQuoteMark options\n * from the quoteValue method.\n */\n ;\n\n _proto.smartQuoteMark = function smartQuoteMark(options) {\n var v = this.value;\n var numSingleQuotes = v.replace(/[^']/g, '').length;\n var numDoubleQuotes = v.replace(/[^\"]/g, '').length;\n\n if (numSingleQuotes + numDoubleQuotes === 0) {\n var escaped = (0, _cssesc[\"default\"])(v, {\n isIdentifier: true\n });\n\n if (escaped === v) {\n return Attribute.NO_QUOTE;\n } else {\n var pref = this.preferredQuoteMark(options);\n\n if (pref === Attribute.NO_QUOTE) {\n // pick a quote mark that isn't none and see if it's smaller\n var quote = this.quoteMark || options.quoteMark || Attribute.DOUBLE_QUOTE;\n var opts = CSSESC_QUOTE_OPTIONS[quote];\n var quoteValue = (0, _cssesc[\"default\"])(v, opts);\n\n if (quoteValue.length < escaped.length) {\n return quote;\n }\n }\n\n return pref;\n }\n } else if (numDoubleQuotes === numSingleQuotes) {\n return this.preferredQuoteMark(options);\n } else if (numDoubleQuotes < numSingleQuotes) {\n return Attribute.DOUBLE_QUOTE;\n } else {\n return Attribute.SINGLE_QUOTE;\n }\n }\n /**\n * Selects the preferred quote mark based on the options and the current quote mark value.\n * If you want the quote mark to depend on the attribute value, call `smartQuoteMark(opts)`\n * instead.\n */\n ;\n\n _proto.preferredQuoteMark = function preferredQuoteMark(options) {\n var quoteMark = options.preferCurrentQuoteMark ? this.quoteMark : options.quoteMark;\n\n if (quoteMark === undefined) {\n quoteMark = options.preferCurrentQuoteMark ? options.quoteMark : this.quoteMark;\n }\n\n if (quoteMark === undefined) {\n quoteMark = Attribute.DOUBLE_QUOTE;\n }\n\n return quoteMark;\n };\n\n _proto._syncRawValue = function _syncRawValue() {\n var rawValue = (0, _cssesc[\"default\"])(this._value, CSSESC_QUOTE_OPTIONS[this.quoteMark]);\n\n if (rawValue === this._value) {\n if (this.raws) {\n delete this.raws.value;\n }\n } else {\n this.raws.value = rawValue;\n }\n };\n\n _proto._handleEscapes = function _handleEscapes(prop, value) {\n if (this._constructed) {\n var escaped = (0, _cssesc[\"default\"])(value, {\n isIdentifier: true\n });\n\n if (escaped !== value) {\n this.raws[prop] = escaped;\n } else {\n delete this.raws[prop];\n }\n }\n };\n\n _proto._spacesFor = function _spacesFor(name) {\n var attrSpaces = {\n before: '',\n after: ''\n };\n var spaces = this.spaces[name] || {};\n var rawSpaces = this.raws.spaces && this.raws.spaces[name] || {};\n return Object.assign(attrSpaces, spaces, rawSpaces);\n };\n\n _proto._stringFor = function _stringFor(name, spaceName, concat) {\n if (spaceName === void 0) {\n spaceName = name;\n }\n\n if (concat === void 0) {\n concat = defaultAttrConcat;\n }\n\n var attrSpaces = this._spacesFor(spaceName);\n\n return concat(this.stringifyProperty(name), attrSpaces);\n }\n /**\n * returns the offset of the attribute part specified relative to the\n * start of the node of the output string.\n *\n * * \"ns\" - alias for \"namespace\"\n * * \"namespace\" - the namespace if it exists.\n * * \"attribute\" - the attribute name\n * * \"attributeNS\" - the start of the attribute or its namespace\n * * \"operator\" - the match operator of the attribute\n * * \"value\" - The value (string or identifier)\n * * \"insensitive\" - the case insensitivity flag;\n * @param part One of the possible values inside an attribute.\n * @returns -1 if the name is invalid or the value doesn't exist in this attribute.\n */\n ;\n\n _proto.offsetOf = function offsetOf(name) {\n var count = 1;\n\n var attributeSpaces = this._spacesFor(\"attribute\");\n\n count += attributeSpaces.before.length;\n\n if (name === \"namespace\" || name === \"ns\") {\n return this.namespace ? count : -1;\n }\n\n if (name === \"attributeNS\") {\n return count;\n }\n\n count += this.namespaceString.length;\n\n if (this.namespace) {\n count += 1;\n }\n\n if (name === \"attribute\") {\n return count;\n }\n\n count += this.stringifyProperty(\"attribute\").length;\n count += attributeSpaces.after.length;\n\n var operatorSpaces = this._spacesFor(\"operator\");\n\n count += operatorSpaces.before.length;\n var operator = this.stringifyProperty(\"operator\");\n\n if (name === \"operator\") {\n return operator ? count : -1;\n }\n\n count += operator.length;\n count += operatorSpaces.after.length;\n\n var valueSpaces = this._spacesFor(\"value\");\n\n count += valueSpaces.before.length;\n var value = this.stringifyProperty(\"value\");\n\n if (name === \"value\") {\n return value ? count : -1;\n }\n\n count += value.length;\n count += valueSpaces.after.length;\n\n var insensitiveSpaces = this._spacesFor(\"insensitive\");\n\n count += insensitiveSpaces.before.length;\n\n if (name === \"insensitive\") {\n return this.insensitive ? count : -1;\n }\n\n return -1;\n };\n\n _proto.toString = function toString() {\n var _this2 = this;\n\n var selector = [this.rawSpaceBefore, '['];\n selector.push(this._stringFor('qualifiedAttribute', 'attribute'));\n\n if (this.operator && (this.value || this.value === '')) {\n selector.push(this._stringFor('operator'));\n selector.push(this._stringFor('value'));\n selector.push(this._stringFor('insensitiveFlag', 'insensitive', function (attrValue, attrSpaces) {\n if (attrValue.length > 0 && !_this2.quoted && attrSpaces.before.length === 0 && !(_this2.spaces.value && _this2.spaces.value.after)) {\n attrSpaces.before = \" \";\n }\n\n return defaultAttrConcat(attrValue, attrSpaces);\n }));\n }\n\n selector.push(']');\n selector.push(this.rawSpaceAfter);\n return selector.join('');\n };\n\n _createClass(Attribute, [{\n key: \"quoted\",\n get: function get() {\n var qm = this.quoteMark;\n return qm === \"'\" || qm === '\"';\n },\n set: function set(value) {\n warnOfDeprecatedQuotedAssignment();\n }\n /**\n * returns a single (`'`) or double (`\"`) quote character if the value is quoted.\n * returns `null` if the value is not quoted.\n * returns `undefined` if the quotation state is unknown (this can happen when\n * the attribute is constructed without specifying a quote mark.)\n */\n\n }, {\n key: \"quoteMark\",\n get: function get() {\n return this._quoteMark;\n }\n /**\n * Set the quote mark to be used by this attribute's value.\n * If the quote mark changes, the raw (escaped) value at `attr.raws.value` of the attribute\n * value is updated accordingly.\n *\n * @param {\"'\" | '\"' | null} quoteMark The quote mark or `null` if the value should be unquoted.\n */\n ,\n set: function set(quoteMark) {\n if (!this._constructed) {\n this._quoteMark = quoteMark;\n return;\n }\n\n if (this._quoteMark !== quoteMark) {\n this._quoteMark = quoteMark;\n\n this._syncRawValue();\n }\n }\n }, {\n key: \"qualifiedAttribute\",\n get: function get() {\n return this.qualifiedName(this.raws.attribute || this.attribute);\n }\n }, {\n key: \"insensitiveFlag\",\n get: function get() {\n return this.insensitive ? 'i' : '';\n }\n }, {\n key: \"value\",\n get: function get() {\n return this._value;\n }\n /**\n * Before 3.0, the value had to be set to an escaped value including any wrapped\n * quote marks. In 3.0, the semantics of `Attribute.value` changed so that the value\n * is unescaped during parsing and any quote marks are removed.\n *\n * Because the ambiguity of this semantic change, if you set `attr.value = newValue`,\n * a deprecation warning is raised when the new value contains any characters that would\n * require escaping (including if it contains wrapped quotes).\n *\n * Instead, you should call `attr.setValue(newValue, opts)` and pass options that describe\n * how the new value is quoted.\n */\n ,\n set: function set(v) {\n if (this._constructed) {\n var _unescapeValue2 = unescapeValue(v),\n deprecatedUsage = _unescapeValue2.deprecatedUsage,\n unescaped = _unescapeValue2.unescaped,\n quoteMark = _unescapeValue2.quoteMark;\n\n if (deprecatedUsage) {\n warnOfDeprecatedValueAssignment();\n }\n\n if (unescaped === this._value && quoteMark === this._quoteMark) {\n return;\n }\n\n this._value = unescaped;\n this._quoteMark = quoteMark;\n\n this._syncRawValue();\n } else {\n this._value = v;\n }\n }\n }, {\n key: \"attribute\",\n get: function get() {\n return this._attribute;\n },\n set: function set(name) {\n this._handleEscapes(\"attribute\", name);\n\n this._attribute = name;\n }\n }]);\n\n return Attribute;\n}(_namespace[\"default\"]);\n\nexports[\"default\"] = Attribute;\nAttribute.NO_QUOTE = null;\nAttribute.SINGLE_QUOTE = \"'\";\nAttribute.DOUBLE_QUOTE = '\"';\nvar CSSESC_QUOTE_OPTIONS = (_CSSESC_QUOTE_OPTIONS = {\n \"'\": {\n quotes: 'single',\n wrap: true\n },\n '\"': {\n quotes: 'double',\n wrap: true\n }\n}, _CSSESC_QUOTE_OPTIONS[null] = {\n isIdentifier: true\n}, _CSSESC_QUOTE_OPTIONS);\n\nfunction defaultAttrConcat(attrValue, attrSpaces) {\n return \"\" + attrSpaces.before + attrValue + attrSpaces.after;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Universal = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Universal, _Namespace);\n\n function Universal(opts) {\n var _this;\n\n _this = _Namespace.call(this, opts) || this;\n _this.type = _types.UNIVERSAL;\n _this.value = '*';\n return _this;\n }\n\n return Universal;\n}(_namespace[\"default\"]);\n\nexports[\"default\"] = Universal;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Combinator = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Combinator, _Node);\n\n function Combinator(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.COMBINATOR;\n return _this;\n }\n\n return Combinator;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Combinator;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Nesting = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Nesting, _Node);\n\n function Nesting(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.NESTING;\n _this.value = '&';\n return _this;\n }\n\n return Nesting;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Nesting;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = sortAscending;\n\nfunction sortAscending(list) {\n return list.sort(function (a, b) {\n return a - b;\n });\n}\n\n;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.combinator = exports.word = exports.comment = exports.str = exports.tab = exports.newline = exports.feed = exports.cr = exports.backslash = exports.bang = exports.slash = exports.doubleQuote = exports.singleQuote = exports.space = exports.greaterThan = exports.pipe = exports.equals = exports.plus = exports.caret = exports.tilde = exports.dollar = exports.closeSquare = exports.openSquare = exports.closeParenthesis = exports.openParenthesis = exports.semicolon = exports.colon = exports.comma = exports.at = exports.asterisk = exports.ampersand = void 0;\nvar ampersand = 38; // `&`.charCodeAt(0);\n\nexports.ampersand = ampersand;\nvar asterisk = 42; // `*`.charCodeAt(0);\n\nexports.asterisk = asterisk;\nvar at = 64; // `@`.charCodeAt(0);\n\nexports.at = at;\nvar comma = 44; // `,`.charCodeAt(0);\n\nexports.comma = comma;\nvar colon = 58; // `:`.charCodeAt(0);\n\nexports.colon = colon;\nvar semicolon = 59; // `;`.charCodeAt(0);\n\nexports.semicolon = semicolon;\nvar openParenthesis = 40; // `(`.charCodeAt(0);\n\nexports.openParenthesis = openParenthesis;\nvar closeParenthesis = 41; // `)`.charCodeAt(0);\n\nexports.closeParenthesis = closeParenthesis;\nvar openSquare = 91; // `[`.charCodeAt(0);\n\nexports.openSquare = openSquare;\nvar closeSquare = 93; // `]`.charCodeAt(0);\n\nexports.closeSquare = closeSquare;\nvar dollar = 36; // `$`.charCodeAt(0);\n\nexports.dollar = dollar;\nvar tilde = 126; // `~`.charCodeAt(0);\n\nexports.tilde = tilde;\nvar caret = 94; // `^`.charCodeAt(0);\n\nexports.caret = caret;\nvar plus = 43; // `+`.charCodeAt(0);\n\nexports.plus = plus;\nvar equals = 61; // `=`.charCodeAt(0);\n\nexports.equals = equals;\nvar pipe = 124; // `|`.charCodeAt(0);\n\nexports.pipe = pipe;\nvar greaterThan = 62; // `>`.charCodeAt(0);\n\nexports.greaterThan = greaterThan;\nvar space = 32; // ` `.charCodeAt(0);\n\nexports.space = space;\nvar singleQuote = 39; // `'`.charCodeAt(0);\n\nexports.singleQuote = singleQuote;\nvar doubleQuote = 34; // `\"`.charCodeAt(0);\n\nexports.doubleQuote = doubleQuote;\nvar slash = 47; // `/`.charCodeAt(0);\n\nexports.slash = slash;\nvar bang = 33; // `!`.charCodeAt(0);\n\nexports.bang = bang;\nvar backslash = 92; // '\\\\'.charCodeAt(0);\n\nexports.backslash = backslash;\nvar cr = 13; // '\\r'.charCodeAt(0);\n\nexports.cr = cr;\nvar feed = 12; // '\\f'.charCodeAt(0);\n\nexports.feed = feed;\nvar newline = 10; // '\\n'.charCodeAt(0);\n\nexports.newline = newline;\nvar tab = 9; // '\\t'.charCodeAt(0);\n// Expose aliases primarily for readability.\n\nexports.tab = tab;\nvar str = singleQuote; // No good single character representation!\n\nexports.str = str;\nvar comment = -1;\nexports.comment = comment;\nvar word = -2;\nexports.word = word;\nvar combinator = -3;\nexports.combinator = combinator;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = tokenize;\nexports.FIELDS = void 0;\n\nvar t = _interopRequireWildcard(require(\"./tokenTypes\"));\n\nvar _unescapable, _wordDelimiters;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar unescapable = (_unescapable = {}, _unescapable[t.tab] = true, _unescapable[t.newline] = true, _unescapable[t.cr] = true, _unescapable[t.feed] = true, _unescapable);\nvar wordDelimiters = (_wordDelimiters = {}, _wordDelimiters[t.space] = true, _wordDelimiters[t.tab] = true, _wordDelimiters[t.newline] = true, _wordDelimiters[t.cr] = true, _wordDelimiters[t.feed] = true, _wordDelimiters[t.ampersand] = true, _wordDelimiters[t.asterisk] = true, _wordDelimiters[t.bang] = true, _wordDelimiters[t.comma] = true, _wordDelimiters[t.colon] = true, _wordDelimiters[t.semicolon] = true, _wordDelimiters[t.openParenthesis] = true, _wordDelimiters[t.closeParenthesis] = true, _wordDelimiters[t.openSquare] = true, _wordDelimiters[t.closeSquare] = true, _wordDelimiters[t.singleQuote] = true, _wordDelimiters[t.doubleQuote] = true, _wordDelimiters[t.plus] = true, _wordDelimiters[t.pipe] = true, _wordDelimiters[t.tilde] = true, _wordDelimiters[t.greaterThan] = true, _wordDelimiters[t.equals] = true, _wordDelimiters[t.dollar] = true, _wordDelimiters[t.caret] = true, _wordDelimiters[t.slash] = true, _wordDelimiters);\nvar hex = {};\nvar hexChars = \"0123456789abcdefABCDEF\";\n\nfor (var i = 0; i < hexChars.length; i++) {\n hex[hexChars.charCodeAt(i)] = true;\n}\n/**\n * Returns the last index of the bar css word\n * @param {string} css The string in which the word begins\n * @param {number} start The index into the string where word's first letter occurs\n */\n\n\nfunction consumeWord(css, start) {\n var next = start;\n var code;\n\n do {\n code = css.charCodeAt(next);\n\n if (wordDelimiters[code]) {\n return next - 1;\n } else if (code === t.backslash) {\n next = consumeEscape(css, next) + 1;\n } else {\n // All other characters are part of the word\n next++;\n }\n } while (next < css.length);\n\n return next - 1;\n}\n/**\n * Returns the last index of the escape sequence\n * @param {string} css The string in which the sequence begins\n * @param {number} start The index into the string where escape character (`\\`) occurs.\n */\n\n\nfunction consumeEscape(css, start) {\n var next = start;\n var code = css.charCodeAt(next + 1);\n\n if (unescapable[code]) {// just consume the escape char\n } else if (hex[code]) {\n var hexDigits = 0; // consume up to 6 hex chars\n\n do {\n next++;\n hexDigits++;\n code = css.charCodeAt(next + 1);\n } while (hex[code] && hexDigits < 6); // if fewer than 6 hex chars, a trailing space ends the escape\n\n\n if (hexDigits < 6 && code === t.space) {\n next++;\n }\n } else {\n // the next char is part of the current word\n next++;\n }\n\n return next;\n}\n\nvar FIELDS = {\n TYPE: 0,\n START_LINE: 1,\n START_COL: 2,\n END_LINE: 3,\n END_COL: 4,\n START_POS: 5,\n END_POS: 6\n};\nexports.FIELDS = FIELDS;\n\nfunction tokenize(input) {\n var tokens = [];\n var css = input.css.valueOf();\n var _css = css,\n length = _css.length;\n var offset = -1;\n var line = 1;\n var start = 0;\n var end = 0;\n var code, content, endColumn, endLine, escaped, escapePos, last, lines, next, nextLine, nextOffset, quote, tokenType;\n\n function unclosed(what, fix) {\n if (input.safe) {\n // fyi: this is never set to true.\n css += fix;\n next = css.length - 1;\n } else {\n throw input.error('Unclosed ' + what, line, start - offset, start);\n }\n }\n\n while (start < length) {\n code = css.charCodeAt(start);\n\n if (code === t.newline) {\n offset = start;\n line += 1;\n }\n\n switch (code) {\n case t.space:\n case t.tab:\n case t.newline:\n case t.cr:\n case t.feed:\n next = start;\n\n do {\n next += 1;\n code = css.charCodeAt(next);\n\n if (code === t.newline) {\n offset = next;\n line += 1;\n }\n } while (code === t.space || code === t.newline || code === t.tab || code === t.cr || code === t.feed);\n\n tokenType = t.space;\n endLine = line;\n endColumn = next - offset - 1;\n end = next;\n break;\n\n case t.plus:\n case t.greaterThan:\n case t.tilde:\n case t.pipe:\n next = start;\n\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === t.plus || code === t.greaterThan || code === t.tilde || code === t.pipe);\n\n tokenType = t.combinator;\n endLine = line;\n endColumn = start - offset;\n end = next;\n break;\n // Consume these characters as single tokens.\n\n case t.asterisk:\n case t.ampersand:\n case t.bang:\n case t.comma:\n case t.equals:\n case t.dollar:\n case t.caret:\n case t.openSquare:\n case t.closeSquare:\n case t.colon:\n case t.semicolon:\n case t.openParenthesis:\n case t.closeParenthesis:\n next = start;\n tokenType = code;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n break;\n\n case t.singleQuote:\n case t.doubleQuote:\n quote = code === t.singleQuote ? \"'\" : '\"';\n next = start;\n\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n\n if (next === -1) {\n unclosed('quote', quote);\n }\n\n escapePos = next;\n\n while (css.charCodeAt(escapePos - 1) === t.backslash) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n\n tokenType = t.str;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n break;\n\n default:\n if (code === t.slash && css.charCodeAt(start + 1) === t.asterisk) {\n next = css.indexOf('*/', start + 2) + 1;\n\n if (next === 0) {\n unclosed('comment', '*/');\n }\n\n content = css.slice(start, next + 1);\n lines = content.split('\\n');\n last = lines.length - 1;\n\n if (last > 0) {\n nextLine = line + last;\n nextOffset = next - lines[last].length;\n } else {\n nextLine = line;\n nextOffset = offset;\n }\n\n tokenType = t.comment;\n line = nextLine;\n endLine = nextLine;\n endColumn = next - nextOffset;\n } else if (code === t.slash) {\n next = start;\n tokenType = code;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n } else {\n next = consumeWord(css, start);\n tokenType = t.word;\n endLine = line;\n endColumn = next - offset;\n }\n\n end = next + 1;\n break;\n } // Ensure that the token structure remains consistent\n\n\n tokens.push([tokenType, // [0] Token type\n line, // [1] Starting line\n start - offset, // [2] Starting column\n endLine, // [3] Ending line\n endColumn, // [4] Ending column\n start, // [5] Start position / Source index\n end // [6] End position\n ]); // Reset offset for the next token\n\n if (nextOffset) {\n offset = nextOffset;\n nextOffset = null;\n }\n\n start = end;\n }\n\n return tokens;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _root = _interopRequireDefault(require(\"./selectors/root\"));\n\nvar _selector = _interopRequireDefault(require(\"./selectors/selector\"));\n\nvar _className = _interopRequireDefault(require(\"./selectors/className\"));\n\nvar _comment = _interopRequireDefault(require(\"./selectors/comment\"));\n\nvar _id = _interopRequireDefault(require(\"./selectors/id\"));\n\nvar _tag = _interopRequireDefault(require(\"./selectors/tag\"));\n\nvar _string = _interopRequireDefault(require(\"./selectors/string\"));\n\nvar _pseudo = _interopRequireDefault(require(\"./selectors/pseudo\"));\n\nvar _attribute = _interopRequireWildcard(require(\"./selectors/attribute\"));\n\nvar _universal = _interopRequireDefault(require(\"./selectors/universal\"));\n\nvar _combinator = _interopRequireDefault(require(\"./selectors/combinator\"));\n\nvar _nesting = _interopRequireDefault(require(\"./selectors/nesting\"));\n\nvar _sortAscending = _interopRequireDefault(require(\"./sortAscending\"));\n\nvar _tokenize = _interopRequireWildcard(require(\"./tokenize\"));\n\nvar tokens = _interopRequireWildcard(require(\"./tokenTypes\"));\n\nvar types = _interopRequireWildcard(require(\"./selectors/types\"));\n\nvar _util = require(\"./util\");\n\nvar _WHITESPACE_TOKENS, _Object$assign;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar WHITESPACE_TOKENS = (_WHITESPACE_TOKENS = {}, _WHITESPACE_TOKENS[tokens.space] = true, _WHITESPACE_TOKENS[tokens.cr] = true, _WHITESPACE_TOKENS[tokens.feed] = true, _WHITESPACE_TOKENS[tokens.newline] = true, _WHITESPACE_TOKENS[tokens.tab] = true, _WHITESPACE_TOKENS);\nvar WHITESPACE_EQUIV_TOKENS = Object.assign({}, WHITESPACE_TOKENS, (_Object$assign = {}, _Object$assign[tokens.comment] = true, _Object$assign));\n\nfunction tokenStart(token) {\n return {\n line: token[_tokenize.FIELDS.START_LINE],\n column: token[_tokenize.FIELDS.START_COL]\n };\n}\n\nfunction tokenEnd(token) {\n return {\n line: token[_tokenize.FIELDS.END_LINE],\n column: token[_tokenize.FIELDS.END_COL]\n };\n}\n\nfunction getSource(startLine, startColumn, endLine, endColumn) {\n return {\n start: {\n line: startLine,\n column: startColumn\n },\n end: {\n line: endLine,\n column: endColumn\n }\n };\n}\n\nfunction getTokenSource(token) {\n return getSource(token[_tokenize.FIELDS.START_LINE], token[_tokenize.FIELDS.START_COL], token[_tokenize.FIELDS.END_LINE], token[_tokenize.FIELDS.END_COL]);\n}\n\nfunction getTokenSourceSpan(startToken, endToken) {\n if (!startToken) {\n return undefined;\n }\n\n return getSource(startToken[_tokenize.FIELDS.START_LINE], startToken[_tokenize.FIELDS.START_COL], endToken[_tokenize.FIELDS.END_LINE], endToken[_tokenize.FIELDS.END_COL]);\n}\n\nfunction unescapeProp(node, prop) {\n var value = node[prop];\n\n if (typeof value !== \"string\") {\n return;\n }\n\n if (value.indexOf(\"\\\\\") !== -1) {\n (0, _util.ensureObject)(node, 'raws');\n node[prop] = (0, _util.unesc)(value);\n\n if (node.raws[prop] === undefined) {\n node.raws[prop] = value;\n }\n }\n\n return node;\n}\n\nfunction indexesOf(array, item) {\n var i = -1;\n var indexes = [];\n\n while ((i = array.indexOf(item, i + 1)) !== -1) {\n indexes.push(i);\n }\n\n return indexes;\n}\n\nfunction uniqs() {\n var list = Array.prototype.concat.apply([], arguments);\n return list.filter(function (item, i) {\n return i === list.indexOf(item);\n });\n}\n\nvar Parser = /*#__PURE__*/function () {\n function Parser(rule, options) {\n if (options === void 0) {\n options = {};\n }\n\n this.rule = rule;\n this.options = Object.assign({\n lossy: false,\n safe: false\n }, options);\n this.position = 0;\n this.css = typeof this.rule === 'string' ? this.rule : this.rule.selector;\n this.tokens = (0, _tokenize[\"default\"])({\n css: this.css,\n error: this._errorGenerator(),\n safe: this.options.safe\n });\n var rootSource = getTokenSourceSpan(this.tokens[0], this.tokens[this.tokens.length - 1]);\n this.root = new _root[\"default\"]({\n source: rootSource\n });\n this.root.errorGenerator = this._errorGenerator();\n var selector = new _selector[\"default\"]({\n source: {\n start: {\n line: 1,\n column: 1\n }\n }\n });\n this.root.append(selector);\n this.current = selector;\n this.loop();\n }\n\n var _proto = Parser.prototype;\n\n _proto._errorGenerator = function _errorGenerator() {\n var _this = this;\n\n return function (message, errorOptions) {\n if (typeof _this.rule === 'string') {\n return new Error(message);\n }\n\n return _this.rule.error(message, errorOptions);\n };\n };\n\n _proto.attribute = function attribute() {\n var attr = [];\n var startingToken = this.currToken;\n this.position++;\n\n while (this.position < this.tokens.length && this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) {\n attr.push(this.currToken);\n this.position++;\n }\n\n if (this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) {\n return this.expected('closing square bracket', this.currToken[_tokenize.FIELDS.START_POS]);\n }\n\n var len = attr.length;\n var node = {\n source: getSource(startingToken[1], startingToken[2], this.currToken[3], this.currToken[4]),\n sourceIndex: startingToken[_tokenize.FIELDS.START_POS]\n };\n\n if (len === 1 && !~[tokens.word].indexOf(attr[0][_tokenize.FIELDS.TYPE])) {\n return this.expected('attribute', attr[0][_tokenize.FIELDS.START_POS]);\n }\n\n var pos = 0;\n var spaceBefore = '';\n var commentBefore = '';\n var lastAdded = null;\n var spaceAfterMeaningfulToken = false;\n\n while (pos < len) {\n var token = attr[pos];\n var content = this.content(token);\n var next = attr[pos + 1];\n\n switch (token[_tokenize.FIELDS.TYPE]) {\n case tokens.space:\n // if (\n // len === 1 ||\n // pos === 0 && this.content(next) === '|'\n // ) {\n // return this.expected('attribute', token[TOKEN.START_POS], content);\n // }\n spaceAfterMeaningfulToken = true;\n\n if (this.options.lossy) {\n break;\n }\n\n if (lastAdded) {\n (0, _util.ensureObject)(node, 'spaces', lastAdded);\n var prevContent = node.spaces[lastAdded].after || '';\n node.spaces[lastAdded].after = prevContent