@everymatrix/casino-search 0.0.343
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/dist/casino-search.js +16014 -0
- package/dist/casino-search.js.map +1 -0
- package/index.html +100 -0
- package/index.js +1 -0
- package/package.json +40 -0
- package/public/favicon.png +0 -0
- package/public/reset.css +48 -0
- package/rollup.config.js +59 -0
- package/src/CasinoSearch.svelte +402 -0
- package/src/i18n.js +27 -0
- package/src/index.ts +4 -0
- package/src/translations.js +167 -0
- package/stories/CasinoSearch.stories.js +13 -0
- package/tsconfig.json +6 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"casino-search.js","sources":["../../../node_modules/svelte/internal/index.mjs","../../../node_modules/svelte/store/index.mjs","../../../node_modules/deepmerge/dist/cjs.js","../../../node_modules/tslib/tslib.es6.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../../../node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../../../node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../../../node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../../../node_modules/@formatjs/fast-memoize/lib/index.js","../../../node_modules/intl-messageformat/lib/src/error.js","../../../node_modules/intl-messageformat/lib/src/formatters.js","../../../node_modules/intl-messageformat/lib/src/core.js","../../../node_modules/intl-messageformat/lib/index.js","../../../node_modules/svelte-i18n/dist/runtime.esm.js","../src/i18n.js","../src/translations.js","../../../node_modules/whatwg-fetch/fetch.js","../../../node_modules/isomorphic-fetch/fetch-npm-browserify.js","../../../node_modules/rvhelper/node_modules/rxjs/node_modules/tslib/tslib.es6.js","../../../node_modules/rvhelper/node_modules/rxjs/dist/esm5/internal/util/isFunction.js","../../../node_modules/rvhelper/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","../../../node_modules/rvhelper/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","../../../node_modules/rvhelper/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","../../../node_modules/rvhelper/node_modules/rxjs/dist/esm5/internal/Subscription.js","../../../node_modules/rvhelper/node_modules/rxjs/dist/esm5/internal/config.js","../../../node_modules/rvhelper/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","../../../node_modules/rvhelper/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","../../../node_modules/rvhelper/node_modules/rxjs/dist/esm5/internal/util/noop.js","../../../node_modules/rvhelper/node_modules/rxjs/dist/esm5/internal/util/errorContext.js","../../../node_modules/rvhelper/node_modules/rxjs/dist/esm5/internal/Subscriber.js","../../../node_modules/rvhelper/node_modules/rxjs/dist/esm5/internal/symbol/observable.js","../../../node_modules/rvhelper/node_modules/rxjs/dist/esm5/internal/util/identity.js","../../../node_modules/rvhelper/node_modules/rxjs/dist/esm5/internal/util/pipe.js","../../../node_modules/rvhelper/node_modules/rxjs/dist/esm5/internal/Observable.js","../../../node_modules/rvhelper/node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","../../../node_modules/rvhelper/node_modules/rxjs/dist/esm5/internal/Subject.js","../../../node_modules/rvhelper/node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js","../../../node_modules/rvhelper/node_modules/rxjs/dist/esm5/internal/ReplaySubject.js","../../../node_modules/rvhelper/communication.js","../../../node_modules/rvhelper/index.js","../../../node_modules/moment/moment.js","../../casino-game-thumbnail/src/i18n.js","../../casino-game-thumbnail/src/translations.js","../../casino-game-thumbnail/src/currency-symbols.ts","../../casino-game-thumbnail/src/CasinoGameThumbnail.svelte","../../casino-game-thumbnail/src/index.ts","../src/CasinoSearch.svelte","../src/index.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not <head>\n let children = target.childNodes;\n // If target is <head>, there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentElement !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,<script>onresize=function(){parent.postMessage(0,'*')}</script>\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { stylesheet } = info;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n info.rules = {};\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'ismap',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst escaped = {\n '\"': '"',\n \"'\": ''',\n '&': '&',\n '<': '<',\n '>': '>'\n};\nfunction escape(html) {\n return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction escape_attribute_value(value) {\n return typeof value === 'string' ? escape(value) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape_attribute_value(value.toString())}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.48.0' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error('<svelte:element> expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n throw new Error(`<svelte:element this=\"${tag}\"> is self-closing and cannot have content.`);\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * <script lang=\"ts\">\n * \timport { MyComponent } from \"component-library\";\n * </script>\n * <MyComponent foo={'bar'} />\n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `<bold!>foo</bold!>) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo</123>`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `<bold>foo</italic>`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `<bold>foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","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 /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_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 isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.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","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\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) patterns 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) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\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 case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\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 parseNumberSkeleton(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 case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\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 case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\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 (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\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 var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","// @generated from time-data-gen.ts\n// prettier-ignore \nexport var timeData = {\n \"AX\": [\n \"H\"\n ],\n \"BQ\": [\n \"H\"\n ],\n \"CP\": [\n \"H\"\n ],\n \"CZ\": [\n \"H\"\n ],\n \"DK\": [\n \"H\"\n ],\n \"FI\": [\n \"H\"\n ],\n \"ID\": [\n \"H\"\n ],\n \"IS\": [\n \"H\"\n ],\n \"ML\": [\n \"H\"\n ],\n \"NE\": [\n \"H\"\n ],\n \"RU\": [\n \"H\"\n ],\n \"SE\": [\n \"H\"\n ],\n \"SJ\": [\n \"H\"\n ],\n \"SK\": [\n \"H\"\n ],\n \"AS\": [\n \"h\",\n \"H\"\n ],\n \"BT\": [\n \"h\",\n \"H\"\n ],\n \"DJ\": [\n \"h\",\n \"H\"\n ],\n \"ER\": [\n \"h\",\n \"H\"\n ],\n \"GH\": [\n \"h\",\n \"H\"\n ],\n \"IN\": [\n \"h\",\n \"H\"\n ],\n \"LS\": [\n \"h\",\n \"H\"\n ],\n \"PG\": [\n \"h\",\n \"H\"\n ],\n \"PW\": [\n \"h\",\n \"H\"\n ],\n \"SO\": [\n \"h\",\n \"H\"\n ],\n \"TO\": [\n \"h\",\n \"H\"\n ],\n \"VU\": [\n \"h\",\n \"H\"\n ],\n \"WS\": [\n \"h\",\n \"H\"\n ],\n \"001\": [\n \"H\",\n \"h\"\n ],\n \"AL\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"TD\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"ca-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"fr-CA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gl-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-CH\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-IT\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"LU\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"NP\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"PF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SC\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SN\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"TF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"VA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CY\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"GR\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"CO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"DO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KP\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"VE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"AC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BW\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BZ\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"DG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"FK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GB\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IM\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IO\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"JE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"LT\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MS\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NF\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NR\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NU\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"PN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SH\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"TA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ZA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"af-ZA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"AR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CL\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CU\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"EA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-BO\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-BR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-EC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-ES\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-GQ\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-PE\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"GT\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"HN\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"IC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KG\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KM\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"LK\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MX\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"NI\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"PY\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"SV\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"UY\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"JP\": [\n \"H\",\n \"h\",\n \"K\"\n ],\n \"AD\": [\n \"H\",\n \"hB\"\n ],\n \"AM\": [\n \"H\",\n \"hB\"\n ],\n \"AO\": [\n \"H\",\n \"hB\"\n ],\n \"AT\": [\n \"H\",\n \"hB\"\n ],\n \"AW\": [\n \"H\",\n \"hB\"\n ],\n \"BE\": [\n \"H\",\n \"hB\"\n ],\n \"BF\": [\n \"H\",\n \"hB\"\n ],\n \"BJ\": [\n \"H\",\n \"hB\"\n ],\n \"BL\": [\n \"H\",\n \"hB\"\n ],\n \"BR\": [\n \"H\",\n \"hB\"\n ],\n \"CG\": [\n \"H\",\n \"hB\"\n ],\n \"CI\": [\n \"H\",\n \"hB\"\n ],\n \"CV\": [\n \"H\",\n \"hB\"\n ],\n \"DE\": [\n \"H\",\n \"hB\"\n ],\n \"EE\": [\n \"H\",\n \"hB\"\n ],\n \"FR\": [\n \"H\",\n \"hB\"\n ],\n \"GA\": [\n \"H\",\n \"hB\"\n ],\n \"GF\": [\n \"H\",\n \"hB\"\n ],\n \"GN\": [\n \"H\",\n \"hB\"\n ],\n \"GP\": [\n \"H\",\n \"hB\"\n ],\n \"GW\": [\n \"H\",\n \"hB\"\n ],\n \"HR\": [\n \"H\",\n \"hB\"\n ],\n \"IL\": [\n \"H\",\n \"hB\"\n ],\n \"IT\": [\n \"H\",\n \"hB\"\n ],\n \"KZ\": [\n \"H\",\n \"hB\"\n ],\n \"MC\": [\n \"H\",\n \"hB\"\n ],\n \"MD\": [\n \"H\",\n \"hB\"\n ],\n \"MF\": [\n \"H\",\n \"hB\"\n ],\n \"MQ\": [\n \"H\",\n \"hB\"\n ],\n \"MZ\": [\n \"H\",\n \"hB\"\n ],\n \"NC\": [\n \"H\",\n \"hB\"\n ],\n \"NL\": [\n \"H\",\n \"hB\"\n ],\n \"PM\": [\n \"H\",\n \"hB\"\n ],\n \"PT\": [\n \"H\",\n \"hB\"\n ],\n \"RE\": [\n \"H\",\n \"hB\"\n ],\n \"RO\": [\n \"H\",\n \"hB\"\n ],\n \"SI\": [\n \"H\",\n \"hB\"\n ],\n \"SR\": [\n \"H\",\n \"hB\"\n ],\n \"ST\": [\n \"H\",\n \"hB\"\n ],\n \"TG\": [\n \"H\",\n \"hB\"\n ],\n \"TR\": [\n \"H\",\n \"hB\"\n ],\n \"WF\": [\n \"H\",\n \"hB\"\n ],\n \"YT\": [\n \"H\",\n \"hB\"\n ],\n \"BD\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"PK\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"AZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BG\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"CH\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"GE\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"LI\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"ME\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"RS\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"XK\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"AG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"CA\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"DM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"en-001\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FJ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GD\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"JM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KN\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LR\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MH\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MP\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MW\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"NZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SL\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TT\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"UM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"US\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ZM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BO\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"EC\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"ES\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"GQ\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"PE\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"AE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ar-001\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"BH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"DZ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EG\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"HK\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"IQ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"JO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"KW\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LB\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MR\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"OM\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PS\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"QA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SD\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"TN\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"YE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"AF\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"LA\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"CN\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"LV\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"TL\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"zu-ZA\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"CD\": [\n \"hB\",\n \"H\"\n ],\n \"IR\": [\n \"hB\",\n \"H\"\n ],\n \"hi-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"kn-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ml-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"te-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"KH\": [\n \"hB\",\n \"h\",\n \"H\",\n \"hb\"\n ],\n \"ta-IN\": [\n \"hB\",\n \"h\",\n \"hb\",\n \"H\"\n ],\n \"BN\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"MY\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ET\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"gu-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"mr-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"pa-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"TW\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"KE\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"MM\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"TZ\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UG\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ]\n};\n","import { timeData } from './time-data.generated';\n/**\n * Returns the best matching date time pattern if a date time skeleton\n * pattern is provided with a locale. Follows the Unicode specification:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#table-mapping-requested-time-skeletons-to-patterns\n * @param skeleton date time skeleton pattern that possibly includes j, J or C\n * @param locale\n */\nexport function getBestPattern(skeleton, locale) {\n var skeletonCopy = '';\n for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {\n var patternChar = skeleton.charAt(patternPos);\n if (patternChar === 'j') {\n var extraLength = 0;\n while (patternPos + 1 < skeleton.length &&\n skeleton.charAt(patternPos + 1) === patternChar) {\n extraLength++;\n patternPos++;\n }\n var hourLen = 1 + (extraLength & 1);\n var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);\n var dayPeriodChar = 'a';\n var hourChar = getDefaultHourSymbolFromLocale(locale);\n if (hourChar == 'H' || hourChar == 'k') {\n dayPeriodLen = 0;\n }\n while (dayPeriodLen-- > 0) {\n skeletonCopy += dayPeriodChar;\n }\n while (hourLen-- > 0) {\n skeletonCopy = hourChar + skeletonCopy;\n }\n }\n else if (patternChar === 'J') {\n skeletonCopy += 'H';\n }\n else {\n skeletonCopy += patternChar;\n }\n }\n return skeletonCopy;\n}\n/**\n * Maps the [hour cycle type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle)\n * of the given `locale` to the corresponding time pattern.\n * @param locale\n */\nfunction getDefaultHourSymbolFromLocale(locale) {\n var hourCycle = locale.hourCycle;\n if (hourCycle === undefined &&\n // @ts-ignore hourCycle(s) is not identified yet\n locale.hourCycles &&\n // @ts-ignore\n locale.hourCycles.length) {\n // @ts-ignore\n hourCycle = locale.hourCycles[0];\n }\n if (hourCycle) {\n switch (hourCycle) {\n case 'h24':\n return 'k';\n case 'h23':\n return 'H';\n case 'h12':\n return 'h';\n case 'h11':\n return 'K';\n default:\n throw new Error('Invalid hourCycle');\n }\n }\n // TODO: Once hourCycle is fully supported remove the following with data generation\n var languageTag = locale.language;\n var regionTag;\n if (languageTag !== 'root') {\n regionTag = locale.maximize().region;\n }\n var hourCycles = timeData[regionTag || ''] ||\n timeData[languageTag || ''] ||\n timeData[\"\".concat(languageTag, \"-001\")] ||\n timeData['001'];\n return hourCycles[0];\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nimport { getBestPattern } from './date-time-pattern-generator';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith;\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.locale = options.locale;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"</\" tagName (whitespace)* \">\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('</')) {\n if (this.isEOF() || !_isAlpha(this.char())) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n var closingTagNameStartPosition = this.clonePosition();\n var closingTagName = this.parseTagName();\n if (tagName !== closingTagName) {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (!this.bumpIf('>')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var dateTimePattern = skeleton;\n // Get \"best match\" pattern only if locale is passed, if not, let it\n // pass as-is where `parseDateTimeSkeleton()` will throw an error\n // for unsupported patterns.\n if (this.locale) {\n dateTimePattern = getBestPattern(skeleton, this.locale);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: dateTimePattern,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(dateTimePattern)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n","//\n// Main\n//\nexport default function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\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 !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\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: PART_TYPE.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: PART_TYPE.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: PART_TYPE.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 MissingValueError(varName, 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: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\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'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.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 ? el.style.parsedOptions\n : formats.time.medium;\n result.push({\n type: PART_TYPE.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 ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\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[\"=\".concat(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\", ErrorCode.MISSING_INTL_API, originalMessage);\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 InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\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}\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 { __assign, __spreadArray } from \"tslib\";\nimport { parse } from '@formatjs/icu-messageformat-parser';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE, } 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}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\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 var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () { return ({\n locale: _this.resolvedLocale.toString(),\n }); };\n this.getAst = function () { return _this.ast; };\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.resolvedLocale = IntlMessageFormat.resolveLocale(locales);\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 ignoreTag: opts === null || opts === void 0 ? void 0 : opts.ignoreTag,\n locale: this.resolvedLocale,\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 this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.resolveLocale = function (locales) {\n var supportedLocales = Intl.NumberFormat.supportedLocalesOf(locales);\n if (supportedLocales.length > 0) {\n return new Intl.Locale(supportedLocales[0]);\n }\n return new Intl.Locale(typeof locales === 'string' ? locales : locales[0]);\n };\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 integer: {\n maximumFractionDigits: 0,\n },\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 };\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 './src/core';\nexport * from './src/formatters';\nexport * from './src/core';\nexport * from './src/error';\nexport default IntlMessageFormat;\n","import{writable as e,derived as n}from\"svelte/store\";import t from\"deepmerge\";import o from\"intl-messageformat\";const r={},i=(e,n,t)=>t?(n in r||(r[n]={}),e in r[n]||(r[n][e]=t),t):t,l=(e,n)=>{if(null==n)return;if(n in r&&e in r[n])return r[n][e];const t=E(n);for(let o=0;o<t.length;o++){const r=c(t[o],e);if(r)return i(e,n,r)}};let a;const s=e({});function u(e){return e in a}function c(e,n){if(!u(e))return null;const t=function(e){return a[e]||null}(e);return function(e,n){if(null==n)return;if(n in e)return e[n];const t=n.split(\".\");let o=e;for(let e=0;e<t.length;e++)if(\"object\"==typeof o){if(e>0){const n=t.slice(e,t.length).join(\".\");if(n in o){o=o[n];break}}o=o[t[e]]}else o=void 0;return o}(t,n)}function m(e,...n){delete r[e],s.update((o=>(o[e]=t.all([o[e]||{},...n]),o)))}const f=n([s],(([e])=>Object.keys(e)));s.subscribe((e=>a=e));const d={};function g(e){return d[e]}function h(e){return null!=e&&E(e).some((e=>{var n;return null===(n=g(e))||void 0===n?void 0:n.size}))}function w(e,n){const t=Promise.all(n.map((n=>(function(e,n){d[e].delete(n),0===d[e].size&&delete d[e]}(e,n),n().then((e=>e.default||e))))));return t.then((n=>m(e,...n)))}const p={};function b(e){if(!h(e))return e in p?p[e]:Promise.resolve();const n=function(e){return E(e).map((e=>{const n=g(e);return[e,n?[...n]:[]]})).filter((([,e])=>e.length>0))}(e);return p[e]=Promise.all(n.map((([e,n])=>w(e,n)))).then((()=>{if(h(e))return b(e);delete p[e]})),p[e]}function y(e,n){g(e)||function(e){d[e]=new Set}(e);const t=g(e);g(e).has(n)||(u(e)||s.update((n=>(n[e]={},n))),t.add(n))}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function v(e,n){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&n.indexOf(o)<0&&(t[o]=e[o]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)n.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(t[o[r]]=e[o[r]])}return t}function O({locale:e,id:n}){console.warn(`[svelte-i18n] The message \"${n}\" was not found in \"${E(e).join('\", \"')}\".${h(P())?\"\\n\\nNote: there are at least one loader still registered to this locale that wasn't executed.\":\"\"}`)}const j={fallbackLocale:null,loadingDelay:200,formats:{number:{scientific:{notation:\"scientific\"},engineering:{notation:\"engineering\"},compactLong:{notation:\"compact\",compactDisplay:\"long\"},compactShort:{notation:\"compact\",compactDisplay:\"short\"}},date:{short:{month:\"numeric\",day:\"numeric\",year:\"2-digit\"},medium:{month:\"short\",day:\"numeric\",year:\"numeric\"},long:{month:\"long\",day:\"numeric\",year:\"numeric\"},full:{weekday:\"long\",month:\"long\",day:\"numeric\",year:\"numeric\"}},time:{short:{hour:\"numeric\",minute:\"numeric\"},medium:{hour:\"numeric\",minute:\"numeric\",second:\"numeric\"},long:{hour:\"numeric\",minute:\"numeric\",second:\"numeric\",timeZoneName:\"short\"},full:{hour:\"numeric\",minute:\"numeric\",second:\"numeric\",timeZoneName:\"short\"}}},warnOnMissingMessages:!0,handleMissingMessage:void 0,ignoreTag:!0};function M(){return j}function $(e){const{formats:n}=e,t=v(e,[\"formats\"]),o=e.initialLocale||e.fallbackLocale;return t.warnOnMissingMessages&&(delete t.warnOnMissingMessages,null==t.handleMissingMessage?t.handleMissingMessage=O:console.warn('[svelte-i18n] The \"warnOnMissingMessages\" option is deprecated. Please use the \"handleMissingMessage\" option instead.')),Object.assign(j,t,{initialLocale:o}),n&&(\"number\"in n&&Object.assign(j.formats.number,n.number),\"date\"in n&&Object.assign(j.formats.date,n.date),\"time\"in n&&Object.assign(j.formats.time,n.time)),D.set(o)}const k=e(!1);let T;const L=e(null);function x(e){return e.split(\"-\").map(((e,n,t)=>t.slice(0,n+1).join(\"-\"))).reverse()}function E(e,n=M().fallbackLocale){const t=x(e);return n?[...new Set([...t,...x(n)])]:t}function P(){return null!=T?T:void 0}L.subscribe((e=>{T=null!=e?e:void 0,\"undefined\"!=typeof window&&null!=e&&document.documentElement.setAttribute(\"lang\",e)}));const D=Object.assign(Object.assign({},L),{set:e=>{if(e&&function(e){if(null==e)return;const n=E(e);for(let e=0;e<n.length;e++){const t=n[e];if(u(t))return t}}(e)&&h(e)){const{loadingDelay:n}=M();let t;return\"undefined\"!=typeof window&&null!=P()&&n?t=window.setTimeout((()=>k.set(!0)),n):k.set(!0),b(e).then((()=>{L.set(e)})).finally((()=>{clearTimeout(t),k.set(!1)}))}return L.set(e)}}),S=(e,n)=>{const t=e.split(\"&\").find((e=>0===e.indexOf(`${n}=`)));return t?t.split(\"=\").pop():null},N=(e,n)=>{const t=n.exec(e);return t&&t[1]||null},A=e=>\"undefined\"==typeof window?null:N(window.location.hostname,e),I=e=>\"undefined\"==typeof window?null:N(window.location.pathname,e),F=()=>\"undefined\"==typeof window?null:window.navigator.language||window.navigator.languages[0],z=e=>\"undefined\"==typeof window?null:S(window.location.search.substr(1),e),Z=e=>\"undefined\"==typeof window?null:S(window.location.hash.substr(1),e),C=e=>{const n=Object.create(null);return t=>{const o=JSON.stringify(t);return o in n?n[o]:n[o]=e(t)}},G=(e,n)=>{const{formats:t}=M();if(e in t&&n in t[e])return t[e][n];throw new Error(`[svelte-i18n] Unknown \"${n}\" ${e} format.`)},J=C((e=>{var{locale:n,format:t}=e,o=v(e,[\"locale\",\"format\"]);if(null==n)throw new Error('[svelte-i18n] A \"locale\" must be set to format numbers');return t&&(o=G(\"number\",t)),new Intl.NumberFormat(n,o)})),U=C((e=>{var{locale:n,format:t}=e,o=v(e,[\"locale\",\"format\"]);if(null==n)throw new Error('[svelte-i18n] A \"locale\" must be set to format dates');return t?o=G(\"date\",t):0===Object.keys(o).length&&(o=G(\"date\",\"short\")),new Intl.DateTimeFormat(n,o)})),V=C((e=>{var{locale:n,format:t}=e,o=v(e,[\"locale\",\"format\"]);if(null==n)throw new Error('[svelte-i18n] A \"locale\" must be set to format time values');return t?o=G(\"time\",t):0===Object.keys(o).length&&(o=G(\"time\",\"short\")),new Intl.DateTimeFormat(n,o)})),_=(e={})=>{var{locale:n=P()}=e,t=v(e,[\"locale\"]);return J(Object.assign({locale:n},t))},q=(e={})=>{var{locale:n=P()}=e,t=v(e,[\"locale\"]);return U(Object.assign({locale:n},t))},B=(e={})=>{var{locale:n=P()}=e,t=v(e,[\"locale\"]);return V(Object.assign({locale:n},t))},H=C(((e,n=P())=>new o(e,n,M().formats,{ignoreTag:M().ignoreTag}))),K=(e,n={})=>{var t,o,r,i;let a=n;\"object\"==typeof e&&(a=e,e=a.id);const{values:s,locale:u=P(),default:c}=a;if(null==u)throw new Error(\"[svelte-i18n] Cannot format a message without first setting the initial locale.\");let m=l(e,u);if(m){if(\"string\"!=typeof m)return console.warn(`[svelte-i18n] Message with id \"${e}\" must be of type \"string\", found: \"${typeof m}\". Gettin its value through the \"$format\" method is deprecated; use the \"json\" method instead.`),m}else m=null!==(i=null!==(r=null===(o=(t=M()).handleMissingMessage)||void 0===o?void 0:o.call(t,{locale:u,id:e,defaultValue:c}))&&void 0!==r?r:c)&&void 0!==i?i:e;if(!s)return m;let f=m;try{f=H(m,u).format(s)}catch(n){console.warn(`[svelte-i18n] Message \"${e}\" has syntax error:`,n.message)}return f},Q=(e,n)=>B(n).format(e),R=(e,n)=>q(n).format(e),W=(e,n)=>_(n).format(e),X=(e,n=P())=>l(e,n),Y=n([D,s],(()=>K)),ee=n([D],(()=>Q)),ne=n([D],(()=>R)),te=n([D],(()=>W)),oe=n([D,s],(()=>X));function re(e){return e}function ie(e){return b(e||P()||M().initialLocale)}export{Y as _,m as addMessages,ne as date,re as defineMessages,s as dictionary,Y as format,q as getDateFormatter,Z as getLocaleFromHash,A as getLocaleFromHostname,F as getLocaleFromNavigator,I as getLocaleFromPathname,z as getLocaleFromQueryString,H as getMessageFormatter,_ as getNumberFormatter,B as getTimeFormatter,$ as init,k as isLoading,oe as json,D as locale,f as locales,te as number,y as register,Y as t,ee as time,ie as waitLocale};\n","import {\n dictionary,\n locale,\n addMessages,\n _\n} from 'svelte-i18n';\n\nfunction setupI18n({ withLocale: _locale, translations }) {\n locale.subscribe((data) => {\n if (data == null) {\n dictionary.set(translations);\n locale.set(_locale);\n }\n }); // maybe we will need this to make sure that the i18n is set up only once\n /*dictionary.set(translations);\n locale.set(_locale);*/\n}\n\nfunction addNewMessages(lang, dict) {\n addMessages(lang, dict);\n}\n\nfunction setLocale(_locale) {\n locale.set(_locale);\n}\n\nexport { _, setupI18n, addNewMessages, setLocale };\n","export const Translations = {\n en: {\n Translations: {\n recentSearch: \"Recent search\",\n loading: 'Loading, please wait',\n searchResult: \"Search result\",\n cancel: \"Cancel\",\n notFound: \"Game not found!\",\n notFoundText:\n \"Please type the correct name of the game to start to play.\",\n },\n },\n de: {\n Translations: {\n recentSearch: \"Recent search\",\n loading: 'Loading, please wait',\n searchResult: \"Search result\",\n cancel: \"Cancel\",\n notFound: \"Game not found!\",\n notFoundText:\n \"Please type the correct name of the game to start to play.\",\n },\n },\n it: {\n Translations: {\n recentSearch: \"Recent search\",\n loading: 'Loading, please wait',\n searchResult: \"Search result\",\n cancel: \"Cancel\",\n notFound: \"Game not found!\",\n notFoundText:\n \"Please type the correct name of the game to start to play.\",\n },\n },\n fr: {\n Translations: {\n recentSearch: \"Recent search\",\n loading: 'Loading, please wait',\n searchResult: \"Search result\",\n cancel: \"Cancel\",\n notFound: \"Game not found!\",\n notFoundText:\n \"Please type the correct name of the game to start to play.\",\n },\n },\n es: {\n Translations: {\n recentSearch: \"Recent search\",\n loading: 'Loading, please wait',\n searchResult: \"Search result\",\n cancel: \"Cancel\",\n notFound: \"Game not found!\",\n notFoundText:\n \"Please type the correct name of the game to start to play.\",\n },\n },\n gr: {\n Translations: {\n recentSearch: \"Recent search\",\n loading: 'Loading, please wait',\n searchResult: \"Search result\",\n cancel: \"Cancel\",\n notFound: \"Game not found!\",\n notFoundText:\n \"Please type the correct name of the game to start to play.\",\n },\n },\n tr: {\n Translations: {\n recentSearch: \"Recent search\",\n loading: 'Loading, please wait',\n searchResult: \"Search result\",\n cancel: \"Cancel\",\n notFound: \"Game not found!\",\n notFoundText:\n \"Please type the correct name of the game to start to play.\",\n },\n },\n ru: {\n Translations: {\n recentSearch: \"Recent search\",\n loading: 'Loading, please wait',\n searchResult: \"Search result\",\n cancel: \"Cancel\",\n notFound: \"Game not found!\",\n notFoundText:\n \"Please type the correct name of the game to start to play.\",\n },\n },\n ro: {\n Translations: {\n recentSearch: \"Recent search\",\n loading: 'Loading, please wait',\n searchResult: \"Search result\",\n cancel: \"Cancel\",\n notFound: \"Game not found!\",\n notFoundText:\n \"Please type the correct name of the game to start to play.\",\n },\n },\n hr: {\n Translations: {\n recentSearch: \"Recent search\",\n loading: 'Loading, please wait',\n searchResult: \"Search result\",\n cancel: \"Cancel\",\n notFound: \"Game not found!\",\n notFoundText:\n \"Please type the correct name of the game to start to play.\",\n },\n },\n hu: {\n Translations: {\n recentSearch: \"Recent search\",\n loading: 'Loading, please wait',\n searchResult: \"Search result\",\n cancel: \"Cancel\",\n notFound: \"Game not found!\",\n notFoundText:\n \"Please type the correct name of the game to start to play.\",\n },\n },\n pl: {\n Translations: {\n recentSearch: \"Recent search\",\n loading: 'Loading, please wait',\n searchResult: \"Search result\",\n cancel: \"Cancel\",\n notFound: \"Game not found!\",\n notFoundText:\n \"Please type the correct name of the game to start to play.\",\n },\n },\n pt: {\n Translations: {\n recentSearch: \"Recent search\",\n loading: 'Loading, please wait',\n searchResult: \"Search result\",\n cancel: \"Cancel\",\n notFound: \"Game not found!\",\n notFoundText:\n \"Please type the correct name of the game to start to play.\",\n },\n },\n sl: {\n Translations: {\n recentSearch: \"Recent search\",\n loading: 'Loading, please wait',\n searchResult: \"Search result\",\n cancel: \"Cancel\",\n notFound: \"Game not found!\",\n notFoundText:\n \"Please type the correct name of the game to start to play.\",\n },\n },\n sr: {\n Translations: {\n recentSearch: \"Recent search\",\n loading: 'Loading, please wait',\n searchResult: \"Search result\",\n cancel: \"Cancel\",\n notFound: \"Game not found!\",\n notFoundText:\n \"Please type the correct name of the game to start to play.\",\n },\n },\n};\n","var global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n (typeof global !== 'undefined' && global)\n\nvar support = {\n searchParams: 'URLSearchParams' in global,\n iterable: 'Symbol' in global && 'iterator' in Symbol,\n blob:\n 'FileReader' in global &&\n 'Blob' in global &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in global,\n arrayBuffer: 'ArrayBuffer' in global\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n this.bodyUsed = this.bodyUsed\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this)\n if (isConsumed) {\n return isConsumed\n }\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()\n }\n }\n }\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = global.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n setTimeout(function() {\n resolve(new Response(body, options))\n }, 0)\n }\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }, 0)\n }\n\n function fixUrl(url) {\n try {\n return url === '' && global.location.href ? global.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob'\n } else if (\n support.arrayBuffer &&\n request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer'\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]))\n })\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!global.fetch) {\n global.fetch = fetch\n global.Headers = Headers\n global.Request = Request\n global.Response = Response\n}\n","// the whatwg-fetch polyfill installs the fetch() function\n// on the global object (window or self)\n//\n// Return that as the export for use in Webpack, Browserify etc.\nrequire('whatwg-fetch');\nmodule.exports = self.fetch.bind(self);\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined,\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { createErrorClass } from './createErrorClass';\nexport var ObjectUnsubscribedError = createErrorClass(function (_super) {\n return function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n };\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { __extends, __values } from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.closed = false;\n _this.currentObservers = null;\n _this.observers = [];\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype._throwIfClosed = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n };\n Subject.prototype.next = function (value) {\n var _this = this;\n errorContext(function () {\n var e_1, _a;\n _this._throwIfClosed();\n if (!_this.isStopped) {\n if (!_this.currentObservers) {\n _this.currentObservers = Array.from(_this.observers);\n }\n try {\n for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n observer.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n });\n };\n Subject.prototype.error = function (err) {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.hasError = _this.isStopped = true;\n _this.thrownError = err;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n };\n Subject.prototype.complete = function () {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.isStopped = true;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n };\n Object.defineProperty(Subject.prototype, \"observed\", {\n get: function () {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n },\n enumerable: false,\n configurable: true\n });\n Subject.prototype._trySubscribe = function (subscriber) {\n this._throwIfClosed();\n return _super.prototype._trySubscribe.call(this, subscriber);\n };\n Subject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n };\n Subject.prototype._innerSubscribe = function (subscriber) {\n var _this = this;\n var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(function () {\n _this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n };\n Subject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n };\n AnonymousSubject.prototype.error = function (err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n AnonymousSubject.prototype.complete = function () {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","export var dateTimestampProvider = {\n now: function () {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=dateTimestampProvider.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nvar ReplaySubject = (function (_super) {\n __extends(ReplaySubject, _super);\n function ReplaySubject(_bufferSize, _windowTime, _timestampProvider) {\n if (_bufferSize === void 0) { _bufferSize = Infinity; }\n if (_windowTime === void 0) { _windowTime = Infinity; }\n if (_timestampProvider === void 0) { _timestampProvider = dateTimestampProvider; }\n var _this = _super.call(this) || this;\n _this._bufferSize = _bufferSize;\n _this._windowTime = _windowTime;\n _this._timestampProvider = _timestampProvider;\n _this._buffer = [];\n _this._infiniteTimeWindow = true;\n _this._infiniteTimeWindow = _windowTime === Infinity;\n _this._bufferSize = Math.max(1, _bufferSize);\n _this._windowTime = Math.max(1, _windowTime);\n return _this;\n }\n ReplaySubject.prototype.next = function (value) {\n var _a = this, isStopped = _a.isStopped, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow, _timestampProvider = _a._timestampProvider, _windowTime = _a._windowTime;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._trimBuffer();\n var subscription = this._innerSubscribe(subscriber);\n var _a = this, _infiniteTimeWindow = _a._infiniteTimeWindow, _buffer = _a._buffer;\n var copy = _buffer.slice();\n for (var i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i]);\n }\n this._checkFinalizedStatuses(subscriber);\n return subscription;\n };\n ReplaySubject.prototype._trimBuffer = function () {\n var _a = this, _bufferSize = _a._bufferSize, _timestampProvider = _a._timestampProvider, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow;\n var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n if (!_infiniteTimeWindow) {\n var now = _timestampProvider.now();\n var last = 0;\n for (var i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\n//# sourceMappingURL=ReplaySubject.js.map","import { ReplaySubject } from 'rxjs';\n\nlet topics = [];\nlet subjects = {};\n\n/**\n * @name topic\n * @description A small wrapper over the rxjs to offer the topic method on top of it\n * @param event [String] Event name\n * @param step [String] How many values to be buffed for new subscribers - default 0\n * @returns ReplaySubject\n */\n\nconst topic = (event, step = 0) => {\n if (topics.indexOf(event) == -1) {\n let replaySubject = new ReplaySubject(step);\n\n subjects[event] = replaySubject;\n\n topics.push(event);\n }\n\n return subjects[event];\n}\n\nconst usePostMessageForTopics = (events = [], target) => {\n for (let index in events) {\n subjects[events[index]].subscribe((data) => {\n window.postMessage({ type: events[index], data });\n });\n }\n}\n\nexport { topic }\n","'use strict';\n\nimport fetch from 'isomorphic-fetch';\nimport { topic } from './communication';\nexport { _, setupI18n } from './i18n';\n\nconst REQUEST_STATUS_SUCCESS = 'success';\nconst REQUEST_STATUS_ERROR = 'error';\n\nconst outgoingRequests = {};\nconst cacheStore = {};\nconst outgoingRequestsParsedBody = {};\n\nwindow.emWidgets = { topic };\n\nconst resType = 'json';\n\nconst getResponseFromCache = (cacheKey) => {\n return new Promise((resolve, reject) => {\n if (cacheStore[cacheKey] && cacheStore[cacheKey].response) {\n return resolve(cacheStore[cacheKey].response);\n }\n\n return reject(new Error(`Unable to access cache for: ${cacheStore[cacheKey]}`));\n });\n}\n\nconst checkStatus = (response) => {\n if (response.status < 200 || response.status >= 400) {\n // TODO we need a global error handler here\n throw new Error(`Error on request \"${response.url}\" (${response.status}: ${response.statusText})`);\n }\n\n return response;\n}\n\nconst storeResponseInCache = (res, cacheKey) => {\n delete outgoingRequestsParsedBody[cacheKey];\n\n cacheStore[cacheKey] = {\n response: res\n };\n\n return cacheStore[cacheKey].response;\n}\n\n// Internal use only\nconst validateFields = (config, required_fields, optional_fields, null_valid, zero_valid, empty_valid) => {\n let invalid_fields = [];\n let isOptional = false;\n\n required_fields.forEach((field) => {\n if (optional_fields.includes(field)) {\n isOptional = true;\n }\n\n if (field in config) {\n switch (config[field]) {\n case undefined:\n if (isOptional) {\n console.warn(field + ' exists but is undefined!');\n } else {\n console.error(field + ' exists but is undefined!');\n\n invalid_fields.push(field);\n }\n\n break;\n\n case '':\n if (isOptional) {\n console.warn(field + ' exists but is empty!');\n } else {\n console.error(field + ' exists but is empty!');\n\n if (empty_valid) {\n invalid_fields.push(field);\n }\n }\n\n break;\n\n case null:\n if (isOptional) {\n console.warn(field + ' exists but is null');\n } else {\n console.error(field + ' exists but is null');\n\n if (null_valid) {\n invalid_fields.push(field);\n }\n }\n\n break;\n\n case 0:\n if (isOptional) {\n console.warn(field + ' exists and the value is 0');\n } else {\n console.error(field + ' exists and the value is 0');\n\n if (zero_valid) {\n invalid_fields.push(field);\n }\n }\n\n break;\n\n default:\n // Nothing to do here :)\n break;\n }\n } else {\n console.error(field + \" doesn't exist in ConfigObject\");\n\n invalid_fields.push(field);\n }\n });\n\n return invalid_fields;\n}\n\n// start update section - recursively update customOperator object with data provided by client\nconst updateCustomOperatorObj = (targetObj, updateObj) => {\n for (let [key,value] of Object.entries(updateObj)) {\n // if targetObj has the relevant key and the type in targetObj and updateObj is the same\n if (targetObj.hasOwnProperty(key) && typeof(value) === typeof(targetObj[key])) {\n // update value if string,number or boolean\n if (['string','number','boolean'].includes(typeof value) || Array.isArray(value)) {\n targetObj[key] = value;\n } else {\n // if type is object then go one level deeper\n if (typeof value === 'object') {\n updateCustomOperatorObj(targetObj[key], value);\n }\n }\n }\n }\n}\n\n/**\n * @name xhrFetch\n * @description An overlay over fetch method to allow caching\n * @param url String - The URL you want to query\n * @param options Object -\n method(String): GET/POST/PUT/DELETE\n headers(Object): Request header params\n body(Object): Request body params\n @param cache Boolean - Variable to tell XHRFetch to cache or not the request\n*/\nexport const xhrFetch = (url, options = {}, cache = true) => {\n const cacheKey = `${url}`;\n const {\n method = 'GET',\n headers = {},\n body = {}\n } = options;\n const reqHeaders = new Headers();\n\n Object.keys(headers).forEach((item) => {\n reqHeaders.append(item, headers[item]);\n });\n\n reqHeaders.append('accept', 'application/json');\n reqHeaders.append('Content-Type', 'application/json');\n\n const reqOpts = {\n method,\n headers: reqHeaders\n };\n\n if (method === 'POST' || method === 'PUT') {\n reqOpts.body = JSON.stringify(body);\n }\n\n const request = new Request(url, reqOpts);\n\n let fetchPromise;\n\n if (cache === true && cacheStore[cacheKey]) {\n return getResponseFromCache(cacheKey);\n }\n\n if (outgoingRequests[cacheKey]) {\n fetchPromise = outgoingRequests[cacheKey];\n } else {\n fetchPromise = fetch(request);\n\n outgoingRequests[cacheKey] = fetchPromise;\n }\n\n return fetchPromise\n .then(checkStatus)\n .catch((err) => {\n return Promise.reject(err);\n })\n .then((res) => {\n delete outgoingRequests[cacheKey];\n\n if (!res.bodyUsed) {\n outgoingRequestsParsedBody[cacheKey] = res[resType]();\n }\n\n return outgoingRequestsParsedBody[cacheKey];\n })\n .then((res) => {\n return storeResponseInCache(res, cacheKey);\n });\n}\n\n/**\n * @name isMobile\n * @description A method that returns if the browser used to access the app is from a mobile device or not\n * @param {String} userAgent window.navigator.userAgent\n * @returns {Boolean} true or false\n */\nexport const isMobile = (userAgent) => {\n return !!(\n userAgent.toLowerCase().match(/android/i) ||\n userAgent.toLowerCase().match(/blackberry|bb/i) ||\n userAgent.toLowerCase().match(/iphone|ipad|ipod/i) ||\n userAgent.toLowerCase().match(/windows phone|windows mobile|iemobile|wpdesktop/i)\n );\n}\n\n/**\n * @name getDevice\n * @description A method that returns the type of the device\n * @param {String} userAgent window.navigator.userAgent\n * @returns {String} Android/iPhone/iPad/PC\n */\nexport const getDevice = (userAgent) => {\n if (userAgent.toLowerCase().match(/android/i)) {\n return 'Android';\n }\n\n if (userAgent.toLowerCase().match(/iphone/i)) {\n return 'iPhone';\n }\n\n if (userAgent.toLowerCase().match(/ipad|ipod/i)) {\n return 'iPad';\n }\n\n return 'PC';\n}\n\n/**\n * @name checkConfig\n * @description\n * @param\n * @returns {Boolean} true or false\n */\nexport const checkConfig = (config) => {\n // fields to validate\n let fields = ['endpointURL', 'dataSource'];\n let optional = ['dataSource'];\n let invalid = validateFields(config, fields, optional, true, true, true);\n\n if (invalid.length > 0) {\n return false;\n }\n\n return true;\n}\n\n/**\n * @name getCustomOperatorData\n * @description This should be deprecated\n * @param\n * @returns {Object}\n */\nexport const getCustomOperatorData = () => {\n updateCustomOperatorObj(customOperator, window.widgetConfig);\n\n return customOperator;\n}\n\n// separate favorites array into mobile and desktop favorites\nexport function platformFavorite(initialArray, updatedArray) {\n let userAgent = window.navigator.userAgent;\n // make sure to display favored games specific to the platform used\n if (isMobile(userAgent)) {\n updatedArray = initialArray.filter(favItem => {\n if (favItem.gameModel) {\n if (favItem.gameModel.platform.includes(\"iPad\") || favItem.gameModel.platform.includes(\"iPhone\") || favItem.gameModel.platform.includes(\"Android\")) {\n return favItem;\n }\n }\n });\n } else {\n updatedArray = initialArray.filter(favItem => {\n if (favItem.gameModel) {\n if (favItem.gameModel.platform.includes(\"PC\")) {\n return favItem;\n }\n }\n });\n }\n return updatedArray;\n}\n\nexport function checkSession(endpoint, session) {\n return new Promise((resolve, reject) => {\n let reqHeaders = new Headers();\n\n reqHeaders.append('X-SessionID', session);\n\n let options = {\n method: 'GET',\n headers: reqHeaders\n };\n\n fetch(`${endpoint}/player/session/player`, options)\n .then((res) => res.json())\n .then((data) => resolve(data))\n .catch((err) => reject(err));\n });\n}\n","//! moment.js\n//! version : 2.29.3\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.3';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","import {\n dictionary,\n locale,\n addMessages,\n _\n} from 'svelte-i18n';\n\nfunction setupI18n({ withLocale: _locale, translations }) {\n dictionary.set(translations);\n locale.set(_locale);\n}\n\nfunction addNewMessages(lang, dict) {\n addMessages(lang, dict);\n}\n\nexport { _, setupI18n, addNewMessages };\n","export const GameThumbnailTranslations = {\n en: {\n gameThumbnail: {\n playNow: 'Start now!',\n new: 'NEW',\n hot: 'Hot',\n opens: 'Opens ',\n full: 'table full - bet behind',\n dealer: 'Dealer',\n },\n },\n de: {\n gameThumbnail: {\n playNow: 'Jetzt starten!',\n new: 'NEU',\n hot: 'Hot',\n opens: 'Öffnet ',\n full: 'full - bet behind',\n dealer: 'Dealer',\n }\n },\n it: {\n gameThumbnail: {\n playNow: 'Inizia ora!',\n new: 'NOVITÀ',\n hot: 'HOT',\n // TODO: translate all other supported languages\n opens: 'Opens ',\n full: 'table full - bet behind',\n dealer: 'Dealer',\n }\n },\n fr: {\n gameThumbnail: {\n playNow: 'Commencez maintenant',\n new: 'Nouveau',\n hot: 'Chaud',\n opens: 'Ouvre ',\n full: 'Table pleine - pari derrière',\n dealer: 'Concessionnaire',\n }\n },\n es: {\n gameThumbnail: {\n playNow: 'Empezar ahora!',\n new: 'NUEVO',\n hot: 'Hot',\n opens: 'Abierto ',\n full: 'Mesa completa - apuesta detrás',\n dealer: 'Dealer',\n }\n },\n tr: {\n gameThumbnail: {\n playNow: 'Şimdi oyna',\n new: 'YENİ',\n hot: 'SICAK',\n opens: 'Açılır ',\n full: 'masa dolu - bet behind',\n dealer: 'Dealer',\n }\n },\n ru: {\n gameThumbnail: {\n playNow: 'Играть сейчас',\n new: 'НОВАЯ',\n hot: 'ГОРЯЧЕЙ',\n opens: 'Opens ',\n full: 'table full - bet behind',\n dealer: 'Dealer',\n }\n },\n ro: {\n gameThumbnail: {\n playNow: 'Joaca acum',\n new: 'NOU',\n hot: 'POPULAR',\n opens: 'Opens ',\n full: 'table full - bet behind',\n dealer: 'Dealer',\n }\n },\n hr: {\n gameThumbnail: {\n playNow: 'Započnite sada!',\n new: 'NOVO',\n hot: 'Vruće',\n opens: 'Opens ',\n full: 'table full - bet behind',\n dealer: 'Dealer',\n }\n },\n hu: {\n gameThumbnail: {\n playNow: 'Játsszon most!',\n new: 'ÚJ',\n hot: 'Hot',\n opens: 'Opens ',\n full: 'table full - bet behind',\n dealer: 'Dealer',\n }\n },\n pl: {\n gameThumbnail: {\n playNow: 'Rozpocznij teraz!',\n new: 'NOWOŚĆ',\n hot: 'Hot',\n opens: 'Opens ',\n full: 'table full - bet behind',\n dealer: 'Dealer',\n }\n },\n pt: {\n gameThumbnail: {\n playNow: 'Comece agora!',\n new: 'NOVO',\n hot: 'Hot',\n opens: 'Abrir ',\n full: 'Mesa cheia - aposta atrás',\n dealer: 'Dealer',\n }\n },\n sl: {\n gameThumbnail: {\n playNow: 'Začnite zdaj!',\n new: 'NOVO',\n hot: 'Vroče',\n opens: 'Opens ',\n full: 'table full - bet behind',\n dealer: 'Dealer',\n }\n },\n sr: {\n gameThumbnail: {\n playNow: 'Započnite sada!',\n new: 'NOVO',\n hot: 'Vruće',\n opens: 'Opens ',\n full: 'table full - bet behind',\n dealer: 'Dealer',\n }\n }\n};\n","/* eslint-disable quote-props */\r\nexport const currenciesSymbols = {\r\n 'AED': 'د.إ',\r\n 'AFN': '؋',\r\n 'ALL': 'L',\r\n 'AMD': '֏',\r\n 'ANG': 'ƒ',\r\n 'AOA': 'Kz',\r\n 'ARS': '$',\r\n 'AUD': '$',\r\n 'AWG': 'ƒ',\r\n 'AZN': 'ман',\r\n 'BAM': 'KM',\r\n 'BBD': '$',\r\n 'BDT': '৳',\r\n 'BGN': 'лв',\r\n 'BHD': '.د.ب',\r\n 'BIF': 'FBu',\r\n 'BMD': '$',\r\n 'BND': '$',\r\n 'BOB': '$b',\r\n 'BRL': 'R$',\r\n 'BSD': '$',\r\n 'BTC': '฿',\r\n 'BTN': 'Nu.',\r\n 'BWP': 'P',\r\n 'BYR': 'p.',\r\n 'BZD': 'BZ$',\r\n 'CAD': '$',\r\n 'CDF': 'FC',\r\n 'CHF': 'CHF',\r\n 'CLP': '$',\r\n 'CNY': '¥',\r\n 'COP': '$',\r\n 'CRC': '₡',\r\n 'CUC': '$',\r\n 'CUP': '₱',\r\n 'CVE': '$',\r\n 'CZK': 'Kč',\r\n 'DJF': 'Fdj',\r\n 'DKK': 'kr',\r\n 'DOP': 'RD$',\r\n 'DZD': 'دج',\r\n 'EEK': 'kr',\r\n 'EGP': '£',\r\n 'ERN': 'Nfk',\r\n 'ETB': 'Br',\r\n 'ETH': 'Ξ',\r\n 'EUR': '€',\r\n 'FJD': '$',\r\n 'FKP': '£',\r\n 'GBP': '£',\r\n 'GEL': '₾',\r\n 'GGP': '£',\r\n 'GHC': '₵',\r\n 'GHS': 'GH₵',\r\n 'GIP': '£',\r\n 'GMD': 'D',\r\n 'GNF': 'FG',\r\n 'GTQ': 'Q',\r\n 'GYD': '$',\r\n 'HKD': '$',\r\n 'HNL': 'L',\r\n 'HRK': 'kn',\r\n 'HTG': 'G',\r\n 'HUF': 'Ft',\r\n 'IDR': 'Rp',\r\n 'ILS': '₪',\r\n 'IMP': '£',\r\n 'INR': '₹',\r\n 'IQD': 'ع.د',\r\n 'IRR': '﷼',\r\n 'ISK': 'kr',\r\n 'JEP': '£',\r\n 'JMD': 'J$',\r\n 'JOD': 'JD',\r\n 'JPY': '¥',\r\n 'KES': 'KSh',\r\n 'KGS': 'лв',\r\n 'KHR': '៛',\r\n 'KMF': 'CF',\r\n 'KPW': '₩',\r\n 'KRW': '₩',\r\n 'KWD': 'KD',\r\n 'KYD': '$',\r\n 'KZT': 'лв',\r\n 'LAK': '₭',\r\n 'LBP': '£',\r\n 'LKR': '₨',\r\n 'LRD': '$',\r\n 'LSL': 'M',\r\n 'LTC': 'Ł',\r\n 'LTL': 'Lt',\r\n 'LVL': 'Ls',\r\n 'LYD': 'LD',\r\n 'MAD': 'MAD',\r\n 'MDL': 'lei',\r\n 'MGA': 'Ar',\r\n 'MKD': 'ден',\r\n 'MMK': 'K',\r\n 'MNT': '₮',\r\n 'MOP': 'MOP$',\r\n 'MRO': 'UM',\r\n 'MUR': '₨',\r\n 'MVR': 'Rf',\r\n 'MWK': 'MK',\r\n 'MXN': '$',\r\n 'MYR': 'RM',\r\n 'MZN': 'MT',\r\n 'NAD': '$',\r\n 'NGN': '₦',\r\n 'NIO': 'C$',\r\n 'NOK': 'kr',\r\n 'NPR': '₨',\r\n 'NZD': '$',\r\n 'OMR': '﷼',\r\n 'PAB': 'B/.',\r\n 'PEN': 'S/.',\r\n 'PGK': 'K',\r\n 'PHP': '₱',\r\n 'PKR': '₨',\r\n 'PLN': 'zł',\r\n 'PYG': 'Gs',\r\n 'QAR': '﷼',\r\n 'RMB': '¥',\r\n 'RON': 'lei',\r\n 'RSD': 'Дин.',\r\n 'RUB': '₽',\r\n 'RWF': 'R₣',\r\n 'SAR': '﷼',\r\n 'SBD': '$',\r\n 'SCR': '₨',\r\n 'SDG': 'ج.س.',\r\n 'SEK': 'kr',\r\n 'SGD': '$',\r\n 'SHP': '£',\r\n 'SLL': 'Le',\r\n 'SOS': 'S',\r\n 'SRD': '$',\r\n 'SSP': '£',\r\n 'STD': 'Db',\r\n 'SVC': '$',\r\n 'SYP': '£',\r\n 'SZL': 'E',\r\n 'THB': '฿',\r\n 'TJS': 'SM',\r\n 'TMT': 'T',\r\n 'TND': 'د.ت',\r\n 'TOP': 'T$',\r\n 'TRL': '₤',\r\n 'TRY': '₺',\r\n 'TTD': 'TT$',\r\n 'TVD': '$',\r\n 'TWD': 'NT$',\r\n 'TZS': 'TSh',\r\n 'UAH': '₴',\r\n 'UGX': 'USh',\r\n 'USD': '$',\r\n 'UYU': '$U',\r\n 'UZS': 'лв',\r\n 'VEF': 'Bs',\r\n 'VND': '₫',\r\n 'VUV': 'VT',\r\n 'WST': 'WS$',\r\n 'XAF': 'FCFA',\r\n 'XBT': 'Ƀ',\r\n 'XCD': '$',\r\n 'XOF': 'CFA',\r\n 'XPF': '₣',\r\n 'YER': '﷼',\r\n 'ZAR': 'R',\r\n 'ZWD': 'Z$',\r\n};\r\n","<svelte:options tag={null} />\n\n<script lang=\"ts\">\n import moment from 'moment';\n import { onMount, tick } from \"svelte\";\n import { isMobile, getDevice } from 'rvhelper';\n import { _, addNewMessages } from './i18n';\n import { GameThumbnailTranslations } from './translations';\n import { currenciesSymbols } from './currency-symbols';\n\n export let session:string = '';\n export let userid:string = '';\n export let lang:string = '';\n export let clientstyling:string = ''\n export let clientstylingurl:string = '';\n\n export let favorites:string = '';\n export let gamethumbnail:string = '';\n export let gamename:string = '';\n export let gamevendor:string = '';\n export let gameid:string = '';\n export let gameisnew:string = '';\n export let gamepopularity:string = '';\n export let gamefunmode:boolean = false;\n export let searchitem:boolean = false;\n export let gamefavorite:boolean = false;\n export let gamecellsize = '';\n export let showfavoredcategory:boolean = false;\n export let showgamename:boolean = false;\n export let currency:string = '';\n export let gamepagemodalurl:string = 'false';\n\n export let endpoint:string = '';\n\n export let livelobbyendpoint:string = '';\n export let connectlive:string = '';\n export let visibilityconnect:string = '';\n\n let isLoggedIn:boolean = false;\n let sessionID:string;\n let playerID:string;\n\n let fav:boolean = false;\n let hover:Boolean = false;\n let loaded:boolean = false\n let image:any;\n let userAgent:any = window.navigator.userAgent;\n let customStylingContainer:HTMLElement;\n\n let livegamedata:any;\n let liveLobbyConnection:EventSource;\n let displaytype:string;\n let starttime:any;\n let timeformat = 'HH:mm';\n let isopen:Boolean;\n let betlimit:any = {};\n let openhours:any;\n let seats:any = [];\n let currencySymbol:any='EUR';\n let min:any;\n let max:any;\n let totalseats:any;\n let currentoccupiedseats:any;\n let currentroulettenumbers:any;\n let currentdoubleballroulettenumbers:any;\n let vendorcategory:any;\n let isdouble:any;\n let roulleteresults:any;\n let roulettecontainerclassname:any;\n let colorsourcearray:any;\n let istablefull:boolean;\n let oldistablefull:boolean;\n let extraclassname:string='';\n let roulletteref:any;\n let dealername:string;\n let numberofplayers:number;\n\n\n const BLACKJACK = 'blackjack';\n const ROULETTE = 'roulette';\n const DOUBLE_ROULETTE = 'doubleballroulette';\n const DEFAULT_BLACKJACK_TOTAL_SEATS = 7;\n const blackjackcategory = [BLACKJACK];\n const roulettecategory = [ROULETTE, DOUBLE_ROULETTE];\n const DEFAULT_AMOUNT_SEPARATOR = ',';\n const numberofdisplayedresults = 5;\n export const MONEY_WHEEL_COLOR_MAP = {\n '01': 'Yellow',\n '02': 'Blue',\n 10: 'Green',\n 40: 'Red',\n '05': 'Purple',\n 20: 'Orange',\n X7: 'Gold',\n X2: 'Gold',\n };\n export const ROULETTE_COLOR_MAP = {\n 1: 'Red',\n 3: 'Red',\n 5: 'Red',\n 7: 'Red',\n 9: 'Red',\n 12: 'Red',\n 14: 'Red',\n 16: 'Red',\n 18: 'Red',\n 19: 'Red',\n 21: 'Red',\n 23: 'Red',\n 25: 'Red',\n 27: 'Red',\n 30: 'Red',\n 32: 'Red',\n 34: 'Red',\n 36: 'Red',\n 2: 'Black',\n 4: 'Black',\n 6: 'Black',\n 8: 'Black',\n 10: 'Black',\n 11: 'Black',\n 13: 'Black',\n 15: 'Black',\n 17: 'Black',\n 20: 'Black',\n 22: 'Black',\n 24: 'Black',\n 26: 'Black',\n 28: 'Black',\n 29: 'Black',\n 31: 'Black',\n 33: 'Black',\n 35: 'Black',\n 0: 'Green',\n '00': 'Green',\n };\n\n Object.keys(GameThumbnailTranslations).forEach((item:any):void => {\n addNewMessages(item, GameThumbnailTranslations[item]);\n });\n\n const enter = () => {\n hover = true;\n }\n const leave = () => {\n hover = false;\n }\n\n const messageHandler = (e:any):void => {\n if (e.data.type === `AddFavoriteThumbnail_${gameid}` && !showfavoredcategory) {\n gamefavorite = true;\n }\n\n if (e.data.type === `RemoveFavoriteThumbnail_${gameid}` && !showfavoredcategory) {\n gamefavorite = false;\n }\n\n if (e.data.type === 'UserSessionID') {\n isLoggedIn = true;\n sessionID = e.data.session;\n playerID = e.data.userID;\n }\n\n if(e.data.type === 'CategoryUpdate') {\n livegamedata = null;\n }\n }\n\n const toggleGameFrame = (gameId:any):void => {\n if (searchitem) {\n window.postMessage({ type: 'SearchedItemClicked', gameId }, window.location.href);\n }\n if (isMobile(userAgent)) {\n window.postMessage({ type: 'OpenGameFrame', gameId, gamefunmode, gamepagemodalurl, isMobile: isMobile(userAgent) }, window.location.href)\n } else {\n window.postMessage({ type: 'ShowGameModal', gameId }, window.location.href);\n }\n };\n\n\n const toggleFavoriteGame = (id:any):void => {\n let triggerFactor = \"thumbnail\";\n\n if (gamefavorite) {\n window.postMessage({ type: 'SetUnfavoredGame', id, triggerFactor }, window.location.href);\n } else {\n window.postMessage({ type: 'SetFavoredGame', id, triggerFactor }, window.location.href);\n }\n }\n\n const gameTouch = ():void => {\n window.postMessage({ type: 'GameHovered' }, window.location.href);\n }\n\n const gameTouchEnd = ():void => {\n window.postMessage({ type: 'GameBlur' }, window.location.href);\n }\n\n const gameHover = ():void => {\n window.postMessage({ type: 'GameHovered' }, window.location.href);\n }\n\n const gameBlur = ():void => {\n window.postMessage({ type: 'GameBlur' }, window.location.href);\n }\n\n const setActiveLanguage = ():void => {\n // Not needed yet\n // setLocale(lang);\n }\n\n const setSession = ():void => {\n isLoggedIn = true;\n sessionID = session;\n playerID = userid;\n }\n\n const setOnLoad = ():void => {\n if (image) {\n image.onload = () => {\n loaded = true;\n }\n }\n }\n\n const getLiveLobbyURL = (vendorName, id) => {\n return `${endpoint}/encoder/lobby/updates/${vendorName}/${id}`;\n }\n const connectGameToLiveLobby = () => {\n if (livelobbyendpoint && EventSource && !liveLobbyConnection) {\n if (gamevendor && gameid) {\n liveLobbyConnection = new EventSource(getLiveLobbyURL(gamevendor, gameid)),\n liveLobbyConnection.addEventListener('message', liveLobbyMessageHandler);\n }\n }\n }\n const disconnectGameFromLiveLobby = () => {\n if (liveLobbyConnection) {\n liveLobbyConnection.close();\n liveLobbyConnection = undefined;\n }\n }\n\n const setClientStyling = ():void => {\n let sheet = document.createElement('style');\n\n sheet.innerHTML = clientstyling;\n\n setTimeout(() => { customStylingContainer.appendChild(sheet);});\n }\n\n const setFavorites = ():void => {\n if (favorites == 'true') {\n fav = true;\n }\n }\n\n const setClientStylingURL = ():void => {\n let url:URL = new URL(clientstylingurl);\n\n let cssFile:HTMLElement = document.createElement('style');\n\n fetch(url.href)\n .then((res:any) => res.text())\n .then((data:any) => {\n cssFile.innerHTML = data\n\n setTimeout(() => { customStylingContainer.appendChild(cssFile); });\n });\n }\n\n const liveLobbyMessageHandler = async (event) => {\n const { type, data: rawData } = event;\n let data;\n switch (type) {\n case 'message': {\n if (rawData) {\n try {\n data = JSON.parse(rawData);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('MESSAGE PARSING ERROR: ', err);\n }\n }\n if (data) {\n const {\n InternalTableId,\n MessageType,\n // TakenSeats,\n Results,\n // Roads, // for baccarat\n Seats,\n Open,\n } = data;\n if (InternalTableId) {\n switch (MessageType) {\n case 'SeatsUpdated': {\n if (Seats && Array.isArray(Seats)) {\n currentoccupiedseats = Seats;\n livegamedata.currentOccupiedSeats = Seats;\n await tick();\n }\n break;\n }\n case 'RouletteResultsUpdated': {\n if (Results && Array.isArray(Results)) {\n currentroulettenumbers = Results;\n livegamedata.currentRouletteNumbers = Results;\n await tick();\n }\n break;\n }\n case 'DoubleBallRouletteResultsUpdated': {\n if (Results && Array.isArray(Results)) {\n currentdoubleballroulettenumbers = Results;\n livegamedata.currentDoubleBallRouletteNumbers = Results;\n await tick();\n }\n break;\n }\n case 'TableOpened': {\n isopen = Open;\n livegamedata.isOpen = Open;\n await tick();\n break;\n }\n case 'TableClosed': {\n isopen = Open;\n livegamedata.isOpen = Open;\n await tick();\n break;\n }\n default: {\n // default case\n }\n }\n }\n }\n }\n default: {\n // default case\n }\n }\n }\n\n const setLiveLobbyData = () => {\n let url:any = new URL(`${livelobbyendpoint.split('?')[0]}`);\n url.searchParams.append(\"platform\", getDevice(userAgent));\n url.searchParams.append('language', lang);\n fetch(url)\n .then((res:any) => res.json())\n .then((data:any) => {\n const { details } = data[0];\n livegamedata = details;\n });\n }\n const numberWithSeparators = (value, sep = DEFAULT_AMOUNT_SEPARATOR) => {\n if (value !== undefined && value !== null) {\n return `${value}`.replace(/\\B(?=(\\d{3})+(?!\\d))/g, sep);\n }\n return '';\n }\n const contains = (array, value) => {\n return array.some(item => item === value);\n }\n const getGameComponent = (livegamedata) => {\n let GameComponent = null;\n if (livegamedata) {\n const { vendorCategory } = livegamedata;\n if (vendorCategory) {\n const gameTypeToLower = vendorCategory.toLowerCase();\n if (contains(blackjackcategory, gameTypeToLower)) {\n GameComponent = BLACKJACK;\n } else if (contains(roulettecategory, gameTypeToLower)) {\n GameComponent = ROULETTE;\n }\n // else if (contains(baccaratCategory, gameTypeToLower)) {\n // GameComponent = 'baccarat';\n // } else if (contains(otherLiveGamesCategory, gameTypeToLower)) {\n // GameComponent = 'poker';\n // }\n }\n }\n return GameComponent;\n };\n const renderBetLimits = (min, max, currencySymbol) => {\n let rightSideContent;\n let leftSideContent;\n if (min !== undefined && min !== null && max !== undefined && max !== null) {\n leftSideContent = `\n <span>\n ${currencySymbol}\n </span>\n ${\n numberWithSeparators(min)\n }-${\n numberWithSeparators(max)\n }`;\n }\n if (numberofplayers) {\n rightSideContent = `\n <svg fill=\"white\" width=\"13\" height=\"13\" viewBox=\"0 0 13 14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4 8.2a4.6 4.6 0 0 0 5 0c2.7.8 4 2.6 4 4.8H0c0-2.2 1.3-4 4-4.8zM6.6 8c2 0 3.8-1.7 3.8-4 0-2.1-1.7-4-3.8-4a3.9 3.9 0 0 0-3.8 4c0 2.2 1.7 4 3.8 4z\"/></svg>\n <span class=\"NrOfPlayers\">${numberofplayers}</span>`;\n }\n if (!rightSideContent && !leftSideContent) {\n return '';\n }\n return `\n <p class=\"LiveLimits\">\n <span class=\"BetLimitLeft\">\n ${leftSideContent || ''}\n </span>\n <span class=\"BetLimitRight\">\n ${rightSideContent || ''}\n </span>\n </p>`;\n }\n const renderDealerName = (dealername) => {\n if (!dealername) {\n return '';\n }\n return `\n <p class=\"LiveLimits\">\n <span class=\"DealerName\">${$_('gameThumbnail.dealer')}: ${dealername}</span>\n </p>\n `;\n }\n const createDisplayData = (livegamedata) => {\n totalseats = livegamedata.totalSeats || DEFAULT_BLACKJACK_TOTAL_SEATS;\n currentoccupiedseats = livegamedata.currentOccupiedSeats || [];\n const seats = [];\n for (let i = 1; i <= totalseats; i++) {\n seats.push(i);\n }\n return { seats };\n }\n const renderSpan = (selectedClass, key, value, colorClass = '') => {\n const rouletteItemClassname = `${selectedClass} ${colorClass}`;\n const firstMatch = key.toString().match(/first0|second0|0/g);\n if (key === 0 || (firstMatch && firstMatch.length !== 0)) {\n return `\n <span\n id=${key}\n class=\"${rouletteItemClassname}\"\n >\n ${value}\n </span>\n `;\n }\n return `\n <span id=${key} class=\"${rouletteItemClassname}\">\n ${value}\n </span>\n `;\n }\n\n const attachAnimations = () => {\n const animatedClassName = 'FirstElementAnimated';\n const firstElem = roulletteref.getElementsByClassName('First')[0];\n if (firstElem) {\n firstElem.classList.add(animatedClassName);\n setTimeout(() => {\n firstElem.classList.remove(animatedClassName);\n }, 2000);\n }\n }\n const updateComponent = () => {\n if (livegamedata) {\n isopen = livegamedata.isOpen;\n betlimit = livegamedata.betLimit || {};\n openhours = livegamedata.openHours;\n seats = createDisplayData(livegamedata).seats;\n if (openhours && openhours.value) {\n const { value: { startTime: starttimeRaw /* , timeFormat: timeFormatRaw */, originalTimeFormat } } = openhours;\n starttime = starttimeRaw;\n timeformat = originalTimeFormat || timeformat;\n }\n if (isopen) {\n displaytype = getGameComponent(livegamedata);\n }\n currencySymbol = currenciesSymbols[currency];\n min = (betlimit.min || {})[currency];\n max = (betlimit.max || {})[currency];\n currentroulettenumbers = livegamedata.currentRouletteNumbers;\n currentdoubleballroulettenumbers = livegamedata.currentDoubleBallRouletteNumbers;\n vendorcategory = livegamedata.vendorCategory;\n isdouble = vendorcategory.toLowerCase() === DOUBLE_ROULETTE;\n roulleteresults = (isdouble ? currentdoubleballroulettenumbers : currentroulettenumbers) || [];\n roulettecontainerclassname = 'GameProp LiveProps RoulleteProps';\n roulettecontainerclassname += isdouble ? ' Double' : '';\n colorsourcearray = contains(roulettecategory, vendorcategory.toLowerCase()) ? ROULETTE_COLOR_MAP : MONEY_WHEEL_COLOR_MAP;\n oldistablefull = istablefull;\n istablefull = Array.isArray(currentoccupiedseats) && currentoccupiedseats.length === totalseats;\n if (livegamedata.dealer) {\n dealername = livegamedata.dealer.DealerName;\n }\n numberofplayers = livegamedata.numberOfPlayers;\n extraclassname = 'ListGame';\n if(livegamedata.isOpen && livegamedata.currentRouletteNumbers) {\n extraclassname += ' GameBackdrop';\n }\n if (isopen && istablefull && min && max && livegamedata.currentOccupiedSeats) {\n extraclassname += ' GameContainerDimmed';\n } else {\n if (isopen === false && starttime) {\n extraclassname += ' GameContainerFullyDimmed';\n }\n }\n if (customStylingContainer) {\n if (!oldistablefull && istablefull) {\n extraclassname += ' PulsatingRedShadow';\n extraclassname = extraclassname.replace(' PulsatingGreenShadow', '');\n } else if (oldistablefull && !istablefull) {\n extraclassname += ' PulsatingGreenShadow';\n extraclassname = extraclassname.replace(' PulsatingRedShadow', '');\n }\n }\n }\n }\n const toggleConnect = ():void => {\n if (connectlive === 'disconnect') {\n disconnectGameFromLiveLobby();\n } else if (connectlive === 'connect') {\n connectGameToLiveLobby();\n }\n }\n const toggleVisibilityConnect = ():void => {\n if (visibilityconnect === 'disconnect') {\n disconnectGameFromLiveLobby();\n } else if (visibilityconnect === 'connect' && connectlive === 'connect') {\n connectGameToLiveLobby();\n }\n }\n\n onMount(() => {\n window.addEventListener('message', messageHandler, false);\n\n return () => {\n window.removeEventListener('message', messageHandler);\n if (liveLobbyConnection) {\n liveLobbyConnection.removeEventListener('message', liveLobbyMessageHandler);\n }\n }\n });\n\n $: connectlive && toggleConnect();\n $: visibilityconnect && toggleVisibilityConnect();\n $: lang && setActiveLanguage();\n $: session && userid && endpoint && setSession();\n $: gamethumbnail && setOnLoad();\n $: clientstyling && setClientStyling();\n $: favorites && setFavorites();\n $: gamecellsize && clientstylingurl && setClientStylingURL();\n $: endpoint && livelobbyendpoint && setLiveLobbyData();\n $: livegamedata && updateComponent();\n $: roulletteref && roulleteresults && attachAnimations();\n</script>\n\n<div class={`GameContainer ${extraclassname}`} part={`GameContainer ${extraclassname}`} bind:this={customStylingContainer}>\n <div class=\"GameInnerContainer { (livegamedata && !isopen && openhours.value) || (livegamedata && istablefull) ? 'GameInnerContainerUnavailable' : ''}\" part=\"GameInnerContainer { (livegamedata && !isopen) || (livegamedata && istablefull) ? 'GameInnerContainerUnavailable' : ''}\" on:mouseenter={gameHover} on:mouseleave={gameBlur} on:touchstart={gameTouch} on:touchend={gameTouchEnd}>\n <img src={gamethumbnail} class={`GameBg GameBg-${gamecellsize} ${hover ? 'GameContainerHovered' : ''} ${loaded ? 'Loaded' : ''}`} part=\"GameBg {hover ? 'GameContainerHovered' : ''} {loaded ? 'Loaded' : ''}\" alt=\"\" bind:this={image} loading=\"lazy\" />\n <div class=\"GameInfoWrapper\" part=\"GameInfoWrapper\">\n <div class=\"GameInfo {hover ? 'GameHovered' : ''}\" part=\"GameInfo {hover ? 'GameHovered' : ''}\">\n {#if fav}\n {#if !isMobile(userAgent) && !gamefavorite && isLoggedIn}\n <div class=\"FavIconContainer\" part=\"FavIconContainer\" on:click=\"{() => toggleFavoriteGame(gameid)}\">\n <svg version=\"1.1\" class=\"UnfavoredIcon\" part=\"UnfavoredIcon\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"20px\" y=\"20px\"\n viewBox=\"0 0 512.001 512.001\" style=\"enable-background:new 0 0 512.001 512.001;\" xml:space=\"preserve\"><path style=\"fill: white\" d=\"M511.266,197.256c-1.764-5.431-6.458-9.388-12.108-10.209l-158.722-23.065L269.452,20.155\n c-2.527-5.12-7.741-8.361-13.451-8.361c-5.709,0-10.924,3.242-13.451,8.361l-70.988,143.828L12.843,187.047\n c-5.65,0.821-10.344,4.779-12.108,10.209c-1.765,5.43-0.293,11.391,3.795,15.376l114.848,111.955L92.27,482.67\n c-0.965,5.627,1.349,11.315,5.968,14.67c4.618,3.355,10.74,3.798,15.797,1.142L256,423.846l141.961,74.637\n c2.195,1.154,4.591,1.723,6.979,1.723c3.11,0,6.206-0.966,8.818-2.865c4.619-3.356,6.933-9.043,5.968-14.671L392.61,324.587\n l114.86-111.954C511.559,208.647,513.031,202.686,511.266,197.256z M366.023,308.608c-3.536,3.446-5.15,8.412-4.314,13.278\n l23.311,135.898l-122.038-64.162c-4.37-2.297-9.591-2.297-13.961,0l-122.045,64.163l23.304-135.9\n c0.834-4.866-0.779-9.83-4.313-13.276l-98.731-96.244l136.445-19.829c4.886-0.71,9.108-3.778,11.294-8.205L256,60.685\n l61.023,123.645c2.186,4.427,6.408,7.496,11.294,8.206l136.447,19.828L366.023,308.608z\"/></svg>\n </div>\n {/if}\n {/if}\n <p class=\"GameInfoName\" part=\"GameInfoName\" title=\"{gamename}\">{gamename}</p>\n <button class=\"GameInfoBtn\" part=\"GameInfoBtn\" on:click=\"{() => toggleGameFrame(gameid)}\">{$_('gameThumbnail.playNow')}</button>\n </div>\n <span class=\"GameInfoVendor\" part=\"GameInfoVendor\">\n { gamevendor ? gamevendor : '-'}\n </span>\n </div>\n {#if !isMobile(userAgent) && gamefavorite && isLoggedIn && favorites}\n <div class=\"FavIconContainer\" part=\"FavIconContainer\" on:click=\"{() => toggleFavoriteGame(gameid)}\">\n <svg version=\"1.1\" class=\"FavoredIcon\" part=\"FavoredIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 19.481 19.481\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" enable-background=\"new 0 0 19.481 19.481\">\n <path style=\"fill: white\" d=\"m10.201,.758l2.478,5.865 6.344,.545c0.44,0.038 0.619,0.587 0.285,0.876l-4.812,4.169 1.442,6.202c0.1,0.431-0.367,0.77-0.745,0.541l-5.452-3.288-5.452,3.288c-0.379,0.228-0.845-0.111-0.745-0.541l1.442-6.202-4.813-4.17c-0.334-0.289-0.156-0.838 0.285-0.876l6.344-.545 2.478-5.864c0.172-0.408 0.749-0.408 0.921,0z\"/>\n </svg>\n </div>\n {:else if isMobile(userAgent) && gamefavorite && isLoggedIn && favorites}\n <div class=\"FavIconContainer\" part=\"FavIconContainer\">\n <svg version=\"1.1\" class=\"FavoredIcon\" part=\"FavoredIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 19.481 19.481\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" enable-background=\"new 0 0 19.481 19.481\">\n <path style=\"fill: white\" d=\"m10.201,.758l2.478,5.865 6.344,.545c0.44,0.038 0.619,0.587 0.285,0.876l-4.812,4.169 1.442,6.202c0.1,0.431-0.367,0.77-0.745,0.541l-5.452-3.288-5.452,3.288c-0.379,0.228-0.845-0.111-0.745-0.541l1.442-6.202-4.813-4.17c-0.334-0.289-0.156-0.838 0.285-0.876l6.344-.545 2.478-5.864c0.172-0.408 0.749-0.408 0.921,0z\"/>\n </svg>\n </div>\n {/if}\n <div class=\"GameExtraInfo\" part=\"GameExtraInfo\">\n {#if gameisnew}\n <span class=\"GameExtraInfoLabel NewGameTag\" part=\"GameExtraInfoLabel NewGameTag\">{$_('gameThumbnail.new')}</span>\n {/if}\n {#if (parseInt(gamepopularity) > 0)}\n <span class=\"GameExtraInfoLabel PopularGameTag\" part=\"GameExtraInfoLabel PopularGameTag\">{$_('gameThumbnail.hot')}</span>\n {/if}\n {#if livegamedata}\n {#if !isopen && starttime && timeformat}\n <div class=\"GameProp LiveProps\" part=\"GameProp LiveProps\">\n <div class=\"ClosedGame\" part=\"ClosedGame\">\n {$_('gameThumbnail.opens')}\n <span>\n {moment.utc(starttime).local().format(timeformat)}\n </span>\n </div>\n {@html renderDealerName(dealername)}\n {@html renderBetLimits(min, max, currencySymbol)}\n </div>\n {/if}\n {#if isopen && displaytype && displaytype === BLACKJACK}\n <div class=\"GameProp LiveProps BlackjackDisplay\" part=\"GameProp LiveProps BlackjackDisplay\">\n <div class=\"LiveIcons\" part=\"LiveIcons\">\n {#if istablefull}\n <span class=\"FullTable\" part=\"FullTable\">\n {$_('gameThumbnail.full')}\n </span>\n {:else}\n {#each seats as seatData}\n <span class={contains(currentoccupiedseats, seatData.toString()) ? 'ClosedSeat' : 'OpenSeat'} part={contains(currentoccupiedseats, seatData.toString()) ? 'ClosedSeat' : 'OpenSeat'}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"14\" viewBox=\"0 0 13 14\">\n <path d=\"M11.58 6c-1.17 0-2.13.95-2.13 2.12v.4a8.82 8.82 0 00-2.92-.4c-1.54 0-2.45.22-2.92.4v-.4A2.136 2.136 0 001.48 6a1.33 1.33 0 00-.5 2.55c.14.07.24.21.24.37l.26 1.06c0 .96.73 1.75 1.65 1.85a.65.65 0 00.28 1.23.65.65 0 00.3-1.22h5.64a.65.65 0 00.3 1.22.65.65 0 00.28-1.23c.93-.1 1.65-.9 1.65-1.85l.27-1.06c0-.16.1-.3.24-.37A1.33 1.33 0 0011.58 6z\"/>\n <path d=\"M4.34 7.5c.55-.1 1.27-.17 2.2-.17.91 0 1.63.07 2.18.17.21-.96.9-1.74 1.8-2.1V4a3.99 3.99 0 00-7.97 0v1.4c.9.36 1.58 1.14 1.79 2.1z\"/>\n </svg>\n </span>\n {/each}\n {/if}\n </div>\n {@html renderDealerName(dealername)}\n {@html renderBetLimits(min, max, currencySymbol)}\n </div>\n {:else if isopen && displaytype && displaytype === ROULETTE}\n <div class=\"{roulettecontainerclassname}\" part=\"{roulettecontainerclassname}\">\n <div class=\"LiveIcons\" part=\"LiveIcons\" bind:this={roulletteref}>\n {#each new Array(numberofdisplayedresults) as garbage, i}\n {#if roulleteresults && roulleteresults[i]}\n {#if isdouble}\n <div class=\"Double\" part=\"Double\">\n {@html renderSpan(`LatestResult ${i === 0 ? 'First' : ''}`, `first${i}${roulleteresults[i][0]}`, roulleteresults[i][0], colorsourcearray[roulleteresults[i][0]])}\n {@html renderSpan(`LatestResult ${i === 0 ? 'First' : ''}`, `second${i}${roulleteresults[i][1]}`, roulleteresults[i][1], colorsourcearray[roulleteresults[i][1]])}\n </div>\n {:else}\n {@html renderSpan(`LatestResult ${i === 0 ? 'First' : ''}`, i, roulleteresults[i], colorsourcearray[roulleteresults[i]])}\n {/if}\n {/if}\n {/each}\n </div>\n {@html renderDealerName(dealername)}\n {@html renderBetLimits(min, max, currencySymbol)}\n </div>\n {/if}\n {/if}\n </div>\n </div>\n {#if showgamename}\n <p class=\"GameNameBelow\" part=\"GameNameBelow\" title=\"{gamename}\">{gamename}</p>\n {/if}\n</div>\n\n\n<style lang=\"scss\">\n\n :host {\n font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';\n }\n\n *, *::before, *::after {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n\n .GameContainer {\n width: 100%;\n height: 100%;\n position: relative;\n }\n\n .GameInnerContainer {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n border-radius: 5px;\n .GameBg {\n width: 100%;\n height: 100%;\n object-fit: unset;\n transition: all 150ms ease-in-out;\n &.GameBg-1x2,\n &.GameBg-2x1,\n &.GameBg-2x2 { object-fit: cover; }\n }\n\n .GameInfoWrapper {\n display: none;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: rgba(0, 0, 0, .65);\n z-index: 15;\n\n .GameInfo {\n display: flex;\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n &Name {\n color: white;\n margin-bottom: 10px;\n text-align: center;\n font-size: 14px;\n }\n\n &Btn {\n appearance: none;\n padding: 6px;\n background: var(--emfe-w-color-primary, #D0046C);\n color: var(--emfe-w-color-primary-50, #FBECF4);\n font-size: 16px;\n border: 2px solid var(--emfe-w-color-primary-600, #99034F);\n border-radius: 5px;\n cursor: pointer;\n transition: border 150ms ease-in-out;\n\n &:hover {\n border: 2px solid var(--emfe-w-color-primary-100, #F1BED9);\n }\n }\n }\n\n .GameInfoVendor {\n display: block;\n position: absolute;\n bottom: 8px;\n right: 8px;\n color: white;\n font-size: 12px;\n font-weight: normal;\n }\n }\n\n &:hover {\n cursor: pointer;\n\n .GameInfoWrapper{\n display: block;\n }\n\n .GameBg {\n filter: blur(5px) grayscale(1);\n }\n }\n\n .GameExtraInfo {\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 8px;\n left: 8px;\n z-index: 0;\n &Label {\n font-size: 11px;\n padding: 3px;\n background-color: var(--emfe-w-color-primary, #D0046C);\n color: var(--emfe-w-color-primary-50, #FBECF4);\n font-weight: bold;\n text-transform: uppercase;\n border-radius: 5px;\n }\n }\n }\n\n .GameNameBelow {\n color: var(--emfe-w-color-white, #FFFFFF);\n position: relative;\n bottom: -5px;\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n .FavoredIcon, .UnfavoredIcon {\n width: 20px;\n height: 20px;\n }\n .FavIconContainer {\n position: absolute;\n top: 10px;\n right: 10px;\n cursor: pointer;\n z-index: 15;\n }\n\n // LIVE LOBBY DATA STYLING\n .GamesWrapper .ListGame:hover .GamePlayNowText {\n @media (min-width: 1100px) {\n z-index: 4;\n }\n }\n // dim the game that doesn't have open seats or table is full\n .ListGame:hover, .ListGame:active {\n .OpenSeat, .ClosedSeat, .LiveLimits, .LatestResult, .FullTable {\n opacity: .2;\n }\n }\n // fix for displaying live game thumbnails that don't have details without backdrop\n .ListGame.GameBackdrop {\n .GameInnerContainer {\n &::after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: linear-gradient(0deg, rgba(0,0,0,1) 15%, rgba(0,0,0,0) 100%);\n }\n }\n }\n\n .ListGame .GameInnerContainer {\n z-index: 0;\n\n .GameBg {\n z-index: 5;\n }\n\n .GameExtraInfo {\n z-index: 10;\n }\n &::after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n\n &.GameInnerContainerUnavailable {\n &::after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: rgba(0,0,0,0.9);\n }\n }\n\n .ListGame.GameContainerDimmed:before {\n display: block;\n content: ' ';\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 5;\n background: rgba(0,0,0, .4);\n color: var(--emfe-w-color-white, #FFFFFF);\n fill: var(--emfe-w-color-white, #FFFFFF);\n opacity: 1;\n border-radius: 4px;\n }\n\n .ListGame.GameContainerFullyDimmed:before {\n display: block;\n content: ' ';\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 5;\n background: rgba(0,0,0, .8);\n color: var(--emfe-w-color-white, #FFFFFF);\n fill: var(--emfe-w-color-white, #FFFFFF);\n opacity: 1;\n border-radius: 4px;\n }\n\n .LiveProps {\n display: flex;\n flex-direction: column;\n position: absolute;\n bottom: 8px;\n left: -8px;\n right: 0;\n width: 100%;\n padding: 0;\n background: linear-gradient(to top, rgba(0,0,0,.1) 0%, rgba(0,0,0,.2) 60%, rgba(0,0,0,.3) 80%, rgba(0,0,0,.99) 100%);\n color: var(--emfe-w-color-white, #FFFFFF);\n opacity: 1;\n font-size: 14px;\n }\n\n .ListGame:hover .LiveProps,\n .ListGameLink:hover .LiveProps {\n opacity: 0;\n }\n //--------------------------------------LIVE LOBBY ANIMATIONS------------------------------------------\n // Pulsating animations\n @keyframes red-pulse {\n 0% {\n box-shadow: 0 0 2px 0 rgba(red, 0.75);\n }\n\n 15% {\n box-shadow: 0 0 10px 2px rgba(red, 0.75);\n }\n\n 30% {\n box-shadow: 0 0 2px 0 rgba(red, 0.75);\n }\n\n 50% {\n box-shadow: 0 0 10px 2px rgba(red, 0.75);\n }\n\n 65% {\n box-shadow: 0 0 2px 0 rgba(red, 0.75);\n }\n\n 80% {\n box-shadow: 0 0 10px 2px rgba(red, 0.75);\n }\n\n 100% {\n box-shadow: 0 0 0 0 rgba(red, 0.75);\n }\n }\n\n @keyframes green-pulse {\n 0% {\n box-shadow: 0 0 2px 0 rgba(#56A80A, 0.75);\n }\n\n 15% {\n box-shadow: 0 0 10px 2px rgba(#56A80A, 0.75);\n }\n\n 30% {\n box-shadow: 0 0 2px 0 rgba(#56A80A, 0.75);\n }\n\n 50% {\n box-shadow: 0 0 10px 2px rgba(#56A80A, 0.75);\n }\n\n 65% {\n box-shadow: 0 0 2px 0 rgba(#56A80A, 0.75);\n }\n\n 80% {\n box-shadow: 0 0 10px 2px rgba(#56A80A, 0.75);\n }\n\n 100% {\n box-shadow: 0 0 0 0 rgba(#56A80A, 0.75);\n }\n }\n // Flip animation\n @keyframes flip-open {\n 0% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n opacity: 0;\n }\n 40% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n }\n 60% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n opacity: 1;\n }\n 80% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n }\n 100% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n }\n\n .silde-in-from-left {\n -webkit-animation-name: silde-in-from-left;\n animation-name: silde-in-from-left;\n -webkit-animation-duration: 1s;\n animation-duration: 1s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n }\n @-webkit-keyframes silde-in-from-left {\n 0% {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n visibility: visible;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n }\n @keyframes silde-in-from-left {\n 0% {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n visibility: visible;\n }\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n }\n\n @keyframes flip-closed-seat {\n 0% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n opacity: 0;\n }\n 40% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n }\n 60% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n opacity: 1;\n }\n 80% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n }\n 100% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n }\n\n // .Page-LiveCasino .GamesListContainer,\n // .Page-LiveCasino-Child .GamesListContainer,\n // .Page-LiveCasino .OperatorSticky .GamesListContainer,\n // .Page-LiveCasino .CasinoGames .GamesListContainer,\n // .Page-Live-casinoSource .GamesListContainer,\n // .Page-Live-casinoSource .GamesListContainer,\n // .Page-Live-casinoSource .OperatorSticky .GamesListContainer,\n // .Page-Live-casinoSource .CasinoGames .GamesListContainer {\n // overflow: visible;\n // }\n\n .ListGame.PulsatingGreenShadow, .ListGame.PulsatingRedShadow {\n overflow: auto;\n }\n\n .ListGame.PulsatingGreenShadow {\n animation: green-pulse 2s linear;\n }\n\n .ListGame.PulsatingRedShadow {\n animation: red-pulse 2s linear;\n }\n\n .LiveIcons {\n position: relative;\n display: flex;\n padding: 0 16px;\n // flex-wrap: wrap;\n box-sizing: border-box;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n min-height: auto;\n margin-bottom: 5px;\n @media (min-width: 1100px) {\n min-height: auto;\n }\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n\n &.Black, &.Red, &.Green {\n color: var(--emfe-w-color-white, #FFFFFF);\n border: 1px solid var(--emfe-w-color-white, #FFFFFF);\n }\n\n .LatestResult {\n min-width: 12px;\n padding: 2px;\n margin: 0 1px;\n margin-right: 6px;\n font-size: 14px;\n text-align: center;\n @media (min-width: 1100px) {\n min-width: 12px;\n font-size: 14px;\n margin: 0 2px;\n margin-right: 5px;\n padding: 2px;\n }\n\n &.FirstElementAnimated {\n animation: flip-open 2s both;\n -webkit-animation: flip-open 2s both;\n -webkit-backface-visibility: visible;\n backface-visibility: visible;\n }\n\n &.First {\n min-width: 24px;\n &.Black, &.Red, &.Green {\n color: var(--emfe-w-color-white, #FFFFFF);\n border: 1px solid var(--emfe-w-color-white, #FFFFFF);\n }\n &.Black {\n background: var(--emfe-w-color-black, #000000)\n }\n &.Red {\n background: red;\n }\n &.Green {\n background: #56A80A;\n }\n padding: 4px;\n @media (min-width: 1100px) {\n padding: 4px;\n }\n }\n }\n\n .Double {\n display: flex;\n flex-direction: column;\n\n .LatestResult {\n &:first-child {\n margin-bottom: 10px;\n }\n }\n\n &:first-child {\n .LatestResult {\n margin-left: 0;\n margin-bottom: 0;\n }\n }\n\n &:last-child {\n .LatestResult {\n margin-right: 0;\n }\n }\n }\n\n .Black, .Red, .Green {\n background-color: transparent;\n }\n\n .Black {\n color: var(--emfe-w-color-white, #FFFFFF);\n }\n\n .Red {\n color: red;\n }\n\n .Green {\n color: #56A80A;\n }\n }\n\n .Blue {\n color: #4d90a7;\n }\n\n .Red {\n background-color: red;\n }\n\n .Black {\n background-color: var(--emfe-w-color-black, #000000);\n }\n\n .Green {\n background-color: #56A80A;\n }\n\n .White {\n background-color: var(--emfe-w-color-white, #FFFFFF);\n }\n\n .Yellow {\n background-color: #eeca3d;\n }\n\n .Gold {\n background-color: darken(#eeca3d, 30%);\n }\n\n .Orange {\n background-color: darken(#eeca3d, 40%);\n }\n\n .Purple {\n background-color: darken(#f0f, 40%);\n }\n\n .Tie {\n background-color: var(--emfe-w-color-white, #FFFFFF);\n background-image: linear-gradient(135deg, var(--emfe-w-color-white, #FFFFFF) 25%, transparent 25%, transparent 50%, #212121 50%, var(--emfe-w-color-white, #FFFFFF) 75%, transparent 75%, var(--emfe-w-color-white, #FFFFFF));\n }\n .OpenSeat, .ClosedSeat {\n display: inline-block;\n width: 16px;\n height: 16px;\n margin-right: 4px;\n @media (min-width: 768px) {\n width: 16px;\n height: 16px;\n }\n @media (min-width: 1100px) {\n width: 16px;\n height: 16px;\n }\n svg {\n width: 100%;\n height: 100%;\n }\n }\n .OpenSeat {\n animation: flip-closed-seat 2s both;\n -webkit-animation: flip-closed-seat 2s both;\n -webkit-backface-visibility: visible;\n backface-visibility: visible;\n }\n .ClosedSeat {\n animation: flip-open 2s both;\n -webkit-animation: flip-open 2s both;\n -webkit-backface-visibility: visible;\n backface-visibility: visible;\n }\n .OpenSeat svg {\n fill: transparent;\n stroke: var(--emfe-w-color-white, #FFFFFF);\n }\n .ClosedSeat svg {\n fill: var(--emfe-w-color-white, #FFFFFF);\n }\n .FullTable {\n display: flex;\n position: relative;\n z-index: 10;\n height: 20px;\n padding: 1px 4px 1px 0;\n align-items: center;\n border-radius: 3px;\n font-size: 12px;\n white-space: normal;\n text-transform: uppercase;\n -webkit-animation-name: silde-in-from-left;\n animation-name: silde-in-from-left;\n -webkit-animation-duration: 1s;\n animation-duration: 1s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n svg {\n width: 100%;\n height: 100%;\n fill: var(--emfe-w-color-white, #FFFFFF);\n }\n &.ClosedSeat {\n margin-right: -3px;\n }\n }\n .PlayersDisplay {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n padding: 2px 10px;\n background: linear-gradient(to bottom, rgba(33, 33, 33, .9) 0%, rgba(33, 33, 33, .1) 100%);\n color: var(--emfe-w-color-white, #FFFFFF);\n @media (min-width: 1100px) {\n padding: 2px 16px;\n }\n .PlayersIcon {\n width: 14px;\n height: 14px;\n margin-right: 4px;\n //@media (min-width: 1100px) {\n // width: 1.7rem;\n // height: 1.7rem;\n //}\n svg {\n fill: var(--emfe-w-color-white, #FFFFFF);\n width: 100%;\n height: 100%;\n }\n }\n }\n .ClosedGame {\n opacity: 1;\n z-index: 10;\n padding: 8px 10px;\n color: var(--emfe-w-color-white, #FFFFFF);\n font-size: 18px;\n @media (min-width: 1100px) {\n padding: 8px 16px;\n }\n span {\n font-size: 18px;\n }\n }\n .LiveLimits {\n opacity: 1;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding: 2px 20px 5px 20px;\n background: var(--emfe-w-color-black, #000000);\n color: var(--emfe-w-color-white, #FFFFFF);\n font-weight: normal;\n font-size: 12px;\n @media (min-width: 1100px) {\n padding: 2px 18px 5px 18px;\n }\n span {\n font-size: 12px;\n }\n }\n .Players {\n display: inline-block;\n width: 19px;\n height: 19px;\n }\n}\n</style>\n","import CasinoGameThumbnail from './CasinoGameThumbnail.svelte';\n\n!customElements.get('casino-game-thumbnail') && customElements.define('casino-game-thumbnail', CasinoGameThumbnail);\nexport default CasinoGameThumbnail;\n","<svelte:options tag={null} />\n\n<script lang=\"ts\">\n import { _, addNewMessages, setLocale } from './i18n';\n import { Translations } from './translations.js';\n import { getDevice } from 'rvhelper';\n import { onMount } from 'svelte';\n \n import '@everymatrix/casino-game-thumbnail'; \n\n export let endpoint:string = '';\n export let datasource:string = '';\n export let lang:string = 'en';\n export let clientstyling:string = '';\n export let clientstylingurl:string = '';\n\n let userAgent:any = window.navigator.userAgent;\n let searchArray:Array<any> = [];\n let searchedValues:any = [];\n let gamesCache:Object = {};\n\n let searchValue:string = '';\n let searchElement:HTMLElement;\n let searchCancelled:boolean = true;\n let searchActive:boolean = false;\n \n let isLoading:boolean = false; \n let customStylingContainer:HTMLElement;\n\n Object.keys(Translations).forEach((item:any):void => {\n addNewMessages(item, Translations[item]);\n });\n\n const messageHandler = (e:any):void => {\n if (e.data && e.data.type == 'OpenGameFrame') {\n addSearchedItem(e.data.gameId);\n }\n }\n\n const onFocus = ():void => {\n searchCancelled = false;\n searchActive = true;\n \n if (endpoint && datasource && lang) {\n if (searchValue.length < 2) {\n let recentSearchedGames = getCookieValue(`searchedGamesWds_casino`);\n let recentSearchedGamesArray:Array<any> = [];\n\n if (recentSearchedGames) {\n recentSearchedGamesArray = recentSearchedGames.split(',');\n }\n \n let promises:Array<Promise<any>> = [];\n let index = 0;\n let length = recentSearchedGamesArray.length;\n\n if (length > 0) {\n for (index = 0; index < length; index++) {\n let url:any = new URL(`${endpoint}/casino/games/${recentSearchedGamesArray[index]}`);\n\n url.searchParams.append('language', lang);\n url.searchParams.append('datasource', datasource);\n url.searchParams.append('platform', getDevice(userAgent));\n\n promises.push(getGame(url, recentSearchedGamesArray[index]));\n }\n\n Promise.all(promises).then((res:any):void => {\n searchArray = res;\n });\n } \n }\n }\n }\n\n const getGames = (url:URL):Promise<any> => {\n return new Promise((resolve, reject):void => {\n isLoading = true;\n \n fetch(url.href)\n .then((res:any) => res.json())\n .then((games:any) => {\n isLoading = false;\n\n resolve(games);\n }).catch((err:any) => {\n isLoading = false;\n \n console.error(err);\n \n reject(err);\n });\n });\n }\n\n const getGame = (url:any, gameId?:string):Promise<any> => {\n return new Promise((resolve, reject) => {\n isLoading = true;\n\n if (gameId && Object.keys(gamesCache).indexOf(gameId) >= 0) {\n isLoading = false;\n\n resolve(gamesCache[gameId]);\n } else {\n fetch(url)\n .then(fetchRes => fetchRes.json())\n .then(gameData => {\n isLoading = false;\n\n gamesCache[gameData[0].gameId] = gameData[0];\n\n resolve(gameData[0]);\n }).catch((err:any) => {\n isLoading = false;\n\n console.error(err);\n\n reject(err);\n });\n }\n });\n }\n \n const addSearchedItem = (gameID:any):void => {\n searchedValues = getCookieValue(`searchedGamesWds_casino`);\n\n if (searchedValues) {\n searchedValues = searchedValues.split(',');\n } else {\n searchedValues = [];\n }\n\n if (searchedValues.indexOf(gameID) === -1) {\n let value;\n\n searchedValues.push(gameID);\n value = searchedValues.join(',');\n document.cookie = `searchedGamesWds_casino=` + value;\n }\n }\n\n const getCookieValue = (name:string):string => {\n let match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));\n \n if (match) {\n return match[2];\n }\n }\n\n const cancelSearch = ():void => {\n searchValue = '';\n searchCancelled = true;\n isLoading = false;\n searchArray = [];\n searchActive = false;\n }\n\n const clearSearch = ():void => {\n searchValue = '';\n searchElement.focus();\n }\n\n const setActiveLanguage = ():void => {\n setLocale(lang);\n }\n\n const setClientStyling = ():void => {\n let sheet = document.createElement('style');\n sheet.innerHTML = clientstyling;\n customStylingContainer.appendChild(sheet);\n }\n\n const setClientStylingURL = ():void => {\n let url:URL = new URL(clientstylingurl);\n let cssFile:HTMLElement = document.createElement('style');\n\n fetch(url.href)\n .then((res:any) => res.text())\n .then((data:any) => {\n cssFile.innerHTML = data\n\n if (customStylingContainer) {\n setTimeout(() => { customStylingContainer.appendChild(cssFile) }, 1);\n }\n });\n }\n\n $: if (searchValue.length >= 2) {\n const searchUrl:URL = new URL(`${endpoint}/casino/games`);\n \n searchUrl.searchParams.append(\"datasource\", datasource);\n searchUrl.searchParams.append(\"expand\", \"vendor\");\n searchUrl.searchParams.append(\"platform\", getDevice(userAgent));\n searchUrl.searchParams.append(\"language\", lang);\n searchUrl.searchParams.append(\"pagination\", \"offset=0,limit=30\");\n searchUrl.searchParams.append(\"filter\", `name=${searchValue}`);\n \n getGames(searchUrl).then((searchData:any) => {\n searchArray = searchData.items.map((item) => item);\n });\n } else {\n if (!searchCancelled) {\n onFocus();\n }\n }\n\n onMount(()=> {\n window.addEventListener('message', messageHandler, false);\n\n return () => {\n window.removeEventListener('message', messageHandler);\n }\n });\n\n $: lang && setActiveLanguage();\n $: clientstyling && setClientStyling();\n $: clientstylingurl && setClientStylingURL();\n \n</script>\n\n<div bind:this={customStylingContainer}>\n <div class=\"CasinoSearch\">\n <div class=\"Search\">\n <div class=\"SearchIcon\">\n <svg width=\"14\" height=\"15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path stroke=\"#212121\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m10.48 10.985 2.21 2.373\"/>\n <circle cx=\"6.5\" cy=\"6.5\" r=\"5.75\" stroke=\"#212121\" stroke-width=\"1.5\"/>\n </svg>\n </div>\n <div class=\"SearchContainer\">\n <input class=\"SearchInput\" type=\"search\" placeholder=\"Search for Games\" bind:value={searchValue} on:focus={onFocus} bind:this={searchElement}>\n <span on:click={() => clearSearch()} class=\"SearchClearButton { searchValue.length != 0 ? '' : 'NotVisible'}\">\n <svg width=\"11\" height=\"11\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m1.45 1.5 8.1 8M1.45 9.5l8.1-8\" stroke=\"#717171\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </span>\n </div>\n <small on:click={() => cancelSearch()} class=\"SearchCancelButton {searchCancelled ? 'NotVisible' : ''}\">\n {$_('Translations.cancel')}\n </small>\n </div>\n {#if isLoading}\n <p>{$_('Translations.loading')}</p>\n {:else}\n {#if searchActive == true && searchValue.length < 2}\n <p class=\"SearchMessage\">{$_('Translations.recentSearch')}</p>\n {:else if searchArray.length != 0} \n <p class=\"SearchMessage\">{$_('Translations.searchResult')}</p>\n {/if} \n <div class=\"SearchResultsContainer\">\n {#if searchCancelled === false}\n {#each searchArray as game}\n <casino-game-thumbnail\n lang={lang}\n gamethumbnail={game.thumbnail}\n gamename={game.name}\n gamevendor={game.vendor.name}\n gameisnew={game.isNew}\n gamepopularity={game.popularity}\n gamecellsize={game.cellSize}\n gameid={game.id}\n gamefunmode={game.hasFunMode}\n gamefavorite={game.isFavorite}\n livelobbyendpoint={game.details ? game.launchUrl : ''}\n endpoint={endpoint}\n ></casino-game-thumbnail>\n {/each}\n {/if}\n {#if searchValue.length >= 2 && searchArray.length == 0}\n <div class=\"ResultsContainerError\">\n <p class=\"SearchMessage\">{$_('Translations.notFound')}</p>\n <p>{$_('Translations.notFoundText')}</p>\n </div>\n {/if} \n </div>\n {/if}\n </div>\n</div>\n\n<style lang=\"scss\">\n :host {\n font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';\n }\n\n $color-grey: #717171;\n $color-light-grey: #cacaca;\n $color-black: #212121;\n\n $grid-gap: 8px;\n $grid-cell-size: 167px;\n $grid-cell-size-small: 110px;\n $grid-cell-size-medium: 122px;\n\n *,\n *::before,\n *::after {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n\n .NotVisible {\n display: none;\n }\n\n .CasinoSearch {\n margin: 16px;\n }\n\n .Search {\n display: flex;\n align-items: center;\n position: relative;\n justify-content: space-between;\n margin-bottom: 20px;\n\n &Icon{\n position: absolute;\n left: 5%;\n z-index: 1;\n\n svg {\n height: 14px;\n width: 13px;\n }\n }\n &Container { \n width: 100%;\n position: relative;\n }\n\n &Input {\n border-radius: 4px;\n border: 1px solid $color-light-grey;\n color: $color-grey;\n display: block;\n font-size: 16px;\n font-weight: 300;\n padding: 14px 5px 14px 46px;\n width:100%;\n \n &::placeholder {\n color: $color-grey;\n font-size: 16px;\n font-weight: 300;\n }\n\n &:focus {\n outline: 1px solid #d9d7d7;\n }\n\n &::-webkit-search-decoration,\n &::-webkit-search-cancel-button,\n &::-webkit-search-results-button,\n &::-webkit-search-results-decoration {\n -webkit-appearance:none;\n }\n }\n\n &ClearButton{\n position: absolute;\n top: 30%;\n right: 15px;\n }\n\n &CancelButton {\n color: $color-grey;\n font-weight: 300;\n margin-left: 8px;\n }\n\n &Message {\n font-size: 18px;\n font-weight: 600;\n margin: 24px 0;\n color: $color-black;\n }\n\n &ResultsContainer {\n display: grid;\n gap: $grid-gap;\n grid-template-columns: repeat(auto-fill, minmax(Min($grid-cell-size, 46%), 1fr));\n grid-template-rows: repeat(auto-fill, $grid-cell-size);\n grid-auto-rows: $grid-cell-size;\n grid-auto-columns: $grid-cell-size;\n grid-auto-flow: row dense;\n }\n}\n\n.ResultsContainerError {\n text-align: center;\n width: 300px;\n color: $color-grey;\n font-weight: 300;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n \n\n</style>\n","import CasinoSearch from './CasinoSearch.svelte';\n\n!customElements.get('casino-search') && customElements.define('casino-search', CasinoSearch);\nexport default CasinoSearch;\n"],"names":["noop","extendStatics","__extends","__spreadArray","e","t","n","addNewMessages","addMessages","locale","global","fetch","Symbol_observable","this","require","create_if_block_2","create_if_block_4","create_if_block_3","create_if_block_1","create_if_block"],"mappings":";;;;;;IAAA,SAASA,MAAI,GAAG,GAAG;IAWnB,SAAS,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACzD,IAAI,OAAO,CAAC,aAAa,GAAG;IAC5B,QAAQ,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACzC,KAAK,CAAC;IACN,CAAC;IACD,SAAS,GAAG,CAAC,EAAE,EAAE;IACjB,IAAI,OAAO,EAAE,EAAE,CAAC;IAChB,CAAC;IACD,SAAS,YAAY,GAAG;IACxB,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,SAAS,OAAO,CAAC,GAAG,EAAE;IACtB,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,SAAS,WAAW,CAAC,KAAK,EAAE;IAC5B,IAAI,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;IACvC,CAAC;IACD,SAAS,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE;IAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,KAAK,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,oBAAoB,CAAC;IACzB,SAAS,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE;IACzC,IAAI,IAAI,CAAC,oBAAoB,EAAE;IAC/B,QAAQ,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC3D,KAAK;IACL,IAAI,oBAAoB,CAAC,IAAI,GAAG,GAAG,CAAC;IACpC,IAAI,OAAO,WAAW,KAAK,oBAAoB,CAAC,IAAI,CAAC;IACrD,CAAC;IAID,SAAS,QAAQ,CAAC,GAAG,EAAE;IACvB,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,SAAS,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE;IACrC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE;IAChE,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;IAC9E,KAAK;IACL,CAAC;IACD,SAAS,SAAS,CAAC,KAAK,EAAE,GAAG,SAAS,EAAE;IACxC,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;IACvB,QAAQ,OAAOA,MAAI,CAAC;IACpB,KAAK;IACL,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;IAChD,IAAI,OAAO,KAAK,CAAC,WAAW,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC;IACjE,CAAC;IAMD,SAAS,mBAAmB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;IACzD,IAAI,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7D,CAAC;IAmPD,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE;IAC9B,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAmDD,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IACtC,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC;IAC9C,CAAC;IASD,SAAS,MAAM,CAAC,IAAI,EAAE;IACtB,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,SAAS,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE;IAC7C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACnD,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC;IACzB,YAAY,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACvC,KAAK;IACL,CAAC;IACD,SAAS,OAAO,CAAC,IAAI,EAAE;IACvB,IAAI,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAgBD,SAAS,WAAW,CAAC,IAAI,EAAE;IAC3B,IAAI,OAAO,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IACD,SAAS,IAAI,CAAC,IAAI,EAAE;IACpB,IAAI,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,SAAS,KAAK,GAAG;IACjB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,SAAS,KAAK,GAAG;IACjB,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IACD,SAAS,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;IAC/C,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnD,IAAI,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IA6BD,SAAS,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;IACtC,IAAI,IAAI,KAAK,IAAI,IAAI;IACrB,QAAQ,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACxC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,KAAK;IACnD,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IA2BD,SAAS,uBAAuB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;IACpD,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;IACtB,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC;IACpF,KAAK;IACL,SAAS;IACT,QAAQ,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAChC,KAAK;IACL,CAAC;IAyBD,SAAS,QAAQ,CAAC,OAAO,EAAE;IAC3B,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IA4HD,SAAS,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE;IACvC,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC;IAC7C,CAAC;IASD,SAAS,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;IAChD,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE;IACxB,QAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACvC,KAAK;IACL,SAAS;IACT,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,EAAE,CAAC,CAAC;IACzE,KAAK;IACL,CAAC;IAgFD,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE;IAClF,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACzD,IAAI,OAAO,CAAC,CAAC;IACb,CAAC;IAID,MAAM,OAAO,CAAC;IACd,IAAI,WAAW,CAAC,MAAM,GAAG,KAAK,EAAE;IAChC,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IAC5B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAC7B,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE;IACZ,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrB,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE;IACnC,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;IACrB,YAAY,IAAI,IAAI,CAAC,MAAM;IAC3B,gBAAgB,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtD;IACA,gBAAgB,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClD,YAAY,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;IAC5B,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzB,SAAS;IACT,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE;IACZ,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;IAChC,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC/C,KAAK;IACL,IAAI,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACnD,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9C,SAAS;IACT,KAAK;IACL,IAAI,CAAC,CAAC,IAAI,EAAE;IACZ,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC;IACjB,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrB,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,CAAC,GAAG;IACR,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,KAAK;IACL,CAAC;IAqBD,SAAS,mBAAmB,CAAC,UAAU,EAAE;IACzC,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;IACtB,IAAI,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;IACxC,QAAQ,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;IACjD,KAAK;IACL,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;AA+ID;IACA,IAAI,iBAAiB,CAAC;IACtB,SAAS,qBAAqB,CAAC,SAAS,EAAE;IAC1C,IAAI,iBAAiB,GAAG,SAAS,CAAC;IAClC,CAAC;IACD,SAAS,qBAAqB,GAAG;IACjC,IAAI,IAAI,CAAC,iBAAiB;IAC1B,QAAQ,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAC5E,IAAI,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAID,SAAS,OAAO,CAAC,EAAE,EAAE;IACrB,IAAI,qBAAqB,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;AA8CD;IACA,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAE5B,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAC7B,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAC5B,MAAM,eAAe,GAAG,EAAE,CAAC;IAC3B,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3C,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,SAAS,eAAe,GAAG;IAC3B,IAAI,IAAI,CAAC,gBAAgB,EAAE;IAC3B,QAAQ,gBAAgB,GAAG,IAAI,CAAC;IAChC,QAAQ,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,KAAK;IACL,CAAC;IACD,SAAS,IAAI,GAAG;IAChB,IAAI,eAAe,EAAE,CAAC;IACtB,IAAI,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IACD,SAAS,mBAAmB,CAAC,EAAE,EAAE;IACjC,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAID;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;IACjC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,SAAS,KAAK,GAAG;IACjB,IAAI,MAAM,eAAe,GAAG,iBAAiB,CAAC;IAC9C,IAAI,GAAG;IACP;IACA;IACA,QAAQ,OAAO,QAAQ,GAAG,gBAAgB,CAAC,MAAM,EAAE;IACnD,YAAY,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACzD,YAAY,QAAQ,EAAE,CAAC;IACvB,YAAY,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC7C,YAAY,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACjC,SAAS;IACT,QAAQ,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,QAAQ,QAAQ,GAAG,CAAC,CAAC;IACrB,QAAQ,OAAO,iBAAiB,CAAC,MAAM;IACvC,YAAY,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC;IACtC;IACA;IACA;IACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IAC7D,YAAY,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IAC/C;IACA,gBAAgB,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,gBAAgB,QAAQ,EAAE,CAAC;IAC3B,aAAa;IACb,SAAS;IACT,QAAQ,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,KAAK,QAAQ,gBAAgB,CAAC,MAAM,EAAE;IACtC,IAAI,OAAO,eAAe,CAAC,MAAM,EAAE;IACnC,QAAQ,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC;IAChC,KAAK;IACL,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;IAC3B,IAAI,qBAAqB,CAAC,eAAe,CAAC,CAAC;IAC3C,CAAC;IACD,SAAS,MAAM,CAAC,EAAE,EAAE;IACpB,IAAI,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,EAAE;IAC9B,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;IACpB,QAAQ,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAClC,QAAQ,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;IAC/B,QAAQ,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,QAAQ,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpD,QAAQ,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrD,KAAK;IACL,CAAC;IAeD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;IAe3B,SAAS,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE;IACrC,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE;IAC1B,QAAQ,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,QAAQ,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,KAAK;IACL,CAAC;AAoUD;IACA,MAAM,OAAO,IAAI,OAAO,MAAM,KAAK,WAAW;IAC9C,MAAM,MAAM;IACZ,MAAM,OAAO,UAAU,KAAK,WAAW;IACvC,UAAU,UAAU;IACpB,UAAU,MAAM,CAAC,CAAC;IA8VlB,SAAS,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE;IACnE,IAAI,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1E,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,aAAa,EAAE;IACxB;IACA,QAAQ,mBAAmB,CAAC,MAAM;IAClC,YAAY,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACzE,YAAY,IAAI,UAAU,EAAE;IAC5B,gBAAgB,UAAU,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;IACnD,aAAa;IACb,iBAAiB;IACjB;IACA;IACA,gBAAgB,OAAO,CAAC,cAAc,CAAC,CAAC;IACxC,aAAa;IACb,YAAY,SAAS,CAAC,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvC,SAAS,CAAC,CAAC;IACX,KAAK;IACL,IAAI,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IACD,SAAS,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE;IACjD,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IAC5B,IAAI,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,EAAE;IAC9B,QAAQ,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAChD;IACA;IACA,QAAQ,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC3C,QAAQ,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC;IACpB,KAAK;IACL,CAAC;IACD,SAAS,UAAU,CAAC,SAAS,EAAE,CAAC,EAAE;IAClC,IAAI,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;IACtC,QAAQ,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,QAAQ,eAAe,EAAE,CAAC;IAC1B,QAAQ,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK;IACL,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,SAAS,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAC5G,IAAI,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;IAC/C,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG;IAC9B,QAAQ,QAAQ,EAAE,IAAI;IACtB,QAAQ,GAAG,EAAE,IAAI;IACjB;IACA,QAAQ,KAAK;IACb,QAAQ,MAAM,EAAEA,MAAI;IACpB,QAAQ,SAAS;IACjB,QAAQ,KAAK,EAAE,YAAY,EAAE;IAC7B;IACA,QAAQ,QAAQ,EAAE,EAAE;IACpB,QAAQ,UAAU,EAAE,EAAE;IACtB,QAAQ,aAAa,EAAE,EAAE;IACzB,QAAQ,aAAa,EAAE,EAAE;IACzB,QAAQ,YAAY,EAAE,EAAE;IACxB,QAAQ,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,gBAAgB,GAAG,gBAAgB,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IAClG;IACA,QAAQ,SAAS,EAAE,YAAY,EAAE;IACjC,QAAQ,KAAK;IACb,QAAQ,UAAU,EAAE,KAAK;IACzB,QAAQ,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,gBAAgB,CAAC,EAAE,CAAC,IAAI;IACxD,KAAK,CAAC;IACN,IAAI,aAAa,IAAI,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC;IACtB,IAAI,EAAE,CAAC,GAAG,GAAG,QAAQ;IACrB,UAAU,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,KAAK;IACxE,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACtD,YAAY,IAAI,EAAE,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE;IACnE,gBAAgB,IAAI,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,oBAAoB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,gBAAgB,IAAI,KAAK;IACzB,oBAAoB,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC7C,aAAa;IACb,YAAY,OAAO,GAAG,CAAC;IACvB,SAAS,CAAC;IACV,UAAU,EAAE,CAAC;IACb,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;IAChB,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAC9B;IACA,IAAI,EAAE,CAAC,QAAQ,GAAG,eAAe,GAAG,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpE,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE;IACxB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE;IAE7B,YAAY,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD;IACA,YAAY,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAChD,YAAY,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,SAAS;IACT,aAAa;IACb;IACA,YAAY,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;IAC3C,SAAS;IACT,QAAQ,IAAI,OAAO,CAAC,KAAK;IACzB,YAAY,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IACjD,QAAQ,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1F,QAAQ,KAAK,EAAE,CAAC;IAChB,KAAK;IACL,IAAI,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,aAAa,CAAC;IAClB,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;IACvC,IAAI,aAAa,GAAG,cAAc,WAAW,CAAC;IAC9C,QAAQ,WAAW,GAAG;IACtB,YAAY,KAAK,EAAE,CAAC;IACpB,YAAY,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAChD,SAAS;IACT,QAAQ,iBAAiB,GAAG;IAC5B,YAAY,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACzC,YAAY,IAAI,CAAC,EAAE,CAAC,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC1E;IACA,YAAY,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE;IAC/C;IACA,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,aAAa;IACb,SAAS;IACT,QAAQ,wBAAwB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE;IAC5D,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;IAClC,SAAS;IACT,QAAQ,oBAAoB,GAAG;IAC/B,YAAY,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAC3C,SAAS;IACT,QAAQ,QAAQ,GAAG;IACnB,YAAY,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACvC,YAAY,IAAI,CAAC,QAAQ,GAAGA,MAAI,CAAC;IACjC,SAAS;IACT,QAAQ,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE;IAC5B;IACA,YAAY,MAAM,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1F,YAAY,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,YAAY,OAAO,MAAM;IACzB,gBAAgB,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,gBAAgB,IAAI,KAAK,KAAK,CAAC,CAAC;IAChC,oBAAoB,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC/C,aAAa,CAAC;IACd,SAAS;IACT,QAAQ,IAAI,CAAC,OAAO,EAAE;IACtB,YAAY,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;IAClD,gBAAgB,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC;IAC1C,gBAAgB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,gBAAgB,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;IAC3C,aAAa;IACb,SAAS;IACT,KAAK,CAAC;IACN,CAAC;AA0BD;IACA,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE;IACpC,IAAI,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChH,CAAC;IACD,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE;IAClC,IAAI,YAAY,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IAKD,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IAC1C,IAAI,YAAY,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAKD,SAAS,UAAU,CAAC,IAAI,EAAE;IAC1B,IAAI,YAAY,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAgBD,SAAS,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE;IAC9F,IAAI,MAAM,SAAS,GAAG,OAAO,KAAK,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;IACvG,IAAI,IAAI,mBAAmB;IAC3B,QAAQ,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACzC,IAAI,IAAI,oBAAoB;IAC5B,QAAQ,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC1C,IAAI,YAAY,CAAC,2BAA2B,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACnF,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,OAAO,MAAM;IACjB,QAAQ,YAAY,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1F,QAAQ,OAAO,EAAE,CAAC;IAClB,KAAK,CAAC;IACN,CAAC;IACD,SAAS,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;IAC1C,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,IAAI,IAAI;IACrB,QAAQ,YAAY,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACtE;IACA,QAAQ,YAAY,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;IASD,SAAS,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE;IAClC,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;IACrB,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;IAC/B,QAAQ,OAAO;IACf,IAAI,YAAY,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,SAAS,sBAAsB,CAAC,GAAG,EAAE;IACrC,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,EAAE,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG,CAAC,EAAE;IACzF,QAAQ,IAAI,GAAG,GAAG,gDAAgD,CAAC;IACnE,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,IAAI,MAAM,CAAC,QAAQ,IAAI,GAAG,EAAE;IAC3E,YAAY,GAAG,IAAI,+DAA+D,CAAC;IACnF,SAAS;IACT,QAAQ,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,KAAK;IACL,CAAC;IACD,SAAS,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;IAC1C,IAAI,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IAC9C,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;IACtC,YAAY,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,+BAA+B,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,SAAS;IACT,KAAK;IACL;;ICnhEA,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAC5B;IACA;IACA;IACA;IACA;IACA,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;IAChC,IAAI,OAAO;IACX,QAAQ,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,SAAS;IACnD,KAAK,CAAC;IACN,CAAC;IACD;IACA;IACA;IACA;IACA;IACA,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAGA,MAAI,EAAE;IACvC,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;IAClC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE;IAC5B,QAAQ,IAAI,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;IAC9C,YAAY,KAAK,GAAG,SAAS,CAAC;IAC9B,YAAY,IAAI,IAAI,EAAE;IACtB,gBAAgB,MAAM,SAAS,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC;IAC3D,gBAAgB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;IACtD,oBAAoB,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACpC,oBAAoB,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7D,iBAAiB;IACjB,gBAAgB,IAAI,SAAS,EAAE;IAC/B,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACzE,wBAAwB,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxE,qBAAqB;IACrB,oBAAoB,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IAChD,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,SAAS,MAAM,CAAC,EAAE,EAAE;IACxB,QAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,SAAS,SAAS,CAAC,GAAG,EAAE,UAAU,GAAGA,MAAI,EAAE;IAC/C,QAAQ,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC7C,QAAQ,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpC,QAAQ,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;IACpC,YAAY,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAIA,MAAI,CAAC;IACtC,SAAS;IACT,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,QAAQ,OAAO,MAAM;IACrB,YAAY,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3C,YAAY,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;IACxC,gBAAgB,IAAI,EAAE,CAAC;IACvB,gBAAgB,IAAI,GAAG,IAAI,CAAC;IAC5B,aAAa;IACb,SAAS,CAAC;IACV,KAAK;IACL,IAAI,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACtC,CAAC;IACD,SAAS,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE;IAC5C,IAAI,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,MAAM,YAAY,GAAG,MAAM;IAC/B,UAAU,CAAC,MAAM,CAAC;IAClB,UAAU,MAAM,CAAC;IACjB,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,IAAI,OAAO,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,KAAK;IAC5C,QAAQ,IAAI,MAAM,GAAG,KAAK,CAAC;IAC3B,QAAQ,MAAM,MAAM,GAAG,EAAE,CAAC;IAC1B,QAAQ,IAAI,OAAO,GAAG,CAAC,CAAC;IACxB,QAAQ,IAAI,OAAO,GAAGA,MAAI,CAAC;IAC3B,QAAQ,MAAM,IAAI,GAAG,MAAM;IAC3B,YAAY,IAAI,OAAO,EAAE;IACzB,gBAAgB,OAAO;IACvB,aAAa;IACb,YAAY,OAAO,EAAE,CAAC;IACtB,YAAY,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;IAChE,YAAY,IAAI,IAAI,EAAE;IACtB,gBAAgB,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,aAAa;IACb,iBAAiB;IACjB,gBAAgB,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,GAAGA,MAAI,CAAC;IAC9D,aAAa;IACb,SAAS,CAAC;IACV,QAAQ,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK;IACzF,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAC9B,YAAY,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,YAAY,IAAI,MAAM,EAAE;IACxB,gBAAgB,IAAI,EAAE,CAAC;IACvB,aAAa;IACb,SAAS,EAAE,MAAM;IACjB,YAAY,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,SAAS,CAAC,CAAC,CAAC;IACZ,QAAQ,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,OAAO,SAAS,IAAI,GAAG;IAC/B,YAAY,OAAO,CAAC,aAAa,CAAC,CAAC;IACnC,YAAY,OAAO,EAAE,CAAC;IACtB,SAAS,CAAC;IACV,KAAK,CAAC,CAAC;IACP;;IClGA,IAAI,iBAAiB,GAAG,SAAS,iBAAiB,CAAC,KAAK,EAAE;IAC1D,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC;IAC9B,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;IACtB,CAAC,CAAC;AACF;IACA,SAAS,eAAe,CAAC,KAAK,EAAE;IAChC,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;IAC5C,CAAC;AACD;IACA,SAAS,SAAS,CAAC,KAAK,EAAE;IAC1B,CAAC,IAAI,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzD;IACA,CAAC,OAAO,WAAW,KAAK,iBAAiB;IACzC,KAAK,WAAW,KAAK,eAAe;IACpC,KAAK,cAAc,CAAC,KAAK,CAAC;IAC1B,CAAC;AACD;IACA;IACA,IAAI,YAAY,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,GAAG,CAAC;IAC9D,IAAI,kBAAkB,GAAG,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC;AAC7E;IACA,SAAS,cAAc,CAAC,KAAK,EAAE;IAC/B,CAAC,OAAO,KAAK,CAAC,QAAQ,KAAK,kBAAkB;IAC7C,CAAC;AACD;IACA,SAAS,WAAW,CAAC,GAAG,EAAE;IAC1B,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;IACpC,CAAC;AACD;IACA,SAAS,6BAA6B,CAAC,KAAK,EAAE,OAAO,EAAE;IACvD,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC;IACpE,IAAI,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC;IACjD,IAAI,KAAK;IACT,CAAC;AACD;IACA,SAAS,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IACpD,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,OAAO,EAAE;IACpD,EAAE,OAAO,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC;IACxD,EAAE,CAAC;IACH,CAAC;AACD;IACA,SAAS,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE;IACxC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;IAC3B,EAAE,OAAO,SAAS;IAClB,EAAE;IACF,CAAC,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC,OAAO,OAAO,WAAW,KAAK,UAAU,GAAG,WAAW,GAAG,SAAS;IACnE,CAAC;AACD;IACA,SAAS,+BAA+B,CAAC,MAAM,EAAE;IACjD,CAAC,OAAO,MAAM,CAAC,qBAAqB;IACpC,IAAI,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE;IACjE,GAAG,OAAO,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC;IAC7C,GAAG,CAAC;IACJ,IAAI,EAAE;IACN,CAAC;AACD;IACA,SAAS,OAAO,CAAC,MAAM,EAAE;IACzB,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC;IAC3E,CAAC;AACD;IACA,SAAS,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE;IAC9C,CAAC,IAAI;IACL,EAAE,OAAO,QAAQ,IAAI,MAAM;IAC3B,EAAE,CAAC,MAAM,CAAC,EAAE;IACZ,EAAE,OAAO,KAAK;IACd,EAAE;IACF,CAAC;AACD;IACA;IACA,SAAS,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;IACvC,CAAC,OAAO,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;IAC9C,MAAM,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC;AACD;IACA,SAAS,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAC9C,CAAC,IAAI,WAAW,GAAG,EAAE,CAAC;IACtB,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE;IACxC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE;IACxC,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,6BAA6B,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1E,GAAG,CAAC,CAAC;IACL,EAAE;IACF,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE;IACvC,EAAE,IAAI,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;IACrC,GAAG,MAAM;IACT,GAAG;AACH;IACA,EAAE,IAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;IACjF,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACxF,GAAG,MAAM;IACT,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,6BAA6B,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1E,GAAG;IACH,EAAE,CAAC,CAAC;IACJ,CAAC,OAAO,WAAW;IACnB,CAAC;AACD;IACA,SAAS,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAC5C,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IACzB,CAAC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,iBAAiB,CAAC;IAC9D,CAAC,OAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,iBAAiB,CAAC;IAC5E;IACA;IACA,CAAC,OAAO,CAAC,6BAA6B,GAAG,6BAA6B,CAAC;AACvE;IACA,CAAC,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC,IAAI,yBAAyB,GAAG,aAAa,KAAK,aAAa,CAAC;AACjE;IACA,CAAC,IAAI,CAAC,yBAAyB,EAAE;IACjC,EAAE,OAAO,6BAA6B,CAAC,MAAM,EAAE,OAAO,CAAC;IACvD,EAAE,MAAM,IAAI,aAAa,EAAE;IAC3B,EAAE,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;IACpD,EAAE,MAAM;IACR,EAAE,OAAO,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;IAC7C,EAAE;IACF,CAAC;AACD;IACA,SAAS,CAAC,GAAG,GAAG,SAAS,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE;IACtD,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;IAC5B,EAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;IACtD,EAAE;AACF;IACA,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE;IAC1C,EAAE,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;IACvC,EAAE,EAAE,EAAE,CAAC;IACP,CAAC,CAAC;AACF;IACA,IAAI,WAAW,GAAG,SAAS,CAAC;AAC5B;IACA,IAAA,GAAc,GAAG,WAAW;;ICpI5B;IACA;AACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,IAAIC,eAAa,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE;IACnC,IAAIA,eAAa,GAAG,MAAM,CAAC,cAAc;IACzC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;IACpF,QAAQ,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1G,IAAI,OAAOA,eAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;AACF;IACO,SAASC,WAAS,CAAC,CAAC,EAAE,CAAC,EAAE;IAChC,IAAI,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;IAC7C,QAAQ,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;IAClG,IAAID,eAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,IAAI,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;IAC3C,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;AACD;IACO,IAAI,QAAQ,GAAG,WAAW;IACjC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;IACrD,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,SAAS;IACT,QAAQ,OAAO,CAAC,CAAC;IACjB,MAAK;IACL,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,EAAC;AA+HD;IACO,SAASE,eAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9C,IAAI,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IACzF,QAAQ,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;IAChC,YAAY,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,SAAS;IACT,KAAK;IACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D;;IChLO,IAAI,SAAS,CAAC;IACrB,CAAC,UAAU,SAAS,EAAE;IACtB;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,+BAA+B,CAAC,GAAG,CAAC,CAAC,GAAG,+BAA+B,CAAC;IAChG;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC;IAClE;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,GAAG,oBAAoB,CAAC;IAC1E;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,sBAAsB,CAAC;IAC9E;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,GAAG,uBAAuB,CAAC;IAChF;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,GAAG,uBAAuB,CAAC;IAChF;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,GAAG,yBAAyB,CAAC;IACpF;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,GAAG,4BAA4B,CAAC;IAC1F;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,GAAG,wBAAwB,CAAC;IAClF;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,2BAA2B,CAAC,GAAG,EAAE,CAAC,GAAG,2BAA2B,CAAC;IACzF;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,kCAAkC,CAAC,GAAG,EAAE,CAAC,GAAG,kCAAkC,CAAC;IACvG;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,gCAAgC,CAAC,GAAG,EAAE,CAAC,GAAG,gCAAgC,CAAC;IACnG;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,qCAAqC,CAAC,GAAG,EAAE,CAAC,GAAG,qCAAqC,CAAC;IAC7G;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,sCAAsC,CAAC,GAAG,EAAE,CAAC,GAAG,sCAAsC,CAAC;IAC/G;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,iCAAiC,CAAC,GAAG,EAAE,CAAC,GAAG,iCAAiC,CAAC;IACrG;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,iCAAiC,CAAC,GAAG,EAAE,CAAC,GAAG,iCAAiC,CAAC;IACrG;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,0CAA0C,CAAC,GAAG,EAAE,CAAC,GAAG,0CAA0C,CAAC;IACvH;IACA;IACA;IACA;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,0CAA0C,CAAC,GAAG,EAAE,CAAC,GAAG,0CAA0C,CAAC;IACvH;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,kCAAkC,CAAC,GAAG,EAAE,CAAC,GAAG,kCAAkC,CAAC;IACvG;IACA;IACA;IACA;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,oCAAoC,CAAC,GAAG,EAAE,CAAC,GAAG,oCAAoC,CAAC;IAC3G;IACA;IACA;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,oCAAoC,CAAC,GAAG,EAAE,CAAC,GAAG,oCAAoC,CAAC;IAC3G;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,GAAG,sBAAsB,CAAC;IAC/E;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,GAAG,aAAa,CAAC;IAC7D;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,GAAG,kBAAkB,CAAC;IACvE;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,GAAG,uBAAuB,CAAC;IACjF;IACA,IAAI,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,cAAc,CAAC;IAC/D,CAAC,EAAE,SAAS,KAAK,SAAS,GAAG,EAAE,CAAC,CAAC;;IC9D1B,IAAI,IAAI,CAAC;IAChB,CAAC,UAAU,IAAI,EAAE;IACjB;IACA;IACA;IACA,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IAC1C;IACA;IACA;IACA,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;IAC5C;IACA;IACA;IACA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;IACxC;IACA;IACA;IACA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;IACpC;IACA;IACA;IACA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;IACpC;IACA;IACA;IACA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;IACxC;IACA;IACA;IACA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;IACxC;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;IACtC;IACA;IACA;IACA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAClC,CAAC,EAAE,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;IACjB,IAAI,aAAa,CAAC;IACzB,CAAC,UAAU,aAAa,EAAE;IAC1B,IAAI,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;IAC1D,IAAI,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;IAC9D,CAAC,EAAE,aAAa,KAAK,aAAa,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1C;IACA;IACA;IACO,SAAS,gBAAgB,CAAC,EAAE,EAAE;IACrC,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC;IACpC,CAAC;IACM,SAAS,iBAAiB,CAAC,EAAE,EAAE;IACtC,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC;IACrC,CAAC;IACM,SAAS,eAAe,CAAC,EAAE,EAAE;IACpC,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC;IACnC,CAAC;IACM,SAAS,aAAa,CAAC,EAAE,EAAE;IAClC,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;IACjC,CAAC;IACM,SAAS,aAAa,CAAC,EAAE,EAAE;IAClC,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;IACjC,CAAC;IACM,SAAS,eAAe,CAAC,EAAE,EAAE;IACpC,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC;IACnC,CAAC;IACM,SAAS,eAAe,CAAC,EAAE,EAAE;IACpC,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC;IACnC,CAAC;IACM,SAAS,cAAc,CAAC,EAAE,EAAE;IACnC,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC;IAClC,CAAC;IACM,SAAS,YAAY,CAAC,EAAE,EAAE;IACjC,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC;IAChC,CAAC;IACM,SAAS,gBAAgB,CAAC,EAAE,EAAE;IACrC,IAAI,OAAO,CAAC,EAAE,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM,CAAC,CAAC;IAChF,CAAC;IACM,SAAS,kBAAkB,CAAC,EAAE,EAAE;IACvC,IAAI,OAAO,CAAC,EAAE,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC;IAClF;;IChFA;IACO,IAAI,qBAAqB,GAAG,8CAA8C;;ICDjF;IACA;IACA;IACA;IACA;IACA,IAAI,eAAe,GAAG,2KAA2K,CAAC;IAClM;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,qBAAqB,CAAC,QAAQ,EAAE;IAChD,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;IACpB,IAAI,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE;IACvD,QAAQ,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IAC/B,QAAQ,QAAQ,KAAK,CAAC,CAAC,CAAC;IACxB;IACA,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC;IACjF,gBAAgB,MAAM;IACtB;IACA,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC;IAChE,gBAAgB,MAAM;IACtB,YAAY,KAAK,GAAG,CAAC;IACrB,YAAY,KAAK,GAAG,CAAC;IACrB,YAAY,KAAK,GAAG,CAAC;IACrB,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,IAAI,UAAU,CAAC,8DAA8D,CAAC,CAAC;IACrG;IACA,YAAY,KAAK,GAAG,CAAC;IACrB,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,IAAI,UAAU,CAAC,4CAA4C,CAAC,CAAC;IACnF;IACA,YAAY,KAAK,GAAG,CAAC;IACrB,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,CAAC,KAAK,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC1F,gBAAgB,MAAM;IACtB;IACA,YAAY,KAAK,GAAG,CAAC;IACrB,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,IAAI,UAAU,CAAC,yCAAyC,CAAC,CAAC;IAChF,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC7D,gBAAgB,MAAM;IACtB,YAAY,KAAK,GAAG,CAAC;IACrB,YAAY,KAAK,GAAG,CAAC;IACrB,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,IAAI,UAAU,CAAC,2DAA2D,CAAC,CAAC;IAClG;IACA,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,CAAC,OAAO,GAAG,GAAG,KAAK,CAAC,GAAG,OAAO,GAAG,GAAG,KAAK,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC;IACtF,gBAAgB,MAAM;IACtB,YAAY,KAAK,GAAG;IACpB,gBAAgB,IAAI,GAAG,GAAG,CAAC,EAAE;IAC7B,oBAAoB,MAAM,IAAI,UAAU,CAAC,+CAA+C,CAAC,CAAC;IAC1F,iBAAiB;IACjB,gBAAgB,MAAM,CAAC,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC/E,gBAAgB,MAAM;IACtB,YAAY,KAAK,GAAG;IACpB,gBAAgB,IAAI,GAAG,GAAG,CAAC,EAAE;IAC7B,oBAAoB,MAAM,IAAI,UAAU,CAAC,+CAA+C,CAAC,CAAC;IAC1F,iBAAiB;IACjB,gBAAgB,MAAM,CAAC,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC/E,gBAAgB,MAAM;IACtB;IACA,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;IACrC,gBAAgB,MAAM;IACtB,YAAY,KAAK,GAAG,CAAC;IACrB,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,IAAI,UAAU,CAAC,4DAA4D,CAAC,CAAC;IACnG;IACA,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;IACzC,gBAAgB,MAAM,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC9D,gBAAgB,MAAM;IACtB,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;IACzC,gBAAgB,MAAM,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC9D,gBAAgB,MAAM;IACtB,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;IACzC,gBAAgB,MAAM,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC9D,gBAAgB,MAAM;IACtB,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;IACzC,gBAAgB,MAAM,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC9D,gBAAgB,MAAM;IACtB,YAAY,KAAK,GAAG,CAAC;IACrB,YAAY,KAAK,GAAG,CAAC;IACrB,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,IAAI,UAAU,CAAC,kEAAkE,CAAC,CAAC;IACzG;IACA,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAChE,gBAAgB,MAAM;IACtB;IACA,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAChE,gBAAgB,MAAM;IACtB,YAAY,KAAK,GAAG,CAAC;IACrB,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,IAAI,UAAU,CAAC,4DAA4D,CAAC,CAAC;IACnG;IACA,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,CAAC,YAAY,GAAG,GAAG,GAAG,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC;IACjE,gBAAgB,MAAM;IACtB,YAAY,KAAK,GAAG,CAAC;IACrB,YAAY,KAAK,GAAG,CAAC;IACrB,YAAY,KAAK,GAAG,CAAC;IACrB,YAAY,KAAK,GAAG,CAAC;IACrB,YAAY,KAAK,GAAG,CAAC;IACrB,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,IAAI,UAAU,CAAC,sEAAsE,CAAC,CAAC;IAC7G,SAAS;IACT,QAAQ,OAAO,EAAE,CAAC;IAClB,KAAK,CAAC,CAAC;IACP,IAAI,OAAO,MAAM,CAAC;IAClB;;ICxHA;IACO,IAAI,iBAAiB,GAAG,uCAAuC;;ICC/D,SAAS,6BAA6B,CAAC,QAAQ,EAAE;IACxD,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;IAC/B,QAAQ,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC3D,KAAK;IACL;IACA,IAAI,IAAI,YAAY,GAAG,QAAQ;IAC/B,SAAS,KAAK,CAAC,iBAAiB,CAAC;IACjC,SAAS,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACvD,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;IACpB,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,cAAc,GAAG,YAAY,EAAE,EAAE,GAAG,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;IACtF,QAAQ,IAAI,WAAW,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IAC7C,QAAQ,IAAI,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpD,QAAQ,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;IACzC,YAAY,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACvD,SAAS;IACT,QAAQ,IAAI,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxE,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;IAC3E,YAAY,IAAI,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IACvC,YAAY,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;IACrC,gBAAgB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC3D,aAAa;IACb,SAAS;IACT,QAAQ,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACtD,KAAK;IACL,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,SAAS,aAAa,CAAC,IAAI,EAAE;IAC7B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,wBAAwB,GAAG,kCAAkC,CAAC;IAClE,IAAI,2BAA2B,GAAG,uBAAuB,CAAC;IAC1D,IAAI,mBAAmB,GAAG,yBAAyB,CAAC;IACpD,IAAI,2BAA2B,GAAG,QAAQ,CAAC;IAC3C,SAAS,yBAAyB,CAAC,GAAG,EAAE;IACxC,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;IACpB,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;IACrC,QAAQ,MAAM,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAClD,KAAK;IACL,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;IAC1C,QAAQ,MAAM,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAClD,KAAK;IACL,IAAI,GAAG,CAAC,OAAO,CAAC,2BAA2B,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;IAClE;IACA,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;IACpC,YAAY,MAAM,CAAC,wBAAwB,GAAG,EAAE,CAAC,MAAM,CAAC;IACxD,YAAY,MAAM,CAAC,wBAAwB,GAAG,EAAE,CAAC,MAAM,CAAC;IACxD,SAAS;IACT;IACA,aAAa,IAAI,EAAE,KAAK,GAAG,EAAE;IAC7B,YAAY,MAAM,CAAC,wBAAwB,GAAG,EAAE,CAAC,MAAM,CAAC;IACxD,SAAS;IACT;IACA,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAChC,YAAY,MAAM,CAAC,wBAAwB,GAAG,EAAE,CAAC,MAAM,CAAC;IACxD,SAAS;IACT;IACA,aAAa;IACb,YAAY,MAAM,CAAC,wBAAwB,GAAG,EAAE,CAAC,MAAM,CAAC;IACxD,YAAY,MAAM,CAAC,wBAAwB;IAC3C,gBAAgB,EAAE,CAAC,MAAM,IAAI,OAAO,EAAE,KAAK,QAAQ,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrE,SAAS;IACT,QAAQ,OAAO,EAAE,CAAC;IAClB,KAAK,CAAC,CAAC;IACP,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,SAAS,SAAS,CAAC,GAAG,EAAE;IACxB,IAAI,QAAQ,GAAG;IACf,QAAQ,KAAK,WAAW;IACxB,YAAY,OAAO;IACnB,gBAAgB,WAAW,EAAE,MAAM;IACnC,aAAa,CAAC;IACd,QAAQ,KAAK,iBAAiB,CAAC;IAC/B,QAAQ,KAAK,IAAI;IACjB,YAAY,OAAO;IACnB,gBAAgB,YAAY,EAAE,YAAY;IAC1C,aAAa,CAAC;IACd,QAAQ,KAAK,aAAa,CAAC;IAC3B,QAAQ,KAAK,IAAI;IACjB,YAAY,OAAO;IACnB,gBAAgB,WAAW,EAAE,QAAQ;IACrC,aAAa,CAAC;IACd,QAAQ,KAAK,wBAAwB,CAAC;IACtC,QAAQ,KAAK,KAAK;IAClB,YAAY,OAAO;IACnB,gBAAgB,WAAW,EAAE,QAAQ;IACrC,gBAAgB,YAAY,EAAE,YAAY;IAC1C,aAAa,CAAC;IACd,QAAQ,KAAK,kBAAkB,CAAC;IAChC,QAAQ,KAAK,IAAI;IACjB,YAAY,OAAO;IACnB,gBAAgB,WAAW,EAAE,YAAY;IACzC,aAAa,CAAC;IACd,QAAQ,KAAK,6BAA6B,CAAC;IAC3C,QAAQ,KAAK,KAAK;IAClB,YAAY,OAAO;IACnB,gBAAgB,WAAW,EAAE,YAAY;IACzC,gBAAgB,YAAY,EAAE,YAAY;IAC1C,aAAa,CAAC;IACd,QAAQ,KAAK,YAAY,CAAC;IAC1B,QAAQ,KAAK,IAAI;IACjB,YAAY,OAAO;IACnB,gBAAgB,WAAW,EAAE,OAAO;IACpC,aAAa,CAAC;IACd,KAAK;IACL,CAAC;IACD,SAAS,wCAAwC,CAAC,IAAI,EAAE;IACxD;IACA,IAAI,IAAI,MAAM,CAAC;IACf,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAC5C,QAAQ,MAAM,GAAG;IACjB,YAAY,QAAQ,EAAE,aAAa;IACnC,SAAS,CAAC;IACV,QAAQ,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,KAAK;IACL,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAC9B,QAAQ,MAAM,GAAG;IACjB,YAAY,QAAQ,EAAE,YAAY;IAClC,SAAS,CAAC;IACV,QAAQ,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,KAAK;IACL,IAAI,IAAI,MAAM,EAAE;IAChB,QAAQ,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,QAAQ,IAAI,WAAW,KAAK,IAAI,EAAE;IAClC,YAAY,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;IAC1C,YAAY,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,SAAS;IACT,aAAa,IAAI,WAAW,KAAK,IAAI,EAAE;IACvC,YAAY,MAAM,CAAC,WAAW,GAAG,YAAY,CAAC;IAC9C,YAAY,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,SAAS;IACT,QAAQ,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IACrD,YAAY,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACzE,SAAS;IACT,QAAQ,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC;IAClD,KAAK;IACL,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,SAAS,oBAAoB,CAAC,GAAG,EAAE;IACnC,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;IACpB,IAAI,IAAI,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,IAAI,QAAQ,EAAE;IAClB,QAAQ,OAAO,QAAQ,CAAC;IACxB,KAAK;IACL,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;IACD;IACA;IACA;IACO,SAAS,mBAAmB,CAAC,MAAM,EAAE;IAC5C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;IACpB,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,QAAQ,GAAG,MAAM,EAAE,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;IACpE,QAAQ,IAAI,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjC,QAAQ,QAAQ,KAAK,CAAC,IAAI;IAC1B,YAAY,KAAK,SAAS,CAAC;IAC3B,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;IACzC,gBAAgB,SAAS;IACzB,YAAY,KAAK,OAAO;IACxB,gBAAgB,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;IACzC,gBAAgB,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;IACnC,gBAAgB,SAAS;IACzB,YAAY,KAAK,UAAU;IAC3B,gBAAgB,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC;IAC1C,gBAAgB,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACnD,gBAAgB,SAAS;IACzB,YAAY,KAAK,WAAW,CAAC;IAC7B,YAAY,KAAK,IAAI;IACrB,gBAAgB,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3C,gBAAgB,SAAS;IACzB,YAAY,KAAK,mBAAmB,CAAC;IACrC,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAC;IACjD,gBAAgB,SAAS;IACzB,YAAY,KAAK,cAAc,CAAC;IAChC,YAAY,KAAK,MAAM;IACvB,gBAAgB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;IACtC,gBAAgB,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,gBAAgB,SAAS;IACzB,YAAY,KAAK,eAAe,CAAC;IACjC,YAAY,KAAK,GAAG;IACpB,gBAAgB,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5C,gBAAgB,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC;IAChD,gBAAgB,SAAS;IACzB,YAAY,KAAK,cAAc,CAAC;IAChC,YAAY,KAAK,IAAI;IACrB,gBAAgB,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5C,gBAAgB,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC;IAC/C,gBAAgB,SAAS;IACzB,YAAY,KAAK,YAAY;IAC7B,gBAAgB,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,GAAG,EAAE,EAAE,QAAQ,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAClN,gBAAgB,SAAS;IACzB,YAAY,KAAK,aAAa;IAC9B,gBAAgB,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,GAAG,EAAE,EAAE,QAAQ,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACnN,gBAAgB,SAAS;IACzB,YAAY,KAAK,iBAAiB;IAClC,gBAAgB,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC7C,gBAAgB,SAAS;IACzB;IACA,YAAY,KAAK,mBAAmB;IACpC,gBAAgB,MAAM,CAAC,eAAe,GAAG,cAAc,CAAC;IACxD,gBAAgB,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;IAC9C,gBAAgB,SAAS;IACzB,YAAY,KAAK,kBAAkB;IACnC,gBAAgB,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC;IAChD,gBAAgB,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC;IAC7C,gBAAgB,SAAS;IACzB,YAAY,KAAK,sBAAsB;IACvC,gBAAgB,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC;IAChD,gBAAgB,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;IAC5C,gBAAgB,SAAS;IACzB,YAAY,KAAK,qBAAqB;IACtC,gBAAgB,MAAM,CAAC,eAAe,GAAG,QAAQ,CAAC;IAClD,gBAAgB,SAAS;IACzB,YAAY,KAAK,OAAO;IACxB,gBAAgB,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,gBAAgB,SAAS;IACzB;IACA,YAAY,KAAK,eAAe;IAChC,gBAAgB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;IAC9C,oBAAoB,MAAM,IAAI,UAAU,CAAC,0DAA0D,CAAC,CAAC;IACrG,iBAAiB;IACjB,gBAAgB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC/F,oBAAoB,IAAI,EAAE,EAAE;IAC5B,wBAAwB,MAAM,CAAC,oBAAoB,GAAG,EAAE,CAAC,MAAM,CAAC;IAChE,qBAAqB;IACrB,yBAAyB,IAAI,EAAE,IAAI,EAAE,EAAE;IACvC,wBAAwB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC9F,qBAAqB;IACrB,yBAAyB,IAAI,EAAE,EAAE;IACjC,wBAAwB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAC5F,qBAAqB;IACrB,oBAAoB,OAAO,EAAE,CAAC;IAC9B,iBAAiB,CAAC,CAAC;IACnB,gBAAgB,SAAS;IACzB,SAAS;IACT;IACA,QAAQ,IAAI,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;IAC1D,YAAY,MAAM,CAAC,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5D,YAAY,SAAS;IACrB,SAAS;IACT,QAAQ,IAAI,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;IACvD;IACA;IACA;IACA,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;IAC1C,gBAAgB,MAAM,IAAI,UAAU,CAAC,+DAA+D,CAAC,CAAC;IACtG,aAAa;IACb,YAAY,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC1F;IACA,gBAAgB,IAAI,EAAE,KAAK,GAAG,EAAE;IAChC,oBAAoB,MAAM,CAAC,qBAAqB,GAAG,EAAE,CAAC,MAAM,CAAC;IAC7D,iBAAiB;IACjB;IACA,qBAAqB,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAC9C,oBAAoB,MAAM,CAAC,qBAAqB,GAAG,EAAE,CAAC,MAAM,CAAC;IAC7D,iBAAiB;IACjB;IACA,qBAAqB,IAAI,EAAE,IAAI,EAAE,EAAE;IACnC,oBAAoB,MAAM,CAAC,qBAAqB,GAAG,EAAE,CAAC,MAAM,CAAC;IAC7D,oBAAoB,MAAM,CAAC,qBAAqB,GAAG,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;IACzE,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB,MAAM,CAAC,qBAAqB,GAAG,EAAE,CAAC,MAAM,CAAC;IAC7D,oBAAoB,MAAM,CAAC,qBAAqB,GAAG,EAAE,CAAC,MAAM,CAAC;IAC7D,iBAAiB;IACjB,gBAAgB,OAAO,EAAE,CAAC;IAC1B,aAAa,CAAC,CAAC;IACf,YAAY,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACvC;IACA,YAAY,IAAI,GAAG,KAAK,GAAG,EAAE;IAC7B,gBAAgB,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACnG,aAAa;IACb,iBAAiB,IAAI,GAAG,EAAE;IAC1B,gBAAgB,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC;IACxF,aAAa;IACb,YAAY,SAAS;IACrB,SAAS;IACT;IACA,QAAQ,IAAI,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;IAC1D,YAAY,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3F,YAAY,SAAS;IACrB,SAAS;IACT,QAAQ,IAAI,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,IAAI,QAAQ,EAAE;IACtB,YAAY,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC9D,SAAS;IACT,QAAQ,IAAI,mCAAmC,GAAG,wCAAwC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvG,QAAQ,IAAI,mCAAmC,EAAE;IACjD,YAAY,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,mCAAmC,CAAC,CAAC;IACzF,SAAS;IACT,KAAK;IACL,IAAI,OAAO,MAAM,CAAC;IAClB;;ICtSA;IACA;IACO,IAAI,QAAQ,GAAG;IACtB,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,KAAK,EAAE;IACX,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,OAAO,EAAE;IACb,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,OAAO,EAAE;IACb,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,OAAO,EAAE;IACb,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,OAAO,EAAE;IACb,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,OAAO,EAAE;IACb,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IAC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V,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,QAAQ,EAAE;IACd,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,QAAQ,EAAE;IACd,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,GAAG;IACX,KAAK;IACL,IAAI,IAAI,EAAE;IACV,QAAQ,GAAG;IACX,QAAQ,IAAI;IAC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CpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;IACpC,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAAK,MAAM;IACpB,QAAQ,CAAC,KAA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AC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CA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AAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,MAAM;IACf,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,MAAM;IACf,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,KAAK,EAAE,MAAM;IACf,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,MAAM;IACf,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,KAAK,EAAE,IAAI;IACb,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,GAAG;IACZ,EAAE,KAAK,EAAE,KAAK;IACd,EAAE,KAAK,EAAE,G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"}
|