{"version":3,"file":"react-intl.js","sources":["../node_modules/intl-messageformat-parser/lib/types.js","../node_modules/intl-messageformat-parser/lib/parser.js","../node_modules/intl-messageformat-parser/lib/normalize.js","../node_modules/intl-messageformat-parser/lib/skeleton.js","../node_modules/intl-messageformat-parser/lib/index.js","../node_modules/intl-format-cache/lib/index.js","../node_modules/intl-messageformat/lib/formatters.js","../node_modules/intl-messageformat/lib/core.js","../node_modules/intl-messageformat/lib/index.js","../node_modules/@formatjs/intl-utils/lib/invariant.js","../lib/utils.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../lib/components/injectIntl.js","../lib/components/createFormattedComponent.js","../lib/components/useIntl.js","../lib/formatters/number.js","../lib/formatters/relativeTime.js","../lib/formatters/dateTime.js","../lib/formatters/plural.js","../lib/formatters/message.js","../node_modules/shallow-equal/objects/index.js","../lib/formatters/list.js","../lib/formatters/displayName.js","../lib/components/provider.js","../lib/components/relative.js","../lib/components/plural.js","../lib/components/message.js","../lib/components/html-message.js","../lib/index.js"],"sourcesContent":["export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n})(TYPE || (TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === 0 /* number */);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === 1 /* dateTime */);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// tslint:disable:only-arrow-functions\n// tslint:disable:object-literal-shorthand\n// tslint:disable:trailing-comma\n// tslint:disable:object-literal-sort-keys\n// tslint:disable:one-variable-per-declaration\n// tslint:disable:max-line-length\n// tslint:disable:no-consecutive-blank-lines\n// tslint:disable:align\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// Generated by PEG.js v. 0.10.0 (ts-pegjs plugin v. 0.2.6 )\n//\n// https://pegjs.org/ https://github.com/metadevpro/ts-pegjs\nimport { TYPE, } from './types';\nvar SyntaxError = /** @class */ (function (_super) {\n __extends(SyntaxError, _super);\n function SyntaxError(message, expected, found, location) {\n var _this = _super.call(this) || this;\n _this.message = message;\n _this.expected = expected;\n _this.found = found;\n _this.location = location;\n _this.name = \"SyntaxError\";\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(_this, SyntaxError);\n }\n return _this;\n }\n SyntaxError.buildMessage = function (expected, found) {\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\"/g, \"\\\\\\\"\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) { return \"\\\\x0\" + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) { return \"\\\\x\" + hex(ch); });\n }\n function classEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\]/g, \"\\\\]\")\n .replace(/\\^/g, \"\\\\^\")\n .replace(/-/g, \"\\\\-\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) { return \"\\\\x0\" + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) { return \"\\\\x\" + hex(ch); });\n }\n function describeExpectation(expectation) {\n switch (expectation.type) {\n case \"literal\":\n return \"\\\"\" + literalEscape(expectation.text) + \"\\\"\";\n case \"class\":\n var escapedParts = expectation.parts.map(function (part) {\n return Array.isArray(part)\n ? classEscape(part[0]) + \"-\" + classEscape(part[1])\n : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts + \"]\";\n case \"any\":\n return \"any character\";\n case \"end\":\n return \"end of input\";\n case \"other\":\n return expectation.description;\n }\n }\n function describeExpected(expected1) {\n var descriptions = expected1.map(describeExpectation);\n var i;\n var j;\n descriptions.sort();\n if (descriptions.length > 0) {\n for (i = 1, j = 1; i < descriptions.length; i++) {\n if (descriptions[i - 1] !== descriptions[i]) {\n descriptions[j] = descriptions[i];\n j++;\n }\n }\n descriptions.length = j;\n }\n switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \")\n + \", or \"\n + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found1) {\n return found1 ? \"\\\"\" + literalEscape(found1) + \"\\\"\" : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n return SyntaxError;\n}(Error));\nexport { SyntaxError };\nfunction peg$parse(input, options) {\n options = options !== undefined ? options : {};\n var peg$FAILED = {};\n var peg$startRuleFunctions = { start: peg$parsestart };\n var peg$startRuleFunction = peg$parsestart;\n var peg$c0 = function (parts) {\n return parts.join('');\n };\n var peg$c1 = function (messageText) {\n return __assign({ type: TYPE.literal, value: messageText }, insertLocation());\n };\n var peg$c2 = \"#\";\n var peg$c3 = peg$literalExpectation(\"#\", false);\n var peg$c4 = function () {\n return __assign({ type: TYPE.pound }, insertLocation());\n };\n var peg$c5 = peg$otherExpectation(\"argumentElement\");\n var peg$c6 = \"{\";\n var peg$c7 = peg$literalExpectation(\"{\", false);\n var peg$c8 = \"}\";\n var peg$c9 = peg$literalExpectation(\"}\", false);\n var peg$c10 = function (value) {\n return __assign({ type: TYPE.argument, value: value }, insertLocation());\n };\n var peg$c11 = peg$otherExpectation(\"numberSkeletonId\");\n var peg$c12 = /^['\\/{}]/;\n var peg$c13 = peg$classExpectation([\"'\", \"/\", \"{\", \"}\"], false, false);\n var peg$c14 = peg$anyExpectation();\n var peg$c15 = peg$otherExpectation(\"numberSkeletonTokenOption\");\n var peg$c16 = \"/\";\n var peg$c17 = peg$literalExpectation(\"/\", false);\n var peg$c18 = function (option) { return option; };\n var peg$c19 = peg$otherExpectation(\"numberSkeletonToken\");\n var peg$c20 = function (stem, options) {\n return { stem: stem, options: options };\n };\n var peg$c21 = function (tokens) {\n return __assign({ type: 0 /* number */, tokens: tokens }, insertLocation());\n };\n var peg$c22 = \"::\";\n var peg$c23 = peg$literalExpectation(\"::\", false);\n var peg$c24 = function (skeleton) { return skeleton; };\n var peg$c25 = function () { messageCtx.push('numberArgStyle'); return true; };\n var peg$c26 = function (style) {\n messageCtx.pop();\n return style.replace(/\\s*$/, '');\n };\n var peg$c27 = \",\";\n var peg$c28 = peg$literalExpectation(\",\", false);\n var peg$c29 = \"number\";\n var peg$c30 = peg$literalExpectation(\"number\", false);\n var peg$c31 = function (value, type, style) {\n return __assign({ type: type === 'number' ? TYPE.number : type === 'date' ? TYPE.date : TYPE.time, style: style && style[2], value: value }, insertLocation());\n };\n var peg$c32 = \"'\";\n var peg$c33 = peg$literalExpectation(\"'\", false);\n var peg$c34 = /^[^']/;\n var peg$c35 = peg$classExpectation([\"'\"], true, false);\n var peg$c36 = /^[^a-zA-Z'{}]/;\n var peg$c37 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"], \"'\", \"{\", \"}\"], true, false);\n var peg$c38 = /^[a-zA-Z]/;\n var peg$c39 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"]], false, false);\n var peg$c40 = function (pattern) {\n return __assign({ type: 1 /* dateTime */, pattern: pattern }, insertLocation());\n };\n var peg$c41 = function () { messageCtx.push('dateOrTimeArgStyle'); return true; };\n var peg$c42 = \"date\";\n var peg$c43 = peg$literalExpectation(\"date\", false);\n var peg$c44 = \"time\";\n var peg$c45 = peg$literalExpectation(\"time\", false);\n var peg$c46 = \"plural\";\n var peg$c47 = peg$literalExpectation(\"plural\", false);\n var peg$c48 = \"selectordinal\";\n var peg$c49 = peg$literalExpectation(\"selectordinal\", false);\n var peg$c50 = \"offset:\";\n var peg$c51 = peg$literalExpectation(\"offset:\", false);\n var peg$c52 = function (value, pluralType, offset, options) {\n return __assign({ type: TYPE.plural, pluralType: pluralType === 'plural' ? 'cardinal' : 'ordinal', value: value, offset: offset ? offset[2] : 0, options: options.reduce(function (all, _a) {\n var id = _a.id, value = _a.value, optionLocation = _a.location;\n if (id in all) {\n error(\"Duplicate option \\\"\" + id + \"\\\" in plural element: \\\"\" + text() + \"\\\"\", location());\n }\n all[id] = {\n value: value,\n location: optionLocation\n };\n return all;\n }, {}) }, insertLocation());\n };\n var peg$c53 = \"select\";\n var peg$c54 = peg$literalExpectation(\"select\", false);\n var peg$c55 = function (value, options) {\n return __assign({ type: TYPE.select, value: value, options: options.reduce(function (all, _a) {\n var id = _a.id, value = _a.value, optionLocation = _a.location;\n if (id in all) {\n error(\"Duplicate option \\\"\" + id + \"\\\" in select element: \\\"\" + text() + \"\\\"\", location());\n }\n all[id] = {\n value: value,\n location: optionLocation\n };\n return all;\n }, {}) }, insertLocation());\n };\n var peg$c56 = \"=\";\n var peg$c57 = peg$literalExpectation(\"=\", false);\n var peg$c58 = function (id) { messageCtx.push('select'); return true; };\n var peg$c59 = function (id, value) {\n messageCtx.pop();\n return __assign({ id: id,\n value: value }, insertLocation());\n };\n var peg$c60 = function (id) { messageCtx.push('plural'); return true; };\n var peg$c61 = function (id, value) {\n messageCtx.pop();\n return __assign({ id: id,\n value: value }, insertLocation());\n };\n var peg$c62 = peg$otherExpectation(\"whitespace\");\n var peg$c63 = /^[\\t-\\r \\x85\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/;\n var peg$c64 = peg$classExpectation([[\"\\t\", \"\\r\"], \" \", \"\\x85\", \"\\xA0\", \"\\u1680\", [\"\\u2000\", \"\\u200A\"], \"\\u2028\", \"\\u2029\", \"\\u202F\", \"\\u205F\", \"\\u3000\"], false, false);\n var peg$c65 = peg$otherExpectation(\"syntax pattern\");\n var peg$c66 = /^[!-\\/:-@[-\\^`{-~\\xA1-\\xA7\\xA9\\xAB\\xAC\\xAE\\xB0\\xB1\\xB6\\xBB\\xBF\\xD7\\xF7\\u2010-\\u2027\\u2030-\\u203E\\u2041-\\u2053\\u2055-\\u205E\\u2190-\\u245F\\u2500-\\u2775\\u2794-\\u2BFF\\u2E00-\\u2E7F\\u3001-\\u3003\\u3008-\\u3020\\u3030\\uFD3E\\uFD3F\\uFE45\\uFE46]/;\n var peg$c67 = peg$classExpectation([[\"!\", \"/\"], [\":\", \"@\"], [\"[\", \"^\"], \"`\", [\"{\", \"~\"], [\"\\xA1\", \"\\xA7\"], \"\\xA9\", \"\\xAB\", \"\\xAC\", \"\\xAE\", \"\\xB0\", \"\\xB1\", \"\\xB6\", \"\\xBB\", \"\\xBF\", \"\\xD7\", \"\\xF7\", [\"\\u2010\", \"\\u2027\"], [\"\\u2030\", \"\\u203E\"], [\"\\u2041\", \"\\u2053\"], [\"\\u2055\", \"\\u205E\"], [\"\\u2190\", \"\\u245F\"], [\"\\u2500\", \"\\u2775\"], [\"\\u2794\", \"\\u2BFF\"], [\"\\u2E00\", \"\\u2E7F\"], [\"\\u3001\", \"\\u3003\"], [\"\\u3008\", \"\\u3020\"], \"\\u3030\", \"\\uFD3E\", \"\\uFD3F\", \"\\uFE45\", \"\\uFE46\"], false, false);\n var peg$c68 = peg$otherExpectation(\"optional whitespace\");\n var peg$c69 = peg$otherExpectation(\"number\");\n var peg$c70 = \"-\";\n var peg$c71 = peg$literalExpectation(\"-\", false);\n var peg$c72 = function (negative, num) {\n return num\n ? negative\n ? -num\n : num\n : 0;\n };\n var peg$c73 = peg$otherExpectation(\"apostrophe\");\n var peg$c74 = peg$otherExpectation(\"double apostrophes\");\n var peg$c75 = \"''\";\n var peg$c76 = peg$literalExpectation(\"''\", false);\n var peg$c77 = function () { return \"'\"; };\n var peg$c78 = function (escapedChar, quotedChars) {\n return escapedChar + quotedChars.replace(\"''\", \"'\");\n };\n var peg$c79 = function (x) {\n return (x !== '{' &&\n !(isInPluralOption() && x === '#') &&\n !(isNestedMessageText() && x === '}'));\n };\n var peg$c80 = \"\\n\";\n var peg$c81 = peg$literalExpectation(\"\\n\", false);\n var peg$c82 = function (x) {\n return x === '{' || x === '}' || (isInPluralOption() && x === '#');\n };\n var peg$c83 = peg$otherExpectation(\"argNameOrNumber\");\n var peg$c84 = peg$otherExpectation(\"argNumber\");\n var peg$c85 = \"0\";\n var peg$c86 = peg$literalExpectation(\"0\", false);\n var peg$c87 = function () { return 0; };\n var peg$c88 = /^[1-9]/;\n var peg$c89 = peg$classExpectation([[\"1\", \"9\"]], false, false);\n var peg$c90 = /^[0-9]/;\n var peg$c91 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n var peg$c92 = function (digits) {\n return parseInt(digits.join(''), 10);\n };\n var peg$c93 = peg$otherExpectation(\"argName\");\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$result;\n if (options.startRule !== undefined) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location1) {\n location1 = location1 !== undefined\n ? location1\n : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError([peg$otherExpectation(description)], input.substring(peg$savedPos, peg$currPos), location1);\n }\n function error(message, location1) {\n location1 = location1 !== undefined\n ? location1\n : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location1);\n }\n function peg$literalExpectation(text1, ignoreCase) {\n return { type: \"literal\", text: text1, ignoreCase: ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts: parts, inverted: inverted, ignoreCase: ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description: description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n }\n else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\n };\n while (p < pos) {\n if (input.charCodeAt(p) === 10) {\n details.line++;\n details.column = 1;\n }\n else {\n details.column++;\n }\n p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n return {\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column\n }\n };\n }\n function peg$fail(expected1) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected1);\n }\n function peg$buildSimpleError(message, location1) {\n return new SyntaxError(message, [], \"\", location1);\n }\n function peg$buildStructuredError(expected1, found, location1) {\n return new SyntaxError(SyntaxError.buildMessage(expected1, found), expected1, found, location1);\n }\n function peg$parsestart() {\n var s0;\n s0 = peg$parsemessage();\n return s0;\n }\n function peg$parsemessage() {\n var s0, s1;\n s0 = [];\n s1 = peg$parsemessageElement();\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsemessageElement();\n }\n return s0;\n }\n function peg$parsemessageElement() {\n var s0;\n s0 = peg$parseliteralElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsesimpleFormatElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepoundElement();\n }\n }\n }\n }\n }\n return s0;\n }\n function peg$parsemessageText() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsedoubleApostrophes();\n if (s2 === peg$FAILED) {\n s2 = peg$parsequotedString();\n if (s2 === peg$FAILED) {\n s2 = peg$parseunquotedString();\n }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsedoubleApostrophes();\n if (s2 === peg$FAILED) {\n s2 = peg$parsequotedString();\n if (s2 === peg$FAILED) {\n s2 = peg$parseunquotedString();\n }\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parseliteralElement() {\n var s0, s1;\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c1(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsepoundElement() {\n var s0, s1;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 35) {\n s1 = peg$c2;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c4();\n }\n s0 = s1;\n return s0;\n }\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s5 = peg$c8;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c10(s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c5);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonId() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n if (peg$c12.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c13);\n }\n }\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n if (peg$c12.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c13);\n }\n }\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c11);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonTokenOption() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 47) {\n s1 = peg$c16;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c17);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeletonId();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c18(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c15);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonToken() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeletonId();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsenumberSkeletonTokenOption();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsenumberSkeletonTokenOption();\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c20(s2, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c19);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeleton() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsenumberSkeletonToken();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsenumberSkeletonToken();\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c21(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsenumberArgStyle() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c24(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n peg$savedPos = peg$currPos;\n s1 = peg$c25();\n if (s1) {\n s1 = undefined;\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsemessageText();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsenumberFormatElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c29) {\n s7 = peg$c29;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c30);\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n s9 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s10 = peg$c27;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s10 !== peg$FAILED) {\n s11 = peg$parse_();\n if (s11 !== peg$FAILED) {\n s12 = peg$parsenumberArgStyle();\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n if (s9 === peg$FAILED) {\n s9 = null;\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s11 = peg$c8;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c31(s3, s7, s9);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedateTimeSkeletonLiteral() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c32;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n }\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s3 = peg$c32;\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s3 !== peg$FAILED) {\n s1 = [s1, s2, s3];\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = [];\n s1 = peg$parsedoubleApostrophes();\n if (s1 === peg$FAILED) {\n if (peg$c36.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c37);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsedoubleApostrophes();\n if (s1 === peg$FAILED) {\n if (peg$c36.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c37);\n }\n }\n }\n }\n }\n else {\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsedateTimeSkeletonPattern() {\n var s0, s1;\n s0 = [];\n if (peg$c38.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c39);\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c38.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c39);\n }\n }\n }\n }\n else {\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedateTimeSkeleton() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n s3 = peg$parsedateTimeSkeletonLiteral();\n if (s3 === peg$FAILED) {\n s3 = peg$parsedateTimeSkeletonPattern();\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsedateTimeSkeletonLiteral();\n if (s3 === peg$FAILED) {\n s3 = peg$parsedateTimeSkeletonPattern();\n }\n }\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = input.substring(s1, peg$currPos);\n }\n else {\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c40(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsedateOrTimeArgStyle() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsedateTimeSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c24(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n peg$savedPos = peg$currPos;\n s1 = peg$c41();\n if (s1) {\n s1 = undefined;\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsemessageText();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsedateOrTimeFormatElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c42) {\n s7 = peg$c42;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c44) {\n s7 = peg$c44;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c45);\n }\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n s9 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s10 = peg$c27;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s10 !== peg$FAILED) {\n s11 = peg$parse_();\n if (s11 !== peg$FAILED) {\n s12 = peg$parsedateOrTimeArgStyle();\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n if (s9 === peg$FAILED) {\n s9 = null;\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s11 = peg$c8;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c31(s3, s7, s9);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsesimpleFormatElement() {\n var s0;\n s0 = peg$parsenumberFormatElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsedateOrTimeFormatElement();\n }\n return s0;\n }\n function peg$parsepluralElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c46) {\n s7 = peg$c46;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c47);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 13) === peg$c48) {\n s7 = peg$c48;\n peg$currPos += 13;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c49);\n }\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s9 = peg$c27;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n s11 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c50) {\n s12 = peg$c50;\n peg$currPos += 7;\n }\n else {\n s12 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c51);\n }\n }\n if (s12 !== peg$FAILED) {\n s13 = peg$parse_();\n if (s13 !== peg$FAILED) {\n s14 = peg$parsenumber();\n if (s14 !== peg$FAILED) {\n s12 = [s12, s13, s14];\n s11 = s12;\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n if (s11 === peg$FAILED) {\n s11 = null;\n }\n if (s11 !== peg$FAILED) {\n s12 = peg$parse_();\n if (s12 !== peg$FAILED) {\n s13 = [];\n s14 = peg$parsepluralOption();\n if (s14 !== peg$FAILED) {\n while (s14 !== peg$FAILED) {\n s13.push(s14);\n s14 = peg$parsepluralOption();\n }\n }\n else {\n s13 = peg$FAILED;\n }\n if (s13 !== peg$FAILED) {\n s14 = peg$parse_();\n if (s14 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s15 = peg$c8;\n peg$currPos++;\n }\n else {\n s15 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s15 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c52(s3, s7, s11, s13);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseselectElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c53) {\n s7 = peg$c53;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c54);\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s9 = peg$c27;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n s11 = [];\n s12 = peg$parseselectOption();\n if (s12 !== peg$FAILED) {\n while (s12 !== peg$FAILED) {\n s11.push(s12);\n s12 = peg$parseselectOption();\n }\n }\n else {\n s11 = peg$FAILED;\n }\n if (s11 !== peg$FAILED) {\n s12 = peg$parse_();\n if (s12 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s13 = peg$c8;\n peg$currPos++;\n }\n else {\n s13 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s13 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c55(s3, s11);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsepluralRuleSelectValue() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c56;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c57);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parseargName();\n }\n return s0;\n }\n function peg$parseselectOption() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseargName();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c6;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s5 = peg$c58(s2);\n if (s5) {\n s5 = undefined;\n }\n else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessage();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c8;\n peg$currPos++;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c59(s2, s6);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsepluralOption() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepluralRuleSelectValue();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c6;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s5 = peg$c60(s2);\n if (s5) {\n s5 = undefined;\n }\n else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessage();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c8;\n peg$currPos++;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c61(s2, s6);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsewhiteSpace() {\n var s0, s1;\n peg$silentFails++;\n if (peg$c63.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c64);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c62);\n }\n }\n return s0;\n }\n function peg$parsepatternSyntax() {\n var s0, s1;\n peg$silentFails++;\n if (peg$c66.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c67);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c65);\n }\n }\n return s0;\n }\n function peg$parse_() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsewhiteSpace();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewhiteSpace();\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c68);\n }\n }\n return s0;\n }\n function peg$parsenumber() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c70;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c71);\n }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseargNumber();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c72(s1, s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c69);\n }\n }\n return s0;\n }\n function peg$parseapostrophe() {\n var s0, s1;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 39) {\n s0 = peg$c32;\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c73);\n }\n }\n return s0;\n }\n function peg$parsedoubleApostrophes() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c75) {\n s1 = peg$c75;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c76);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c77();\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c74);\n }\n }\n return s0;\n }\n function peg$parsequotedString() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c32;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseescapedChar();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n s4 = [];\n if (input.substr(peg$currPos, 2) === peg$c75) {\n s5 = peg$c75;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c76);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n if (input.substr(peg$currPos, 2) === peg$c75) {\n s5 = peg$c75;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c76);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = input.substring(s3, peg$currPos);\n }\n else {\n s3 = s4;\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s4 = peg$c32;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c78(s2, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseunquotedString() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.length > peg$currPos) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s3 = peg$c79(s2);\n if (s3) {\n s3 = undefined;\n }\n else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 10) {\n s1 = peg$c80;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c81);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n return s0;\n }\n function peg$parseescapedChar() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.length > peg$currPos) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s3 = peg$c82(s2);\n if (s3) {\n s3 = undefined;\n }\n else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n return s0;\n }\n function peg$parseargNameOrNumber() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseargNumber();\n if (s1 === peg$FAILED) {\n s1 = peg$parseargName();\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c83);\n }\n }\n return s0;\n }\n function peg$parseargNumber() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c85;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c86);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c87();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (peg$c88.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c89);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c90.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c91);\n }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c90.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c91);\n }\n }\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c92(s1);\n }\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c84);\n }\n }\n return s0;\n }\n function peg$parseargName() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n s4 = peg$parsepatternSyntax();\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n s4 = peg$parsepatternSyntax();\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c93);\n }\n }\n return s0;\n }\n var messageCtx = ['root'];\n function isNestedMessageText() {\n return messageCtx.length > 1;\n }\n function isInPluralOption() {\n return messageCtx[messageCtx.length - 1] === 'plural';\n }\n function insertLocation() {\n return options && options.captureLocation ? {\n location: location()\n } : {};\n }\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n }\n else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length\n ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n : peg$computeLocation(peg$maxFailPos, peg$maxFailPos));\n }\n}\nexport var pegParse = peg$parse;\n","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { isPluralElement, isLiteralElement, isSelectElement, } from './types';\nimport { pegParse } from './parser';\nvar PLURAL_HASHTAG_REGEX = /(^|[^\\\\])#/g;\n/**\n * Whether to convert `#` in plural rule options\n * to `{var, number}`\n * @param el AST Element\n * @param pluralStack current plural stack\n */\nexport function normalizeHashtagInPlural(els) {\n els.forEach(function (el) {\n // If we're encountering a plural el\n if (!isPluralElement(el) && !isSelectElement(el)) {\n return;\n }\n // Go down the options and search for # in any literal element\n Object.keys(el.options).forEach(function (id) {\n var _a;\n var opt = el.options[id];\n // If we got a match, we have to split this\n // and inject a NumberElement in the middle\n var matchingLiteralElIndex = -1;\n var literalEl = undefined;\n for (var i = 0; i < opt.value.length; i++) {\n var el_1 = opt.value[i];\n if (isLiteralElement(el_1) && PLURAL_HASHTAG_REGEX.test(el_1.value)) {\n matchingLiteralElIndex = i;\n literalEl = el_1;\n break;\n }\n }\n if (literalEl) {\n var newValue = literalEl.value.replace(PLURAL_HASHTAG_REGEX, \"$1{\" + el.value + \", number}\");\n var newEls = pegParse(newValue);\n (_a = opt.value).splice.apply(_a, __spreadArrays([matchingLiteralElIndex, 1], newEls));\n }\n normalizeHashtagInPlural(opt.value);\n });\n });\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) pattenrs are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) pattenrs are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\+|#+)?)?$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?$/g;\nfunction parseSignificantPrecision(str) {\n var result = {};\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function convertNumberSkeletonToNumberFormatOptions(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n result.style = 'percent';\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n }\n // Precision\n // https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#fraction-precision\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (match, g1, g2) {\n // precision-integer case\n if (match === '.') {\n result.maximumFractionDigits = 0;\n }\n // .000+ case\n else if (g2 === '+') {\n result.minimumFractionDigits = g2.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumFractionDigits = g1.length;\n }\n // .00## or .000 case\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n if (token.options.length) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.options[0]));\n }\n continue;\n }\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n }\n return result;\n}\n","import { pegParse } from './parser';\nimport { normalizeHashtagInPlural } from './normalize';\nexport * from './types';\nexport * from './parser';\nexport * from './skeleton';\nexport function parse(input, opts) {\n var els = pegParse(input, opts);\n if (!opts || opts.normalizeHashtagInPlural !== false) {\n normalizeHashtagInPlural(els);\n }\n return els;\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\n// -- Utilities ----------------------------------------------------------------\nfunction getCacheId(inputs) {\n return JSON.stringify(inputs.map(function (input) {\n return input && typeof input === 'object' ? orderedProps(input) : input;\n }));\n}\nfunction orderedProps(obj) {\n return Object.keys(obj)\n .sort()\n .map(function (k) {\n var _a;\n return (_a = {}, _a[k] = obj[k], _a);\n });\n}\nvar memoizeFormatConstructor = function (FormatConstructor, cache) {\n if (cache === void 0) { cache = {}; }\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var cacheId = getCacheId(args);\n var format = cacheId && cache[cacheId];\n if (!format) {\n format = new ((_a = FormatConstructor).bind.apply(_a, __spreadArrays([void 0], args)))();\n if (cacheId) {\n cache[cacheId] = format;\n }\n }\n return format;\n };\n};\nexport default memoizeFormatConstructor;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { convertNumberSkeletonToNumberFormatOptions, isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, parseDateTimeSkeleton, } from 'intl-messageformat-parser';\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, variableId) {\n var _this = _super.call(this, msg) || this;\n _this.variableId = variableId;\n return _this;\n }\n return FormatError;\n}(Error));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== 0 /* literal */ ||\n part.type !== 0 /* literal */) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: 0 /* literal */,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: 0 /* literal */,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: 0 /* literal */,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new FormatError(\"The intl string context variable \\\"\" + varName + \"\\\" was not provided to the string \\\"\" + originalMessage + \"\\\"\");\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: 1 /* argument */,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string' ? formats.date[el.style] : undefined;\n result.push({\n type: 0 /* literal */,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? parseDateTimeSkeleton(el.style.pattern)\n : undefined;\n result.push({\n type: 0 /* literal */,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? convertNumberSkeletonToNumberFormatOptions(el.style.tokens)\n : undefined;\n result.push({\n type: 0 /* literal */,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new RangeError(\"Invalid values for \\\"\" + el.value + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(el.options).join('\", \"') + \"\\\"\");\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\" + value];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\");\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new RangeError(\"Invalid values for \\\"\" + el.value + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(el.options).join('\", \"') + \"\\\"\");\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\nexport function formatToString(els, locales, formatters, formats, values, \n// For debugging\noriginalMessage) {\n var parts = formatToParts(els, locales, formatters, formats, values, undefined, originalMessage);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n return parts.reduce(function (all, part) { return (all += part.value); }, '');\n}\n// Singleton\nvar domParser;\nvar TOKEN_DELIMITER = '@@';\nvar TOKEN_REGEX = /@@(\\d+_\\d+)@@/g;\nvar counter = 0;\nfunction generateId() {\n return Date.now() + \"_\" + ++counter;\n}\nfunction restoreRichPlaceholderMessage(text, objectParts) {\n return text\n .split(TOKEN_REGEX)\n .filter(Boolean)\n .map(function (c) { return (objectParts[c] != null ? objectParts[c] : c); })\n .reduce(function (all, c) {\n if (!all.length) {\n all.push(c);\n }\n else if (typeof c === 'string' &&\n typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += c;\n }\n else {\n all.push(c);\n }\n return all;\n }, []);\n}\n/**\n * Not exhaustive, just for sanity check\n */\nvar SIMPLE_XML_REGEX = /(<([0-9a-zA-Z-_]*?)>(.*?)<\\/([0-9a-zA-Z-_]*?)>)|(<[0-9a-zA-Z-_]*?\\/>)/;\nvar TEMPLATE_ID = Date.now() + '@@';\nvar VOID_ELEMENTS = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n];\nfunction formatHTMLElement(el, objectParts, values) {\n var tagName = el.tagName;\n var outerHTML = el.outerHTML, textContent = el.textContent, childNodes = el.childNodes;\n // Regular text\n if (!tagName) {\n return restoreRichPlaceholderMessage(textContent || '', objectParts);\n }\n tagName = tagName.toLowerCase();\n var isVoidElement = ~VOID_ELEMENTS.indexOf(tagName);\n var formatFnOrValue = values[tagName];\n if (formatFnOrValue && isVoidElement) {\n throw new FormatError(tagName + \" is a self-closing tag and can not be used, please use another tag name.\");\n }\n if (!childNodes.length) {\n return [outerHTML];\n }\n var chunks = Array.prototype.slice.call(childNodes).reduce(function (all, child) {\n return all.concat(formatHTMLElement(child, objectParts, values));\n }, []);\n // Legacy HTML\n if (!formatFnOrValue) {\n return __spreadArrays([\"<\" + tagName + \">\"], chunks, [\"\"]);\n }\n // HTML Tag replacement\n if (typeof formatFnOrValue === 'function') {\n return [formatFnOrValue.apply(void 0, chunks)];\n }\n return [formatFnOrValue];\n}\nexport function formatHTMLMessage(els, locales, formatters, formats, values, \n// For debugging\noriginalMessage) {\n var parts = formatToParts(els, locales, formatters, formats, values, undefined, originalMessage);\n var objectParts = {};\n var formattedMessage = parts.reduce(function (all, part) {\n if (part.type === 0 /* literal */) {\n return (all += part.value);\n }\n var id = generateId();\n objectParts[id] = part.value;\n return (all += \"\" + TOKEN_DELIMITER + id + TOKEN_DELIMITER);\n }, '');\n // Not designed to filter out aggressively\n if (!SIMPLE_XML_REGEX.test(formattedMessage)) {\n return restoreRichPlaceholderMessage(formattedMessage, objectParts);\n }\n if (!values) {\n throw new FormatError('Message has placeholders but no values was given');\n }\n if (typeof DOMParser === 'undefined') {\n throw new FormatError('Cannot format XML message without DOMParser');\n }\n if (!domParser) {\n domParser = new DOMParser();\n }\n var content = domParser\n .parseFromString(\"\" + formattedMessage + \"\", 'text/html')\n .getElementById(TEMPLATE_ID);\n if (!content) {\n throw new FormatError(\"Malformed HTML message \" + formattedMessage);\n }\n var tagsToFormat = Object.keys(values).filter(function (varName) { return !!content.getElementsByTagName(varName).length; });\n // No tags to format\n if (!tagsToFormat.length) {\n return restoreRichPlaceholderMessage(formattedMessage, objectParts);\n }\n var caseSensitiveTags = tagsToFormat.filter(function (tagName) { return tagName !== tagName.toLowerCase(); });\n if (caseSensitiveTags.length) {\n throw new FormatError(\"HTML tag must be lowercased but the following tags are not: \" + caseSensitiveTags.join(', '));\n }\n // We're doing this since top node is `` which does not have a formatter\n return Array.prototype.slice\n .call(content.childNodes)\n .reduce(function (all, child) { return all.concat(formatHTMLElement(child, objectParts, values)); }, []);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { parse } from 'intl-messageformat-parser';\nimport memoizeIntlConstructor from 'intl-format-cache';\nimport { formatToString, formatToParts, formatHTMLMessage, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nexport function createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoizeIntlConstructor(Intl.NumberFormat, cache.number),\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat, cache.dateTime),\n getPluralRules: memoizeIntlConstructor(Intl.PluralRules, cache.pluralRules),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n var _this = this;\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n return formatToString(_this.ast, _this.locales, _this.formatters, _this.formats, values, _this.message);\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.formatHTMLMessage = function (values) {\n return formatHTMLMessage(_this.ast, _this.locales, _this.formatters, _this.formats, values, _this.message);\n };\n this.resolvedOptions = function () { return ({\n locale: Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n }); };\n this.getAst = function () { return _this.ast; };\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, {\n normalizeHashtagInPlural: false,\n });\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n IntlMessageFormat.defaultLocale = new Intl.NumberFormat().resolvedOptions().locale;\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\nexport default IntlMessageFormat;\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport IntlMessageFormat from './core';\nexport * from './formatters';\nexport * from './core';\nexport default IntlMessageFormat;\n","export function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n","/*\nHTML escaping is the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\nimport * as React from 'react';\nimport IntlMessageFormat from 'intl-messageformat';\nimport memoizeIntlConstructor from 'intl-format-cache';\nimport { invariant } from '@formatjs/intl-utils';\nconst ESCAPED_CHARS = {\n 38: '&',\n 62: '>',\n 60: '<',\n 34: '"',\n 39: ''',\n};\nconst UNSAFE_CHARS_REGEX = /[&><\"']/g;\nexport function escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, match => ESCAPED_CHARS[match.charCodeAt(0)]);\n}\nexport function filterProps(props, whitelist, defaults = {}) {\n return whitelist.reduce((filtered, name) => {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n ' needs to exist in the component ancestry.');\n}\nexport function createError(message, exception) {\n const eMsg = exception ? `\\n${exception.stack}` : '';\n return `[React Intl] ${message}${eMsg}`;\n}\nexport function defaultErrorHandler(error) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n}\nexport const DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n textComponent: React.Fragment,\n defaultLocale: 'en',\n defaultFormats: {},\n onError: defaultErrorHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {},\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache = createIntlCache()) {\n const RelativeTimeFormat = Intl.RelativeTimeFormat;\n const ListFormat = Intl.ListFormat;\n const DisplayNames = Intl.DisplayNames;\n return {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat, cache.dateTime),\n getNumberFormat: memoizeIntlConstructor(Intl.NumberFormat, cache.number),\n getMessageFormat: memoizeIntlConstructor(IntlMessageFormat, cache.message),\n getRelativeTimeFormat: memoizeIntlConstructor(RelativeTimeFormat, cache.relativeTime),\n getPluralRules: memoizeIntlConstructor(Intl.PluralRules, cache.pluralRules),\n getListFormat: memoizeIntlConstructor(ListFormat, cache.list),\n getDisplayNames: memoizeIntlConstructor(DisplayNames, cache.displayNames),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n const formatType = formats && formats[type];\n let format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(createError(`No ${type} format named: ${name}`));\n}\n","/** @license React v16.8.6\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import * as React from 'react';\nimport * as hoistNonReactStatics_ from 'hoist-non-react-statics';\n// Since rollup cannot deal with namespace being a function,\n// this is to interop with TypeScript since `invariant`\n// does not export a default\n// https://github.com/rollup/rollup/issues/1267\nconst hoistNonReactStatics = hoistNonReactStatics_.default || hoistNonReactStatics_;\nimport { invariantIntlContext } from '../utils';\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n// TODO: We should provide initial value here\nconst IntlContext = React.createContext(null);\nconst { Consumer: IntlConsumer, Provider: IntlProvider } = IntlContext;\nexport const Provider = IntlProvider;\nexport const Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n const { intlPropName = 'intl', forwardRef = false, enforceContext = true } = options || {};\n const WithIntl = props => (React.createElement(IntlConsumer, null, (intl) => {\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n return (React.createElement(WrappedComponent, Object.assign({}, props, {\n [intlPropName]: intl,\n }, { ref: forwardRef ? props.forwardedRef : null })));\n }));\n WithIntl.displayName = `injectIntl(${getDisplayName(WrappedComponent)})`;\n WithIntl.WrappedComponent = WrappedComponent;\n if (forwardRef) {\n return hoistNonReactStatics(React.forwardRef((props, ref) => (React.createElement(WithIntl, Object.assign({}, props, { forwardedRef: ref })))), WrappedComponent);\n }\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { invariantIntlContext } from '../utils';\nimport { Context } from './injectIntl';\nvar DisplayName;\n(function (DisplayName) {\n DisplayName[\"formatDate\"] = \"FormattedDate\";\n DisplayName[\"formatTime\"] = \"FormattedTime\";\n DisplayName[\"formatNumber\"] = \"FormattedNumber\";\n DisplayName[\"formatList\"] = \"FormattedList\";\n // Note that this DisplayName is the locale display name, not to be confused with\n // the name of the enum, which is for React component display name in dev tools.\n DisplayName[\"formatDisplayName\"] = \"FormattedDisplayName\";\n})(DisplayName || (DisplayName = {}));\nvar DisplayNameParts;\n(function (DisplayNameParts) {\n DisplayNameParts[\"formatDate\"] = \"FormattedDateParts\";\n DisplayNameParts[\"formatTime\"] = \"FormattedTimeParts\";\n DisplayNameParts[\"formatNumber\"] = \"FormattedNumberParts\";\n DisplayNameParts[\"formatList\"] = \"FormattedListParts\";\n})(DisplayNameParts || (DisplayNameParts = {}));\nexport const FormattedNumberParts = props => (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { value, children } = props, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatNumberToParts(value, formatProps));\n}));\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport function createFormattedDateTimePartsComponent(name) {\n const ComponentParts = props => (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { value, children } = props, formatProps = __rest(props, [\"value\", \"children\"]);\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n const formattedParts = name === 'formatDate'\n ? intl.formatDateToParts(date, formatProps)\n : intl.formatTimeToParts(date, formatProps);\n return children(formattedParts);\n }));\n ComponentParts.displayName = DisplayNameParts[name];\n return ComponentParts;\n}\nexport function createFormattedComponent(name) {\n const Component = props => (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { value, children } = props, formatProps = __rest(props, [\"value\", \"children\"]);\n // TODO: fix TS type definition for localeMatcher upstream\n const formattedValue = intl[name](value, formatProps);\n if (typeof children === 'function') {\n return children(formattedValue);\n }\n const Text = intl.textComponent || React.Fragment;\n return React.createElement(Text, null, formattedValue);\n }));\n Component.displayName = DisplayName[name];\n return Component;\n}\n","import { useContext } from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nexport default function useIntl() {\n const intl = useContext(Context);\n invariantIntlContext(intl);\n return intl;\n}\n","import { getNamedFormat, filterProps, createError } from '../utils';\nconst NUMBER_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'style',\n 'currency',\n 'currencyDisplay',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n // Unified NumberFormat (Stage 3 as of 10/22/19)\n 'compactDisplay',\n 'currencyDisplay',\n 'currencySign',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n];\nexport function getFormatter({ locale, formats, onError, }, getNumberFormat, options = {}) {\n const { format } = options;\n const defaults = ((format &&\n getNamedFormat(formats, 'number', format, onError)) ||\n {});\n const filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options = {}) {\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n }\n catch (e) {\n config.onError(createError('Error formatting number.', e));\n }\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options = {}) {\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n }\n catch (e) {\n config.onError(createError('Error formatting number.', e));\n }\n return [];\n}\n","import { getNamedFormat, filterProps, createError } from '../utils';\nconst RELATIVE_TIME_FORMAT_OPTIONS = [\n 'numeric',\n 'style',\n];\nfunction getFormatter({ locale, formats, onError, }, getRelativeTimeFormat, options = {}) {\n const { format } = options;\n const defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n const filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options = {}) {\n if (!unit) {\n unit = 'second';\n }\n const RelativeTimeFormat = Intl.RelativeTimeFormat;\n if (!RelativeTimeFormat) {\n config.onError(createError(`Intl.RelativeTimeFormat is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-relativetimeformat\"\n`));\n }\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n }\n catch (e) {\n config.onError(createError('Error formatting relative time.', e));\n }\n return String(value);\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { createError, filterProps, getNamedFormat } from '../utils';\nconst DATE_TIME_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'formatMatcher',\n 'timeZone',\n 'hour12',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n];\nexport function getFormatter({ locale, formats, onError, timeZone, }, type, getDateTimeFormat, options = {}) {\n const { format } = options;\n const defaults = Object.assign(Object.assign({}, (timeZone && { timeZone })), (format && getNamedFormat(formats, type, format, onError)));\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n if (type === 'time' &&\n !filteredOptions.hour &&\n !filteredOptions.minute &&\n !filteredOptions.second) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = Object.assign(Object.assign({}, filteredOptions), { hour: 'numeric', minute: 'numeric' });\n }\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(createError('Error formatting date.', e));\n }\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(createError('Error formatting time.', e));\n }\n return String(date);\n}\nexport function formatDateToParts(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).formatToParts(date);\n }\n catch (e) {\n config.onError(createError('Error formatting date.', e));\n }\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).formatToParts(date);\n }\n catch (e) {\n config.onError(createError('Error formatting time.', e));\n }\n return [];\n}\n","import { filterProps, createError } from '../utils';\nconst PLURAL_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n];\nexport function formatPlural({ locale, onError }, getPluralRules, value, options = {}) {\n if (!Intl.PluralRules) {\n onError(createError(`Intl.PluralRules is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-pluralrules\"\n`));\n }\n const filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n }\n catch (e) {\n onError(createError('Error formatting plural.', e));\n }\n return 'other';\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport { invariant } from '@formatjs/intl-utils';\nimport { createError, escape } from '../utils';\nimport IntlMessageFormat from 'intl-messageformat';\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce((all, k) => {\n all[k] = Object.assign({ timeZone }, opts[k]);\n return all;\n }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n const keys = Object.keys(Object.assign(Object.assign({}, opts1), opts2));\n return keys.reduce((all, k) => {\n all[k] = Object.assign(Object.assign({}, (opts1[k] || {})), (opts2[k] || {}));\n return all;\n }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n const mfFormats = IntlMessageFormat.formats;\n return Object.assign(Object.assign(Object.assign({}, mfFormats), f1), { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });\n}\nexport const prepareIntlMessageFormatHtmlOutput = (chunks) => React.createElement(React.Fragment, null, ...chunks);\nexport function formatMessage({ locale, formats, messages, defaultLocale, defaultFormats, onError, timeZone, }, state, messageDescriptor = { id: '' }, values = {}) {\n const { id, defaultMessage } = messageDescriptor;\n // `id` is a required field of a Message Descriptor.\n invariant(!!id, '[React Intl] An `id` must be provided to format a message.');\n const message = messages && messages[String(id)];\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n let formattedMessageParts = [];\n if (message) {\n try {\n const formatter = state.getMessageFormat(message, locale, formats, {\n formatters: state,\n });\n formattedMessageParts = formatter.formatHTMLMessage(values);\n }\n catch (e) {\n onError(createError(`Error formatting message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : ''), e));\n }\n }\n else {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale, and a default message is in the source.\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n onError(createError(`Missing message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '')));\n }\n }\n if (!formattedMessageParts.length && defaultMessage) {\n try {\n const formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n formattedMessageParts = formatter.formatHTMLMessage(values);\n }\n catch (e) {\n onError(createError(`Error formatting the default message for: \"${id}\"`, e));\n }\n }\n if (!formattedMessageParts.length) {\n onError(createError(`Cannot format message: \"${id}\", ` +\n `using message ${message || defaultMessage ? 'source' : 'id'} as fallback.`));\n if (typeof message === 'string') {\n return message || defaultMessage || String(id);\n }\n return defaultMessage || String(id);\n }\n if (formattedMessageParts.length === 1 &&\n typeof formattedMessageParts[0] === 'string') {\n return formattedMessageParts[0] || defaultMessage || String(id);\n }\n return prepareIntlMessageFormatHtmlOutput(formattedMessageParts);\n}\nexport function formatHTMLMessage(config, state, messageDescriptor = { id: '' }, rawValues = {}) {\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n const escapedValues = Object.keys(rawValues).reduce((escaped, name) => {\n const value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n","'use strict';\n\nfunction shallowEqualObjects(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (!objA || !objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n\n if (bKeys.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqualObjects;\n","import { filterProps, createError } from '../utils';\nconst LIST_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n 'style',\n];\nconst now = Date.now();\nfunction generateToken(i) {\n return `${now}_${i}_${now}`;\n}\nexport function formatList({ locale, onError }, getListFormat, values, options = {}) {\n const ListFormat = Intl.ListFormat;\n if (!ListFormat) {\n onError(createError(`Intl.ListFormat is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-listformat\"\n`));\n }\n const filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n try {\n const richValues = {};\n const serializedValues = values.map((v, i) => {\n if (typeof v === 'object') {\n const id = generateToken(i);\n richValues[id] = v;\n return id;\n }\n return String(v);\n });\n if (!Object.keys(richValues).length) {\n return getListFormat(locale, filteredOptions).format(serializedValues);\n }\n const parts = getListFormat(locale, filteredOptions).formatToParts(serializedValues);\n return parts.reduce((all, el) => {\n const val = el.value;\n if (richValues[val]) {\n all.push(richValues[val]);\n }\n else if (typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += val;\n }\n else {\n all.push(val);\n }\n return all;\n }, []);\n }\n catch (e) {\n onError(createError('Error formatting list.', e));\n }\n return values;\n}\n","import { filterProps, createError } from '../utils';\nconst DISPLAY_NAMES_OPTONS = [\n 'localeMatcher',\n 'style',\n 'type',\n 'fallback',\n];\nexport function formatDisplayName({ locale, onError }, getDisplayNames, value, options = {}) {\n const DisplayNames = Intl.DisplayNames;\n if (!DisplayNames) {\n onError(createError(`Intl.DisplayNames is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-displaynames\"\n`));\n }\n const filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n try {\n return getDisplayNames(locale, filteredOptions).of(value);\n }\n catch (e) {\n onError(createError('Error formatting display name.', e));\n }\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport { Provider } from './injectIntl';\nimport { createError, DEFAULT_INTL_CONFIG, createFormatters, invariantIntlContext, createIntlCache, } from '../utils';\nimport { formatNumber, formatNumberToParts } from '../formatters/number';\nimport { formatRelativeTime } from '../formatters/relativeTime';\nimport { formatDate, formatTime, formatDateToParts, formatTimeToParts, } from '../formatters/dateTime';\nimport { formatPlural } from '../formatters/plural';\nimport { formatMessage, formatHTMLMessage } from '../formatters/message';\nimport * as shallowEquals_ from 'shallow-equal/objects';\nimport { formatList } from '../formatters/list';\nimport { formatDisplayName } from '../formatters/displayName';\nconst shallowEquals = shallowEquals_.default || shallowEquals_;\nfunction processIntlConfig(config) {\n return {\n locale: config.locale,\n timeZone: config.timeZone,\n formats: config.formats,\n textComponent: config.textComponent,\n messages: config.messages,\n defaultLocale: config.defaultLocale,\n defaultFormats: config.defaultFormats,\n onError: config.onError,\n };\n}\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport function createIntl(config, cache) {\n const formatters = createFormatters(cache);\n const resolvedConfig = Object.assign(Object.assign({}, DEFAULT_INTL_CONFIG), config);\n const { locale, defaultLocale, onError } = resolvedConfig;\n if (!locale) {\n if (onError) {\n onError(createError(`\"locale\" was not configured, using \"${defaultLocale}\" as fallback. See https://github.com/formatjs/react-intl/blob/master/docs/API.md#intlshape for more details`));\n }\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each contains a `defaultMessage` prop.\n resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';\n }\n else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {\n onError(createError(`Missing locale data for locale: \"${locale}\" in Intl.NumberFormat. Using default locale: \"${defaultLocale}\" as fallback. See https://github.com/formatjs/react-intl/blob/master/docs/Getting-Started.md#runtime-requirements for more details`));\n }\n else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&\n onError) {\n onError(createError(`Missing locale data for locale: \"${locale}\" in Intl.DateTimeFormat. Using default locale: \"${defaultLocale}\" as fallback. See https://github.com/formatjs/react-intl/blob/master/docs/Getting-Started.md#runtime-requirements for more details`));\n }\n return Object.assign(Object.assign({}, resolvedConfig), { formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), formatMessage: formatMessage.bind(null, resolvedConfig, formatters), formatHTMLMessage: formatHTMLMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });\n}\nexport default class IntlProvider extends React.PureComponent {\n constructor() {\n super(...arguments);\n this.cache = createIntlCache();\n this.state = {\n cache: this.cache,\n intl: createIntl(processIntlConfig(this.props), this.cache),\n prevConfig: processIntlConfig(this.props),\n };\n }\n static getDerivedStateFromProps(props, { prevConfig, cache }) {\n const config = processIntlConfig(props);\n if (!shallowEquals(prevConfig, config)) {\n return {\n intl: createIntl(config, cache),\n prevConfig: config,\n };\n }\n return null;\n }\n render() {\n invariantIntlContext(this.state.intl);\n return React.createElement(Provider, { value: this.state.intl }, this.props.children);\n }\n}\nIntlProvider.displayName = 'IntlProvider';\nIntlProvider.defaultProps = DEFAULT_INTL_CONFIG;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nimport { invariant } from '@formatjs/intl-utils';\nconst MINUTE = 60;\nconst HOUR = 60 * 60;\nconst DAY = 60 * 60 * 24;\nfunction selectUnit(seconds) {\n const absValue = Math.abs(seconds);\n if (absValue < MINUTE) {\n return 'second';\n }\n if (absValue < HOUR) {\n return 'minute';\n }\n if (absValue < DAY) {\n return 'hour';\n }\n return 'day';\n}\nfunction getDurationInSeconds(unit) {\n switch (unit) {\n case 'second':\n return 1;\n case 'minute':\n return MINUTE;\n case 'hour':\n return HOUR;\n default:\n return DAY;\n }\n}\nfunction valueToSeconds(value, unit) {\n if (!value) {\n return 0;\n }\n switch (unit) {\n case 'second':\n return value;\n case 'minute':\n return value * MINUTE;\n default:\n return value * HOUR;\n }\n}\nconst INCREMENTABLE_UNITS = ['second', 'minute', 'hour'];\nfunction canIncrement(unit = 'second') {\n return INCREMENTABLE_UNITS.includes(unit);\n}\nexport class FormattedRelativeTime extends React.PureComponent {\n constructor(props) {\n super(props);\n // Public for testing\n this._updateTimer = null;\n this.state = {\n prevUnit: this.props.unit,\n prevValue: this.props.value,\n currentValueInSeconds: canIncrement(this.props.unit)\n ? valueToSeconds(this.props.value, this.props.unit)\n : 0,\n };\n invariant(!props.updateIntervalInSeconds ||\n !!(props.updateIntervalInSeconds && canIncrement(props.unit)), 'Cannot schedule update with unit longer than hour');\n }\n scheduleNextUpdate({ updateIntervalInSeconds, unit }, { currentValueInSeconds }) {\n clearTimeout(this._updateTimer);\n this._updateTimer = null;\n // If there's no interval and we cannot increment this unit, do nothing\n if (!updateIntervalInSeconds || !canIncrement(unit)) {\n return;\n }\n // Figure out the next interesting time\n const nextValueInSeconds = currentValueInSeconds - updateIntervalInSeconds;\n const nextUnit = selectUnit(nextValueInSeconds);\n // We've reached the max auto incrementable unit, don't schedule another update\n if (nextUnit === 'day') {\n return;\n }\n const unitDuration = getDurationInSeconds(nextUnit);\n const remainder = nextValueInSeconds % unitDuration;\n const prevInterestingValueInSeconds = nextValueInSeconds - remainder;\n const nextInterestingValueInSeconds = prevInterestingValueInSeconds >= currentValueInSeconds\n ? prevInterestingValueInSeconds - unitDuration\n : prevInterestingValueInSeconds;\n const delayInSeconds = Math.abs(nextInterestingValueInSeconds - currentValueInSeconds);\n this._updateTimer = setTimeout(() => this.setState({\n currentValueInSeconds: nextInterestingValueInSeconds,\n }), delayInSeconds * 1e3);\n }\n componentDidMount() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n componentDidUpdate() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n componentWillUnmount() {\n clearTimeout(this._updateTimer);\n this._updateTimer = null;\n }\n static getDerivedStateFromProps(props, state) {\n if (props.unit !== state.prevUnit || props.value !== state.prevValue) {\n return {\n prevValue: props.value,\n prevUnit: props.unit,\n currentValueInSeconds: canIncrement(props.unit)\n ? valueToSeconds(props.value, props.unit)\n : 0,\n };\n }\n return null;\n }\n render() {\n return (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { formatRelativeTime, textComponent: Text } = intl;\n const { children, value, unit, updateIntervalInSeconds } = this.props;\n const { currentValueInSeconds } = this.state;\n let currentValue = value || 0;\n let currentUnit = unit;\n if (canIncrement(unit) &&\n typeof currentValueInSeconds === 'number' &&\n updateIntervalInSeconds) {\n currentUnit = selectUnit(currentValueInSeconds);\n const unitDuration = getDurationInSeconds(currentUnit);\n currentValue = Math.round(currentValueInSeconds / unitDuration);\n }\n const formattedRelativeTime = formatRelativeTime(currentValue, currentUnit, Object.assign({}, this.props));\n if (typeof children === 'function') {\n return children(formattedRelativeTime);\n }\n if (Text) {\n return React.createElement(Text, null, formattedRelativeTime);\n }\n return formattedRelativeTime;\n }));\n }\n}\nFormattedRelativeTime.displayName = 'FormattedRelativeTime';\nFormattedRelativeTime.defaultProps = {\n value: 0,\n unit: 'second',\n};\nexport default FormattedRelativeTime;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport withIntl from './injectIntl';\nconst FormattedPlural = props => {\n const { value, other, children, intl: { formatPlural, textComponent: Text }, } = props;\n const pluralCategory = formatPlural(value, props);\n const formattedPlural = props[pluralCategory] || other;\n if (typeof children === 'function') {\n return children(formattedPlural);\n }\n if (Text) {\n return React.createElement(Text, null, formattedPlural);\n }\n // Work around @types/react where React.FC cannot return string\n return formattedPlural;\n};\nFormattedPlural.defaultProps = {\n type: 'cardinal',\n};\nFormattedPlural.displayName = 'FormattedPlural';\nexport default withIntl(FormattedPlural);\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { Context } from './injectIntl';\nimport { formatMessage } from '../formatters/message';\nimport { invariantIntlContext, DEFAULT_INTL_CONFIG, createFormatters, } from '../utils';\nimport * as shallowEquals_ from 'shallow-equal/objects';\nconst shallowEquals = shallowEquals_.default || shallowEquals_;\nconst defaultFormatMessage = (descriptor, values) => {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Could not find required `intl` object. needs to exist in the component ancestry. Using default message as fallback.');\n }\n return formatMessage(Object.assign(Object.assign({}, DEFAULT_INTL_CONFIG), { locale: 'en' }), createFormatters(), descriptor, values);\n};\nclass FormattedMessage extends React.Component {\n shouldComponentUpdate(nextProps) {\n const _a = this.props, { values } = _a, otherProps = __rest(_a, [\"values\"]);\n const { values: nextValues } = nextProps, nextOtherProps = __rest(nextProps, [\"values\"]);\n return (!shallowEquals(nextValues, values) ||\n !shallowEquals(otherProps, nextOtherProps));\n }\n render() {\n return (React.createElement(Context.Consumer, null, (intl) => {\n if (!this.props.defaultMessage) {\n invariantIntlContext(intl);\n }\n const { formatMessage = defaultFormatMessage, textComponent: Text = React.Fragment, } = intl || {};\n const { id, description, defaultMessage, values, children, tagName: Component = Text, } = this.props;\n const descriptor = { id, description, defaultMessage };\n let nodes = formatMessage(descriptor, values);\n if (!Array.isArray(nodes)) {\n nodes = [nodes];\n }\n if (typeof children === 'function') {\n return children(...nodes);\n }\n if (Component) {\n // Needs to use `createElement()` instead of JSX, otherwise React will\n // warn about a missing `key` prop with rich-text message formatting.\n return React.createElement(Component, null, ...nodes);\n }\n return nodes;\n }));\n }\n}\nFormattedMessage.displayName = 'FormattedMessage';\nFormattedMessage.defaultProps = {\n values: {},\n};\nexport default FormattedMessage;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport FormattedMessage from './message';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nclass FormattedHTMLMessage extends FormattedMessage {\n render() {\n return (React.createElement(Context.Consumer, null, (intl) => {\n if (!this.props.defaultMessage) {\n invariantIntlContext(intl);\n }\n const { formatHTMLMessage, textComponent } = intl;\n const { id, description, defaultMessage, values: rawValues, children, } = this.props;\n let { tagName: Component } = this.props;\n // This is bc of TS3.3 doesn't recognize `defaultProps`\n if (!Component) {\n Component = textComponent || 'span';\n }\n const descriptor = { id, description, defaultMessage };\n const formattedHTMLMessage = formatHTMLMessage(descriptor, rawValues);\n if (typeof children === 'function') {\n return children(formattedHTMLMessage);\n }\n // Since the message presumably has HTML in it, we need to set\n // `innerHTML` in order for it to be rendered and not escaped by React.\n // To be safe, all string prop values were escaped when formatting the\n // message. It is assumed that the message is not UGC, and came from the\n // developer making it more like a template.\n //\n // Note: There's a perf impact of using this component since there's no\n // way for React to do its virtual DOM diffing.\n const html = { __html: formattedHTMLMessage };\n return React.createElement(Component, { dangerouslySetInnerHTML: html });\n }));\n }\n}\nFormattedHTMLMessage.displayName = 'FormattedHTMLMessage';\nFormattedHTMLMessage.defaultProps = Object.assign(Object.assign({}, FormattedMessage.defaultProps), { tagName: 'span' });\nexport default FormattedHTMLMessage;\n","export function defineMessages(msgs) {\n return msgs;\n}\nimport { createFormattedComponent, createFormattedDateTimePartsComponent, } from './components/createFormattedComponent';\nexport { default as injectIntl, Provider as RawIntlProvider, Context as IntlContext, } from './components/injectIntl';\nexport { default as useIntl } from './components/useIntl';\nexport { default as IntlProvider, createIntl } from './components/provider';\n// IMPORTANT: Explicit here to prevent api-extractor from outputing `import('./types').CustomFormatConfig`\nexport const FormattedDate = createFormattedComponent('formatDate');\nexport const FormattedTime = createFormattedComponent('formatTime');\nexport const FormattedNumber = createFormattedComponent('formatNumber');\nexport const FormattedList = createFormattedComponent('formatList');\nexport const FormattedDisplayName = createFormattedComponent('formatDisplayName');\nexport const FormattedDateParts = createFormattedDateTimePartsComponent('formatDate');\nexport const FormattedTimeParts = createFormattedDateTimePartsComponent('formatTime');\nexport { FormattedNumberParts } from './components/createFormattedComponent';\nexport { default as FormattedRelativeTime } from './components/relative';\nexport { default as FormattedPlural } from './components/plural';\nexport { default as FormattedMessage } from './components/message';\nexport { default as FormattedHTMLMessage } from './components/html-message';\nexport { createIntlCache } from './utils';\n"],"names":["TYPE","isLiteralElement","el","type","literal","isArgumentElement","argument","isNumberElement","number","isDateElement","date","isTimeElement","time","isSelectElement","select","isPluralElement","plural","isPoundElement","pound","isNumberSkeleton","isDateTimeSkeleton","__extends","this","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","SyntaxError","_super","message","expected","found","location","_this","name","Error","captureStackTrace","buildMessage","hex","ch","charCodeAt","toString","toUpperCase","literalEscape","replace","classEscape","describeExpectation","expectation","text","escapedParts","parts","map","part","isArray","inverted","description","describeExpected","expected1","descriptions","j","sort","slice","join","describeFound","found1","peg$parse","input","options","undefined","peg$FAILED","peg$startRuleFunctions","start","peg$parsestart","peg$startRuleFunction","peg$c0","peg$c1","messageText","value","insertLocation","peg$c2","peg$c3","peg$literalExpectation","peg$c4","peg$c5","peg$otherExpectation","peg$c6","peg$c7","peg$c8","peg$c9","peg$c10","peg$c11","peg$c12","peg$c13","peg$classExpectation","peg$c14","peg$anyExpectation","peg$c15","peg$c16","peg$c17","peg$c18","option","peg$c19","peg$c20","stem","peg$c21","tokens","peg$c22","peg$c23","peg$c24","skeleton","peg$c25","messageCtx","push","peg$c26","style","pop","peg$c27","peg$c28","peg$c29","peg$c30","peg$c31","peg$c32","peg$c33","peg$c34","peg$c35","peg$c36","peg$c37","peg$c38","peg$c39","peg$c40","pattern","peg$c41","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","peg$c48","peg$c49","peg$c50","peg$c51","peg$c52","pluralType","offset","reduce","all","_a","id","optionLocation","error","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$c67","peg$c68","peg$c69","peg$c70","peg$c71","peg$c72","negative","num","peg$c74","peg$c75","peg$c76","peg$c77","peg$c78","escapedChar","quotedChars","peg$c79","x","isInPluralOption","isNestedMessageText","peg$c80","peg$c81","peg$c82","peg$c83","peg$c84","peg$c85","peg$c86","peg$c87","peg$c88","peg$c89","peg$c90","peg$c91","peg$c92","digits","parseInt","peg$c93","peg$currPos","peg$savedPos","peg$posDetailsCache","line","column","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","peg$result","startRule","substring","peg$computeLocation","location1","peg$buildSimpleError","text1","ignoreCase","peg$endExpectation","peg$computePosDetails","pos","details","startPos","endPos","startPosDetails","endPosDetails","end","peg$fail","peg$buildStructuredError","s0","peg$parsemessage","s1","peg$parsemessageElement","peg$parseliteralElement","peg$parseargumentElement","peg$parsesimpleFormatElement","peg$parsepluralElement","peg$parseselectElement","peg$parsepoundElement","peg$parsemessageText","s2","peg$parsedoubleApostrophes","peg$parsequotedString","peg$parseunquotedString","s3","s4","s5","peg$parse_","peg$parseargNameOrNumber","peg$parsenumberSkeletonId","peg$parsewhiteSpace","test","charAt","peg$parsenumberSkeletonTokenOption","peg$parsenumberSkeletonToken","peg$parsenumberSkeleton","peg$parsenumberArgStyle","substr","peg$parsenumberFormatElement","s6","s7","s8","s9","s10","s11","s12","peg$parsedateTimeSkeletonLiteral","peg$parsedateTimeSkeletonPattern","peg$parsedateTimeSkeleton","peg$parsedateOrTimeArgStyle","peg$parsedateOrTimeFormatElement","s13","s14","s15","peg$parsenumber","peg$parsepluralOption","peg$parseselectOption","peg$parsepluralRuleSelectValue","peg$parseargName","peg$parsepatternSyntax","peg$parseargNumber","peg$parseescapedChar","captureLocation","pegParse","__spreadArrays","il","r","k","a","jl","PLURAL_HASHTAG_REGEX","normalizeHashtagInPlural","els","forEach","keys","opt","matchingLiteralElIndex","literalEl","el_1","newValue","newEls","splice","DATE_TIME_REGEX","parseDateTimeSkeleton","result","match","len","era","year","RangeError","month","day","weekday","hour12","hourCycle","hour","minute","second","timeZoneName","icuUnitToEcma","unit","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","parseSignificantPrecision","str","_","g1","g2","minimumSignificantDigits","maximumSignificantDigits","parseSign","signDisplay","currencySign","parseNotationOptions","signOpts","convertNumberSkeletonToNumberFormatOptions","_i","tokens_1","token","currency","useGrouping","maximumFractionDigits","notation","compactDisplay","currencyDisplay","unitDisplay","minimumFractionDigits","parse","opts","getCacheId","inputs","JSON","stringify","orderedProps","obj","memoizeFormatConstructor","FormatConstructor","cache","args","cacheId","format","bind","FormatError","msg","variableId","mergeLiteral","lastPart","formatToParts","locales","formatters","formats","values","currentPluralValue","originalMessage","els_1","getNumberFormat","varName","String","getDateTimeFormat","other","Intl","PluralRules","rule","getPluralRules","formatToString","domParser","TOKEN_DELIMITER","TOKEN_REGEX","counter","generateId","Date","now","restoreRichPlaceholderMessage","objectParts","split","filter","Boolean","c","SIMPLE_XML_REGEX","TEMPLATE_ID","VOID_ELEMENTS","formatHTMLElement","tagName","outerHTML","textContent","childNodes","toLowerCase","isVoidElement","indexOf","formatFnOrValue","chunks","child","concat","formatHTMLMessage","formattedMessage","DOMParser","content","parseFromString","getElementById","tagsToFormat","getElementsByTagName","caseSensitiveTags","mergeConfig","c1","c2","mergeConfigs","defaultConfig","configs","createDefaultFormatters","dateTime","pluralRules","memoizeIntlConstructor","NumberFormat","DateTimeFormat","IntlMessageFormat","overrideFormats","defaultLocale","formatterCache","ast","resolvedOptions","locale","supportedLocalesOf","getAst","__parse","TypeError","percent","short","medium","long","full","invariant","condition","Err","ESCAPED_CHARS","UNSAFE_CHARS_REGEX","escape","filterProps","props","whitelist","defaults","filtered","invariantIntlContext","intl","createError","exception","eMsg","stack","defaultErrorHandler","console","DEFAULT_INTL_CONFIG","messages","timeZone","textComponent","React","defaultFormats","onError","createIntlCache","relativeTime","list","displayNames","createFormatters","RelativeTimeFormat","ListFormat","DisplayNames","getMessageFormat","getRelativeTimeFormat","getListFormat","getDisplayNames","getNamedFormat","formatType","defineProperty","exports","hasSymbol","Symbol","for","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","isValidElementType","$$typeof","lowPriorityWarning","printWarning","_len","_key","argIndex","warn","_len2","_key2","lowPriorityWarning$1","typeOf","object","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","module","require$$0","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","FORWARD_REF_STATICS","render","MEMO_STATICS","compare","TYPE_STATICS","reactIs","getStatics","component","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","key","descriptor","e","hoistNonReactStatics_","getDisplayName","Component","IntlContext","IntlConsumer","Consumer","IntlProvider","Provider","Context","injectIntl","WrappedComponent","intlPropName","forwardRef","enforceContext","WithIntl","ref","forwardedRef","__rest","propertyIsEnumerable","DisplayName","DisplayNameParts","FormattedNumberParts","children","formatProps","formatNumberToParts","createFormattedDateTimePartsComponent","ComponentParts","formattedParts","formatDateToParts","formatTimeToParts","createFormattedComponent","formattedValue","Text","useIntl","useContext","NUMBER_FORMAT_OPTIONS","getFormatter","filteredOptions","formatNumber","config","RELATIVE_TIME_FORMAT_OPTIONS","formatRelativeTime","DATE_TIME_FORMAT_OPTIONS","formatDate","formatTime","PLURAL_FORMAT_OPTIONS","formatPlural","setTimeZoneInOptions","deepMergeOptions","opts1","opts2","deepMergeFormatsAndSetTimeZone","f1","mfFormats","prepareIntlMessageFormatHtmlOutput","formatMessage","state","messageDescriptor","defaultMessage","formattedMessageParts","formatter","rawValues","escapedValues","escaped","shallowEqualObjects","objA","objB","aKeys","bKeys","LIST_FORMAT_OPTIONS","generateToken","formatList","richValues","serializedValues","v","val","DISPLAY_NAMES_OPTONS","formatDisplayName","of","shallowEquals","shallowEquals_","processIntlConfig","createIntl","resolvedConfig","prevConfig","MINUTE","HOUR","DAY","selectUnit","seconds","absValue","Math","abs","getDurationInSeconds","valueToSeconds","INCREMENTABLE_UNITS","canIncrement","includes","FormattedRelativeTime","_updateTimer","prevUnit","prevValue","currentValueInSeconds","updateIntervalInSeconds","clearTimeout","nextValueInSeconds","nextUnit","unitDuration","remainder","prevInterestingValueInSeconds","nextInterestingValueInSeconds","delayInSeconds","setTimeout","setState","scheduleNextUpdate","currentValue","currentUnit","round","formattedRelativeTime","FormattedPlural","pluralCategory","formattedPlural","withIntl","defaultFormatMessage","FormattedMessage","nextProps","otherProps","nextValues","nextOtherProps","nodes","FormattedHTMLMessage","formattedHTMLMessage","html","__html","dangerouslySetInnerHTML","defineMessages","msgs","FormattedDate","FormattedTime","FormattedNumber","FormattedList","FormattedDisplayName","FormattedDateParts","FormattedTimeParts"],"mappings":"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"}