nextcloud-server/dist/files_versions-sidebar-tab....

1 line
832 KiB
XML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{"version":3,"file":"files_versions-sidebar-tab.mjs","sources":["../node_modules/@nextcloud/vue/dist/chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcCounterBubble-CxxHHh8i.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcListItem-C6dI--9M.mjs","../node_modules/@nextcloud/paths/dist/index.mjs","../node_modules/@mdi/svg/svg/backup-restore.svg?raw","../node_modules/path-browserify/index.js","../node_modules/@nextcloud/files/node_modules/@nextcloud/initial-state/dist/index.mjs","../node_modules/@nextcloud/files/node_modules/@nextcloud/sharing/dist/public.mjs","../node_modules/cancelable-promise/esm/CancelablePromise.mjs","../node_modules/@nextcloud/files/dist/chunks/dav-CQDyL7M_.mjs","../node_modules/@nextcloud/files/dist/index.mjs","../node_modules/moment/dist/moment.js","../node_modules/lodash.get/index.js","../node_modules/node-gettext/lib/plurals.js","../node_modules/node-gettext/lib/gettext.js","../node_modules/core-js/internals/global-this.js","../node_modules/core-js/internals/fails.js","../node_modules/core-js/internals/descriptors.js","../node_modules/core-js/internals/function-bind-native.js","../node_modules/core-js/internals/function-call.js","../node_modules/core-js/internals/object-property-is-enumerable.js","../node_modules/core-js/internals/create-property-descriptor.js","../node_modules/core-js/internals/function-uncurry-this.js","../node_modules/core-js/internals/classof-raw.js","../node_modules/core-js/internals/indexed-object.js","../node_modules/core-js/internals/is-null-or-undefined.js","../node_modules/core-js/internals/require-object-coercible.js","../node_modules/core-js/internals/to-indexed-object.js","../node_modules/core-js/internals/is-callable.js","../node_modules/core-js/internals/is-object.js","../node_modules/core-js/internals/get-built-in.js","../node_modules/core-js/internals/object-is-prototype-of.js","../node_modules/core-js/internals/environment-user-agent.js","../node_modules/core-js/internals/environment-v8-version.js","../node_modules/core-js/internals/symbol-constructor-detection.js","../node_modules/core-js/internals/use-symbol-as-uid.js","../node_modules/core-js/internals/is-symbol.js","../node_modules/core-js/internals/try-to-string.js","../node_modules/core-js/internals/a-callable.js","../node_modules/core-js/internals/get-method.js","../node_modules/core-js/internals/ordinary-to-primitive.js","../node_modules/core-js/internals/is-pure.js","../node_modules/core-js/internals/define-global-property.js","../node_modules/core-js/internals/shared-store.js","../node_modules/core-js/internals/shared.js","../node_modules/core-js/internals/to-object.js","../node_modules/core-js/internals/has-own-property.js","../node_modules/core-js/internals/uid.js","../node_modules/core-js/internals/well-known-symbol.js","../node_modules/core-js/internals/to-primitive.js","../node_modules/core-js/internals/to-property-key.js","../node_modules/core-js/internals/document-create-element.js","../node_modules/core-js/internals/ie8-dom-define.js","../node_modules/core-js/internals/object-get-own-property-descriptor.js","../node_modules/core-js/internals/v8-prototype-define-bug.js","../node_modules/core-js/internals/an-object.js","../node_modules/core-js/internals/object-define-property.js","../node_modules/core-js/internals/create-non-enumerable-property.js","../node_modules/core-js/internals/function-name.js","../node_modules/core-js/internals/inspect-source.js","../node_modules/core-js/internals/weak-map-basic-detection.js","../node_modules/core-js/internals/shared-key.js","../node_modules/core-js/internals/hidden-keys.js","../node_modules/core-js/internals/internal-state.js","../node_modules/core-js/internals/make-built-in.js","../node_modules/core-js/internals/define-built-in.js","../node_modules/core-js/internals/math-trunc.js","../node_modules/core-js/internals/to-integer-or-infinity.js","../node_modules/core-js/internals/to-absolute-index.js","../node_modules/core-js/internals/to-length.js","../node_modules/core-js/internals/length-of-array-like.js","../node_modules/core-js/internals/array-includes.js","../node_modules/core-js/internals/object-keys-internal.js","../node_modules/core-js/internals/enum-bug-keys.js","../node_modules/core-js/internals/object-get-own-property-names.js","../node_modules/core-js/internals/object-get-own-property-symbols.js","../node_modules/core-js/internals/own-keys.js","../node_modules/core-js/internals/copy-constructor-properties.js","../node_modules/core-js/internals/is-forced.js","../node_modules/core-js/internals/export.js","../node_modules/core-js/modules/es.object.define-property.js","../node_modules/core-js/internals/to-string-tag-support.js","../node_modules/core-js/internals/classof.js","../node_modules/core-js/internals/to-string.js","../node_modules/core-js/internals/regexp-flags.js","../node_modules/core-js/internals/regexp-sticky-helpers.js","../node_modules/core-js/internals/object-keys.js","../node_modules/core-js/internals/object-define-properties.js","../node_modules/core-js/internals/html.js","../node_modules/core-js/internals/object-create.js","../node_modules/core-js/internals/regexp-unsupported-dot-all.js","../node_modules/core-js/internals/regexp-unsupported-ncg.js","../node_modules/core-js/internals/regexp-exec.js","../node_modules/core-js/modules/es.regexp.exec.js","../node_modules/core-js/internals/function-apply.js","../node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","../node_modules/core-js/internals/string-multibyte.js","../node_modules/core-js/internals/advance-string-index.js","../node_modules/core-js/internals/get-substitution.js","../node_modules/core-js/internals/regexp-flags-detection.js","../node_modules/core-js/internals/regexp-get-flags.js","../node_modules/core-js/internals/regexp-exec-abstract.js","../node_modules/core-js/modules/es.string.replace.js","../node_modules/@nextcloud/moment/node_modules/@nextcloud/l10n/dist/index.js","../node_modules/@nextcloud/moment/dist/index.js","../node_modules/vue-material-design-icons/BackupRestore.vue","../node_modules/vue-material-design-icons/FileCompare.vue","../node_modules/vue-material-design-icons/ImageOffOutline.vue","../node_modules/vue-material-design-icons/PencilOutline.vue","../build/frontend/apps/files_versions/src/components/VersionEntry.vue","../build/frontend/apps/files_versions/src/components/VersionLabelDialog.vue","../build/frontend/apps/files_versions/src/utils/logger.ts","../build/frontend/apps/files_versions/src/components/VirtualScrolling.vue","../build/frontend/apps/files_versions/src/utils/davClient.ts","../build/frontend/apps/files_versions/src/utils/davRequest.ts","../build/frontend/apps/files_versions/src/utils/versions.ts","../build/frontend/apps/files_versions/src/views/FilesVersionsSidebarTab.vue","../build/frontend/apps/files_versions/src/sidebar_tab.ts"],"sourcesContent":["import { defineComponent } from \"vue\";\nconst _sfc_main = defineComponent({\n name: \"NcVNodes\",\n props: {\n /**\n * The vnodes to render\n */\n vnodes: {\n type: [Array, Object],\n default: null\n }\n },\n /**\n * The render function to display the component\n */\n render() {\n return this.vnodes || this.$slots?.default?.({});\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs.map\n","import '../assets/NcCounterBubble-ZnteskDR.css';\nimport { defineComponent, computed, createElementBlock, openBlock, normalizeClass, toDisplayString } from \"vue\";\nimport { getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"title\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcCounterBubble\",\n props: {\n count: {},\n active: { type: Boolean },\n type: { default: \"\" },\n raw: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const humanizedCount = computed(() => {\n if (props.raw) {\n return props.count.toString();\n }\n const formatter = new Intl.NumberFormat(getCanonicalLocale(), {\n notation: \"compact\",\n compactDisplay: \"short\"\n });\n return formatter.format(props.count);\n });\n const originalCountAsTitleIfNeeded = computed(() => {\n if (props.raw) {\n return;\n }\n const countAsString = props.count.toString();\n if (countAsString === humanizedCount.value) {\n return;\n }\n return countAsString;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"counter-bubble__counter\", {\n active: _ctx.active,\n \"counter-bubble__counter--highlighted\": _ctx.type === \"highlighted\",\n \"counter-bubble__counter--outlined\": _ctx.type === \"outlined\"\n }]),\n title: originalCountAsTitleIfNeeded.value\n }, toDisplayString(humanizedCount.value), 11, _hoisted_1);\n };\n }\n});\nconst NcCounterBubble = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-36ffc13f\"]]);\nexport {\n NcCounterBubble as N\n};\n//# sourceMappingURL=NcCounterBubble-CxxHHh8i.mjs.map\n","import { defineComponent, computed, toRef, createElementBlock, openBlock, toDisplayString, unref } from \"vue\";\nimport { useFormatTime, useFormatRelativeTime } from \"../composables/useFormatDateTime/index.mjs\";\nconst _hoisted_1 = [\"data-timestamp\", \"title\", \"textContent\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcDateTime\",\n props: {\n timestamp: {},\n format: { default: () => ({ timeStyle: \"medium\", dateStyle: \"short\" }) },\n relativeTime: { type: [Boolean, String], default: \"long\" },\n ignoreSeconds: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const timeOptions = computed(() => ({ format: props.format }));\n const relativeTimeOptions = computed(() => ({\n ignoreSeconds: props.ignoreSeconds,\n relativeTime: props.relativeTime || \"long\",\n update: props.relativeTime !== false\n }));\n const title = useFormatTime(toRef(() => props.timestamp), timeOptions);\n const relativeTime = useFormatRelativeTime(toRef(() => props.timestamp), relativeTimeOptions);\n const formattedTime = computed(() => props.relativeTime ? relativeTime.value : title.value);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"span\", {\n class: \"nc-datetime\",\n dir: \"auto\",\n \"data-timestamp\": _ctx.timestamp,\n title: unref(title),\n textContent: toDisplayString(formattedTime.value)\n }, null, 8, _hoisted_1);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U.mjs.map\n","import '../assets/NcListItem-BRTO5Id3.css';\nimport { N as NcActions } from \"./NcActions-Ccr8kkyh.mjs\";\nimport { N as NcCounterBubble } from \"./NcCounterBubble-CxxHHh8i.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { resolveComponent, createBlock, openBlock, resolveDynamicComponent, normalizeProps, guardReactiveProps, withCtx, createElementVNode, mergeProps, normalizeClass, createElementBlock, createCommentVNode, withDirectives, withKeys, renderSlot, createTextVNode, toDisplayString, vShow, createVNode, createSlots } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcListItem\",\n components: {\n NcActions,\n NcCounterBubble,\n NcVNodes: _sfc_main$1\n },\n inheritAttrs: false,\n props: {\n /**\n * The details text displayed in the upper right part of the component\n */\n details: {\n type: String,\n default: \"\"\n },\n /**\n * Name (first line of text)\n */\n name: {\n type: String,\n default: void 0\n },\n /**\n * The route for the router link.\n */\n to: {\n type: [String, Object],\n default: null\n },\n /**\n * The value for the external link\n */\n href: {\n type: String,\n default: \"#\"\n },\n /**\n * The HTML target attribute used for the link\n */\n target: {\n type: String,\n default: \"\"\n },\n /**\n * Id for the `<a>` element\n */\n anchorId: {\n type: String,\n default: \"\"\n },\n /**\n * Make subname bold\n */\n bold: {\n type: Boolean,\n default: false\n },\n /**\n * Show the NcListItem in compact design\n */\n compact: {\n type: Boolean,\n default: false\n },\n /**\n * Toggle the active state of the component\n */\n active: {\n type: Boolean,\n default: void 0\n },\n /**\n * Aria label for the wrapper element\n */\n linkAriaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Aria label for the actions toggle\n */\n actionsAriaLabel: {\n type: String,\n default: void 0\n },\n /**\n * If different from 0 this component will display the\n * NcCounterBubble component\n */\n counterNumber: {\n type: [Number, String],\n default: 0\n },\n /**\n * Outlined or highlighted state of the counter\n */\n counterType: {\n type: String,\n default: \"\",\n validator(value) {\n return [\"highlighted\", \"outlined\", \"\"].indexOf(value) !== -1;\n }\n },\n /**\n * To be used only when the elements in the actions menu are very important\n */\n forceDisplayActions: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Show the list component layout\n */\n oneLine: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"click\",\n \"update:menuOpen\"\n ],\n data() {\n return {\n hovered: false,\n hasActions: false,\n hasSubname: false,\n displayActionsOnHoverFocus: false,\n menuOpen: false,\n hasIndicator: false,\n hasDetails: false\n };\n },\n computed: {\n showAdditionalElements() {\n return !this.displayActionsOnHoverFocus || this.forceDisplayActions;\n },\n showDetails() {\n return (this.details !== \"\" || this.hasDetails) && (!this.displayActionsOnHoverFocus || this.forceDisplayActions);\n }\n },\n watch: {\n menuOpen(newValue) {\n if (!newValue && !this.hovered) {\n this.displayActionsOnHoverFocus = false;\n }\n }\n },\n mounted() {\n this.checkSlots();\n },\n updated() {\n this.checkSlots();\n },\n methods: {\n /**\n * Handle link click\n *\n * @param {MouseEvent|KeyboardEvent} event - Native click or keydown event\n * @param {Function} [navigate] - VueRouter link's navigate if any\n * @param {string} [routerLinkHref] - VueRouter link's href\n */\n onClick(event, navigate, routerLinkHref) {\n this.$emit(\"click\", event);\n if (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) {\n return;\n }\n if (routerLinkHref) {\n navigate?.(event);\n event.preventDefault();\n }\n },\n showActions() {\n if (this.hasActions) {\n this.displayActionsOnHoverFocus = true;\n }\n this.hovered = false;\n },\n hideActions() {\n this.displayActionsOnHoverFocus = false;\n },\n /**\n * @param {FocusEvent} event UI event\n */\n handleBlur(event) {\n if (this.menuOpen) {\n return;\n }\n if (this.$refs[\"list-item\"]?.contains(event.relatedTarget)) {\n return;\n }\n this.hideActions();\n },\n /**\n * Hide the actions on mouseleave unless the menu is open\n */\n handleMouseleave() {\n if (!this.menuOpen) {\n this.displayActionsOnHoverFocus = false;\n }\n this.hovered = false;\n },\n handleMouseover() {\n this.showActions();\n this.hovered = true;\n },\n handleActionsUpdateOpen(e) {\n this.menuOpen = e;\n this.$emit(\"update:menuOpen\", e);\n },\n // Check if subname and actions slots are populated\n checkSlots() {\n if (this.hasActions !== !!this.$slots.actions) {\n this.hasActions = !!this.$slots.actions;\n }\n if (this.hasSubname !== !!this.$slots.subname) {\n this.hasSubname = !!this.$slots.subname;\n }\n if (this.hasIndicator !== !!this.$slots.indicator) {\n this.hasIndicator = !!this.$slots.indicator;\n }\n if (this.hasDetails !== !!this.$slots.details) {\n this.hasDetails = !!this.$slots.details;\n }\n }\n }\n};\nconst _hoisted_1 = [\"id\", \"aria-label\", \"href\", \"target\", \"rel\", \"onClick\"];\nconst _hoisted_2 = { class: \"list-item-content\" };\nconst _hoisted_3 = { class: \"list-item-content__main\" };\nconst _hoisted_4 = { class: \"list-item-content__name\" };\nconst _hoisted_5 = { class: \"list-item-content__details\" };\nconst _hoisted_6 = {\n key: 0,\n class: \"list-item-details__details\"\n};\nconst _hoisted_7 = {\n key: 1,\n class: \"list-item-details__extra\"\n};\nconst _hoisted_8 = {\n key: 1,\n class: \"list-item-details__indicator\"\n};\nconst _hoisted_9 = {\n key: 0,\n class: \"list-item-content__extra-actions\"\n};\nconst _hoisted_10 = {\n key: 1,\n class: \"list-item__extra\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcCounterBubble = resolveComponent(\"NcCounterBubble\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createBlock(resolveDynamicComponent($props.to ? \"router-link\" : \"NcVNodes\"), normalizeProps(guardReactiveProps({ ...$props.to && { custom: true, to: $props.to } })), {\n default: withCtx(({ href: routerLinkHref, navigate, isActive }) => [\n createElementVNode(\"li\", mergeProps({\n class: [\"list-item__wrapper\", { \"list-item__wrapper--active\": $props.active ?? isActive }]\n }, _ctx.$attrs), [\n createElementVNode(\"div\", {\n ref: \"list-item\",\n class: normalizeClass([\"list-item\", {\n \"list-item--compact\": $props.compact,\n \"list-item--one-line\": $props.oneLine\n }]),\n onMouseover: _cache[4] || (_cache[4] = (...args) => $options.handleMouseover && $options.handleMouseover(...args)),\n onMouseleave: _cache[5] || (_cache[5] = (...args) => $options.handleMouseleave && $options.handleMouseleave(...args))\n }, [\n createElementVNode(\"a\", {\n id: $props.anchorId || void 0,\n \"aria-label\": $props.linkAriaLabel,\n class: \"list-item__anchor\",\n href: routerLinkHref || $props.href,\n target: $props.target || ($props.href === \"#\" ? void 0 : \"_blank\"),\n rel: $props.href === \"#\" ? void 0 : \"noopener noreferrer\",\n onFocus: _cache[0] || (_cache[0] = (...args) => $options.showActions && $options.showActions(...args)),\n onFocusout: _cache[1] || (_cache[1] = (...args) => $options.handleBlur && $options.handleBlur(...args)),\n onClick: ($event) => $options.onClick($event, navigate, routerLinkHref),\n onKeydown: _cache[2] || (_cache[2] = withKeys((...args) => $options.hideActions && $options.hideActions(...args), [\"esc\"]))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true),\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"div\", _hoisted_3, [\n createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"name\", {}, () => [\n createTextVNode(toDisplayString($props.name), 1)\n ], true)\n ]),\n $data.hasSubname ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"list-item-content__subname\", { \"list-item-content__subname--bold\": $props.bold }])\n }, [\n renderSlot(_ctx.$slots, \"subname\", {}, void 0, true)\n ], 2)) : createCommentVNode(\"\", true)\n ]),\n createElementVNode(\"div\", _hoisted_5, [\n $options.showDetails ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"details\", {}, () => [\n createTextVNode(toDisplayString($props.details), 1)\n ], true)\n ])) : createCommentVNode(\"\", true),\n $props.counterNumber !== 0 || $data.hasIndicator ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_7, [\n $props.counterNumber !== 0 ? (openBlock(), createBlock(_component_NcCounterBubble, {\n key: 0,\n count: $props.counterNumber,\n active: $props.active ?? isActive,\n class: \"list-item-details__counter\",\n type: $props.counterType\n }, null, 8, [\"count\", \"active\", \"type\"])) : createCommentVNode(\"\", true),\n $data.hasIndicator ? (openBlock(), createElementBlock(\"span\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"indicator\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 512)), [\n [vShow, $options.showAdditionalElements]\n ]) : createCommentVNode(\"\", true)\n ])\n ])\n ], 40, _hoisted_1),\n _ctx.$slots[\"extra-actions\"] ? (openBlock(), createElementBlock(\"div\", _hoisted_9, [\n renderSlot(_ctx.$slots, \"extra-actions\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", {\n class: \"list-item-content__actions\",\n onFocusout: _cache[3] || (_cache[3] = (...args) => $options.handleBlur && $options.handleBlur(...args))\n }, [\n createVNode(_component_NcActions, {\n ref: \"actions\",\n primary: $props.active ?? isActive,\n \"force-menu\": $props.forceMenu,\n \"aria-label\": $props.actionsAriaLabel,\n \"onUpdate:open\": $options.handleActionsUpdateOpen\n }, createSlots({\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 2\n }, [\n _ctx.$slots[\"actions-icon\"] ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions-icon\", {}, void 0, true)\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"primary\", \"force-menu\", \"aria-label\", \"onUpdate:open\"])\n ], 544), [\n [vShow, $props.forceDisplayActions || $data.displayActionsOnHoverFocus]\n ]),\n _ctx.$slots.extra ? (openBlock(), createElementBlock(\"div\", _hoisted_10, [\n renderSlot(_ctx.$slots, \"extra\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 34)\n ], 16)\n ]),\n _: 3\n }, 16);\n}\nconst NcListItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-56c9c89e\"]]);\nexport {\n NcListItem as N\n};\n//# sourceMappingURL=NcListItem-C6dI--9M.mjs.map\n","function encodePath(path) {\n if (!path) {\n return path;\n }\n return path.split(\"/\").map(encodeURIComponent).join(\"/\");\n}\nfunction basename(path) {\n return path.replace(/\\\\/g, \"/\").replace(/.*\\//, \"\");\n}\nfunction dirname(path) {\n return path.replace(/\\\\/g, \"/\").replace(/\\/[^\\/]*$/, \"\");\n}\nfunction joinPaths(...args) {\n if (arguments.length < 1) {\n return \"\";\n }\n const nonEmptyArgs = args.filter((arg) => arg.length > 0);\n if (nonEmptyArgs.length < 1) {\n return \"\";\n }\n const lastArg = nonEmptyArgs[nonEmptyArgs.length - 1];\n const leadingSlash = nonEmptyArgs[0].charAt(0) === \"/\";\n const trailingSlash = lastArg.charAt(lastArg.length - 1) === \"/\";\n const sections = nonEmptyArgs.reduce((acc, section) => acc.concat(section.split(\"/\")), []);\n let first = !leadingSlash;\n const path = sections.reduce((acc, section) => {\n if (section === \"\") {\n return acc;\n }\n if (first) {\n first = false;\n return acc + section;\n }\n return acc + \"/\" + section;\n }, \"\");\n if (trailingSlash) {\n return path + \"/\";\n }\n return path;\n}\nfunction isSamePath(path1, path2) {\n const pathSections1 = (path1 || \"\").split(\"/\").filter((p) => p !== \".\");\n const pathSections2 = (path2 || \"\").split(\"/\").filter((p) => p !== \".\");\n path1 = joinPaths.apply(void 0, pathSections1);\n path2 = joinPaths.apply(void 0, pathSections2);\n return path1 === path2;\n}\nexport {\n basename,\n dirname,\n encodePath,\n isSamePath,\n joinPaths\n};\n","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"mdi-backup-restore\\\" viewBox=\\\"0 0 24 24\\\"><path d=\\\"M12,3A9,9 0 0,0 3,12H0L4,16L8,12H5A7,7 0 0,1 12,5A7,7 0 0,1 19,12A7,7 0 0,1 12,19C10.5,19 9.09,18.5 7.94,17.7L6.5,19.14C8.04,20.3 9.94,21 12,21A9,9 0 0,0 21,12A9,9 0 0,0 12,3M14,12A2,2 0 0,0 12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12Z\\\" /></svg>\"","// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n var res = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = path.charCodeAt(i);\n else if (code === 47 /*/*/)\n break;\n else\n code = 47 /*/*/;\n if (code === 47 /*/*/) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf('/');\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += '/..';\n else\n res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += '/' + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 /*.*/ && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n}\n\nvar posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = '';\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0)\n path = arguments[i];\n else {\n if (cwd === undefined)\n cwd = process.cwd();\n path = cwd;\n }\n\n assertPath(path);\n\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return '/' + resolvedPath;\n else\n return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n\n normalize: function normalize(path) {\n assertPath(path);\n\n if (path.length === 0) return '.';\n\n var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n // Normalize the path\n path = normalizeStringPosix(path, !isAbsolute);\n\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n\n if (isAbsolute) return '/' + path;\n return path;\n },\n\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n },\n\n join: function join() {\n if (arguments.length === 0)\n return '.';\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += '/' + arg;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n },\n\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n\n if (from === to) return '';\n\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to) return '';\n\n // Trim any leading backslashes\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47 /*/*/)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47 /*/*/)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47 /*/*/) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47 /*/*/) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47 /*/*/)\n lastCommonSep = i;\n }\n\n var out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n if (out.length === 0)\n out += '..';\n else\n out += '/..';\n }\n }\n\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47 /*/*/)\n ++toStart;\n return to.slice(toStart);\n }\n },\n\n _makeLong: function _makeLong(path) {\n return path;\n },\n\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) return '//';\n return path.slice(0, end);\n },\n\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') throw new TypeError('\"ext\" argument must be a string');\n assertPath(path);\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return '';\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n }\n },\n\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n },\n\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format('/', pathObject);\n },\n\n parse: function parse(path) {\n assertPath(path);\n\n var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47 /*/*/;\n var start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';\n\n return ret;\n },\n\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\n","function loadState(app, key, fallback) {\n const elem = document.querySelector(`#initial-state-${app}-${key}`);\n if (elem === null) {\n if (fallback !== void 0) {\n return fallback;\n }\n throw new Error(`Could not find initial state ${key} of ${app}`);\n }\n try {\n return JSON.parse(atob(elem.value));\n } catch (e) {\n throw new Error(`Could not parse initial state ${key} of ${app}`);\n }\n}\nexport {\n loadState\n};\n","import { loadState } from \"@nextcloud/initial-state\";\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nfunction isPublicShare() {\n return loadState(\"files_sharing\", \"isPublic\", null) ?? document.querySelector('input#isPublic[type=\"hidden\"][name=\"isPublic\"][value=\"1\"]') !== null;\n}\nfunction getSharingToken() {\n return loadState(\"files_sharing\", \"sharingToken\", null) ?? document.querySelector('input#sharingToken[type=\"hidden\"]')?.value ?? null;\n}\nexport {\n getSharingToken,\n isPublicShare\n};\n//# sourceMappingURL=public.mjs.map\n","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\nfunction _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\nfunction _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\nfunction _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\nfunction _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\nfunction _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError(\"attempted to set read only private field\"); } descriptor.value = value; } }\n\nvar toStringTag = typeof Symbol !== 'undefined' ? Symbol.toStringTag : '@@toStringTag';\n\nvar _internals = /*#__PURE__*/new WeakMap();\n\nvar _promise = /*#__PURE__*/new WeakMap();\n\nclass CancelablePromiseInternal {\n constructor(_ref) {\n var {\n executor = () => {},\n internals = defaultInternals(),\n promise = new Promise((resolve, reject) => executor(resolve, reject, onCancel => {\n internals.onCancelList.push(onCancel);\n }))\n } = _ref;\n\n _classPrivateFieldInitSpec(this, _internals, {\n writable: true,\n value: void 0\n });\n\n _classPrivateFieldInitSpec(this, _promise, {\n writable: true,\n value: void 0\n });\n\n _defineProperty(this, toStringTag, 'CancelablePromise');\n\n this.cancel = this.cancel.bind(this);\n\n _classPrivateFieldSet(this, _internals, internals);\n\n _classPrivateFieldSet(this, _promise, promise || new Promise((resolve, reject) => executor(resolve, reject, onCancel => {\n internals.onCancelList.push(onCancel);\n })));\n }\n\n then(onfulfilled, onrejected) {\n return makeCancelable(_classPrivateFieldGet(this, _promise).then(createCallback(onfulfilled, _classPrivateFieldGet(this, _internals)), createCallback(onrejected, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals));\n }\n\n catch(onrejected) {\n return makeCancelable(_classPrivateFieldGet(this, _promise).catch(createCallback(onrejected, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals));\n }\n\n finally(onfinally, runWhenCanceled) {\n if (runWhenCanceled) {\n _classPrivateFieldGet(this, _internals).onCancelList.push(onfinally);\n }\n\n return makeCancelable(_classPrivateFieldGet(this, _promise).finally(createCallback(() => {\n if (onfinally) {\n if (runWhenCanceled) {\n _classPrivateFieldGet(this, _internals).onCancelList = _classPrivateFieldGet(this, _internals).onCancelList.filter(callback => callback !== onfinally);\n }\n\n return onfinally();\n }\n }, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals));\n }\n\n cancel() {\n _classPrivateFieldGet(this, _internals).isCanceled = true;\n\n var callbacks = _classPrivateFieldGet(this, _internals).onCancelList;\n\n _classPrivateFieldGet(this, _internals).onCancelList = [];\n\n for (var callback of callbacks) {\n if (typeof callback === 'function') {\n try {\n callback();\n } catch (err) {\n console.error(err);\n }\n }\n }\n }\n\n isCanceled() {\n return _classPrivateFieldGet(this, _internals).isCanceled === true;\n }\n\n}\n\nexport class CancelablePromise extends CancelablePromiseInternal {\n constructor(executor) {\n super({\n executor\n });\n }\n\n}\n\n_defineProperty(CancelablePromise, \"all\", function all(iterable) {\n return makeAllCancelable(iterable, Promise.all(iterable));\n});\n\n_defineProperty(CancelablePromise, \"allSettled\", function allSettled(iterable) {\n return makeAllCancelable(iterable, Promise.allSettled(iterable));\n});\n\n_defineProperty(CancelablePromise, \"any\", function any(iterable) {\n return makeAllCancelable(iterable, Promise.any(iterable));\n});\n\n_defineProperty(CancelablePromise, \"race\", function race(iterable) {\n return makeAllCancelable(iterable, Promise.race(iterable));\n});\n\n_defineProperty(CancelablePromise, \"resolve\", function resolve(value) {\n return cancelable(Promise.resolve(value));\n});\n\n_defineProperty(CancelablePromise, \"reject\", function reject(reason) {\n return cancelable(Promise.reject(reason));\n});\n\n_defineProperty(CancelablePromise, \"isCancelable\", isCancelablePromise);\n\nexport default CancelablePromise;\nexport function cancelable(promise) {\n return makeCancelable(promise, defaultInternals());\n}\nexport function isCancelablePromise(promise) {\n return promise instanceof CancelablePromise || promise instanceof CancelablePromiseInternal;\n}\n\nfunction createCallback(onResult, internals) {\n if (onResult) {\n return arg => {\n if (!internals.isCanceled) {\n var result = onResult(arg);\n\n if (isCancelablePromise(result)) {\n internals.onCancelList.push(result.cancel);\n }\n\n return result;\n }\n\n return arg;\n };\n }\n}\n\nfunction makeCancelable(promise, internals) {\n return new CancelablePromiseInternal({\n internals,\n promise\n });\n}\n\nfunction makeAllCancelable(iterable, promise) {\n var internals = defaultInternals();\n internals.onCancelList.push(() => {\n for (var resolvable of iterable) {\n if (isCancelablePromise(resolvable)) {\n resolvable.cancel();\n }\n }\n });\n return new CancelablePromiseInternal({\n internals,\n promise\n });\n}\n\nfunction defaultInternals() {\n return {\n isCanceled: false,\n onCancelList: []\n };\n}\n//# sourceMappingURL=CancelablePromise.mjs.map","import { getCurrentUser, onRequestTokenUpdate, getRequestToken } from \"@nextcloud/auth\";\nimport { isPublicShare, getSharingToken } from \"@nextcloud/sharing/public\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { CancelablePromise } from \"cancelable-promise\";\nimport { createClient, getPatcher } from \"webdav\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\nimport { join, basename, extname, dirname } from \"path\";\nimport { encodePath } from \"@nextcloud/paths\";\nconst logger = getLoggerBuilder().setApp(\"@nextcloud/files\").detectUser().build();\nvar FileType = /* @__PURE__ */ ((FileType2) => {\n FileType2[\"Folder\"] = \"folder\";\n FileType2[\"File\"] = \"file\";\n return FileType2;\n})(FileType || {});\nvar Permission = /* @__PURE__ */ ((Permission2) => {\n Permission2[Permission2[\"NONE\"] = 0] = \"NONE\";\n Permission2[Permission2[\"CREATE\"] = 4] = \"CREATE\";\n Permission2[Permission2[\"READ\"] = 1] = \"READ\";\n Permission2[Permission2[\"UPDATE\"] = 2] = \"UPDATE\";\n Permission2[Permission2[\"DELETE\"] = 8] = \"DELETE\";\n Permission2[Permission2[\"SHARE\"] = 16] = \"SHARE\";\n Permission2[Permission2[\"ALL\"] = 31] = \"ALL\";\n return Permission2;\n})(Permission || {});\nconst isDavResource = function(source, davService) {\n return source.match(davService) !== null;\n};\nconst validateData = (data, davService) => {\n if (data.id && typeof data.id !== \"number\") {\n throw new Error(\"Invalid id type of value\");\n }\n if (!data.source) {\n throw new Error(\"Missing mandatory source\");\n }\n try {\n new URL(data.source);\n } catch (e) {\n throw new Error(\"Invalid source format, source must be a valid URL\");\n }\n if (!data.source.startsWith(\"http\")) {\n throw new Error(\"Invalid source format, only http(s) is supported\");\n }\n if (data.displayname && typeof data.displayname !== \"string\") {\n throw new Error(\"Invalid displayname type\");\n }\n if (data.mtime && !(data.mtime instanceof Date)) {\n throw new Error(\"Invalid mtime type\");\n }\n if (data.crtime && !(data.crtime instanceof Date)) {\n throw new Error(\"Invalid crtime type\");\n }\n if (!data.mime || typeof data.mime !== \"string\" || !data.mime.match(/^[-\\w.]+\\/[-+\\w.]+$/gi)) {\n throw new Error(\"Missing or invalid mandatory mime\");\n }\n if (\"size\" in data && typeof data.size !== \"number\" && data.size !== void 0) {\n throw new Error(\"Invalid size type\");\n }\n if (\"permissions\" in data && data.permissions !== void 0 && !(typeof data.permissions === \"number\" && data.permissions >= Permission.NONE && data.permissions <= Permission.ALL)) {\n throw new Error(\"Invalid permissions\");\n }\n if (data.owner && data.owner !== null && typeof data.owner !== \"string\") {\n throw new Error(\"Invalid owner type\");\n }\n if (data.attributes && typeof data.attributes !== \"object\") {\n throw new Error(\"Invalid attributes type\");\n }\n if (data.root && typeof data.root !== \"string\") {\n throw new Error(\"Invalid root type\");\n }\n if (data.root && !data.root.startsWith(\"/\")) {\n throw new Error(\"Root must start with a leading slash\");\n }\n if (data.root && !data.source.includes(data.root)) {\n throw new Error(\"Root must be part of the source\");\n }\n if (data.root && isDavResource(data.source, davService)) {\n const service = data.source.match(davService)[0];\n if (!data.source.includes(join(service, data.root))) {\n throw new Error(\"The root must be relative to the service. e.g /files/emma\");\n }\n }\n if (data.status && !Object.values(NodeStatus).includes(data.status)) {\n throw new Error(\"Status must be a valid NodeStatus\");\n }\n};\nvar NodeStatus = /* @__PURE__ */ ((NodeStatus2) => {\n NodeStatus2[\"NEW\"] = \"new\";\n NodeStatus2[\"FAILED\"] = \"failed\";\n NodeStatus2[\"LOADING\"] = \"loading\";\n NodeStatus2[\"LOCKED\"] = \"locked\";\n return NodeStatus2;\n})(NodeStatus || {});\nclass Node {\n _data;\n _attributes;\n _knownDavService = /(remote|public)\\.php\\/(web)?dav/i;\n readonlyAttributes = Object.entries(Object.getOwnPropertyDescriptors(Node.prototype)).filter((e) => typeof e[1].get === \"function\" && e[0] !== \"__proto__\").map((e) => e[0]);\n handler = {\n set: (target, prop, value) => {\n if (this.readonlyAttributes.includes(prop)) {\n return false;\n }\n return Reflect.set(target, prop, value);\n },\n deleteProperty: (target, prop) => {\n if (this.readonlyAttributes.includes(prop)) {\n return false;\n }\n return Reflect.deleteProperty(target, prop);\n },\n // TODO: This is deprecated and only needed for files v3\n get: (target, prop, receiver) => {\n if (this.readonlyAttributes.includes(prop)) {\n logger.warn(`Accessing \"Node.attributes.${prop}\" is deprecated, access it directly on the Node instance.`);\n return Reflect.get(this, prop);\n }\n return Reflect.get(target, prop, receiver);\n }\n };\n constructor(data, davService) {\n if (!data.mime) {\n data.mime = \"application/octet-stream\";\n }\n validateData(data, davService || this._knownDavService);\n this._data = {\n // TODO: Remove with next major release, this is just for compatibility\n displayname: data.attributes?.displayname,\n ...data,\n attributes: {}\n };\n this._attributes = new Proxy(this._data.attributes, this.handler);\n this.update(data.attributes ?? {});\n if (davService) {\n this._knownDavService = davService;\n }\n }\n /**\n * Get the source url to this object\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get source() {\n return this._data.source.replace(/\\/$/i, \"\");\n }\n /**\n * Get the encoded source url to this object for requests purposes\n */\n get encodedSource() {\n const { origin } = new URL(this.source);\n return origin + encodePath(this.source.slice(origin.length));\n }\n /**\n * Get this object name\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get basename() {\n return basename(this.source);\n }\n /**\n * The nodes displayname\n * By default the display name and the `basename` are identical,\n * but it is possible to have a different name. This happens\n * on the files app for example for shared folders.\n */\n get displayname() {\n return this._data.displayname || this.basename;\n }\n /**\n * Set the displayname\n */\n set displayname(displayname) {\n validateData({ ...this._data, displayname }, this._knownDavService);\n this._data.displayname = displayname;\n }\n /**\n * Get this object's extension\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get extension() {\n return extname(this.source);\n }\n /**\n * Get the directory path leading to this object\n * Will use the relative path to root if available\n *\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get dirname() {\n if (this.root) {\n let source = this.source;\n if (this.isDavResource) {\n source = source.split(this._knownDavService).pop();\n }\n const firstMatch = source.indexOf(this.root);\n const root = this.root.replace(/\\/$/, \"\");\n return dirname(source.slice(firstMatch + root.length) || \"/\");\n }\n const url = new URL(this.source);\n return dirname(url.pathname);\n }\n /**\n * Get the file mime\n */\n get mime() {\n return this._data.mime || \"application/octet-stream\";\n }\n /**\n * Set the file mime\n * Removing the mime type will set it to `application/octet-stream`\n */\n set mime(mime) {\n mime ??= \"application/octet-stream\";\n validateData({ ...this._data, mime }, this._knownDavService);\n this._data.mime = mime;\n }\n /**\n * Get the file modification time\n */\n get mtime() {\n return this._data.mtime;\n }\n /**\n * Set the file modification time\n */\n set mtime(mtime) {\n validateData({ ...this._data, mtime }, this._knownDavService);\n this._data.mtime = mtime;\n }\n /**\n * Get the file creation time\n * There is no setter as the creation time is not meant to be changed\n */\n get crtime() {\n return this._data.crtime;\n }\n /**\n * Get the file size\n */\n get size() {\n return this._data.size;\n }\n /**\n * Set the file size\n */\n set size(size) {\n validateData({ ...this._data, size }, this._knownDavService);\n this.updateMtime();\n this._data.size = size;\n }\n /**\n * Get the file attribute\n * This contains all additional attributes not provided by the Node class\n */\n get attributes() {\n return this._attributes;\n }\n /**\n * Get the file permissions\n */\n get permissions() {\n if (this.owner === null && !this.isDavResource) {\n return Permission.READ;\n }\n return this._data.permissions !== void 0 ? this._data.permissions : Permission.NONE;\n }\n /**\n * Set the file permissions\n */\n set permissions(permissions) {\n validateData({ ...this._data, permissions }, this._knownDavService);\n this.updateMtime();\n this._data.permissions = permissions;\n }\n /**\n * Get the file owner\n * There is no setter as the owner is not meant to be changed\n */\n get owner() {\n if (!this.isDavResource) {\n return null;\n }\n return this._data.owner;\n }\n /**\n * Is this a dav-related resource ?\n */\n get isDavResource() {\n return isDavResource(this.source, this._knownDavService);\n }\n /**\n * @deprecated use `isDavResource` instead - will be removed in next major version.\n */\n get isDavRessource() {\n return this.isDavResource;\n }\n /**\n * Get the dav root of this object\n * There is no setter as the root is not meant to be changed\n */\n get root() {\n if (this._data.root) {\n return this._data.root.replace(/^(.+)\\/$/, \"$1\");\n }\n if (this.isDavResource) {\n const root = dirname(this.source);\n return root.split(this._knownDavService).pop() || null;\n }\n return null;\n }\n /**\n * Get the absolute path of this object relative to the root\n */\n get path() {\n if (this.root) {\n let source = this.source;\n if (this.isDavResource) {\n source = source.split(this._knownDavService).pop();\n }\n const firstMatch = source.indexOf(this.root);\n const root = this.root.replace(/\\/$/, \"\");\n return source.slice(firstMatch + root.length) || \"/\";\n }\n return (this.dirname + \"/\" + this.basename).replace(/\\/\\//g, \"/\");\n }\n /**\n * Get the node id if defined.\n * There is no setter as the fileid is not meant to be changed\n */\n get fileid() {\n return this._data?.id;\n }\n /**\n * Get the node status.\n */\n get status() {\n return this._data?.status;\n }\n /**\n * Set the node status.\n */\n set status(status) {\n validateData({ ...this._data, status }, this._knownDavService);\n this._data.status = status;\n }\n /**\n * Get the node data\n */\n get data() {\n return structuredClone(this._data);\n }\n /**\n * Move the node to a new destination\n *\n * @param {string} destination the new source.\n * e.g. https://cloud.domain.com/remote.php/dav/files/emma/Photos/picture.jpg\n */\n move(destination) {\n validateData({ ...this._data, source: destination }, this._knownDavService);\n const oldBasename = this.basename;\n this._data.source = destination;\n if (this.displayname === oldBasename && this.basename !== oldBasename) {\n this.displayname = this.basename;\n }\n }\n /**\n * Rename the node\n * This aliases the move method for easier usage\n *\n * @param basename The new name of the node\n */\n rename(basename2) {\n if (basename2.includes(\"/\")) {\n throw new Error(\"Invalid basename\");\n }\n this.move(dirname(this.source) + \"/\" + basename2);\n }\n /**\n * Update the mtime if exists\n */\n updateMtime() {\n if (this._data.mtime) {\n this._data.mtime = /* @__PURE__ */ new Date();\n }\n }\n /**\n * Update the attributes of the node\n * Warning, updating attributes will NOT automatically update the mtime.\n *\n * @param attributes The new attributes to update on the Node attributes\n */\n update(attributes) {\n for (const [name, value] of Object.entries(attributes)) {\n try {\n if (value === void 0) {\n delete this.attributes[name];\n } else {\n this.attributes[name] = value;\n }\n } catch (e) {\n if (e instanceof TypeError) {\n continue;\n }\n throw e;\n }\n }\n }\n}\nclass File extends Node {\n get type() {\n return FileType.File;\n }\n /**\n * Returns a clone of the file\n */\n clone() {\n return new File(this.data);\n }\n}\nclass Folder extends Node {\n constructor(data) {\n super({\n ...data,\n mime: \"httpd/unix-directory\"\n });\n }\n get type() {\n return FileType.Folder;\n }\n get extension() {\n return null;\n }\n get mime() {\n return \"httpd/unix-directory\";\n }\n /**\n * Returns a clone of the folder\n */\n clone() {\n return new Folder(this.data);\n }\n}\nconst parsePermissions = function(permString = \"\") {\n let permissions = Permission.NONE;\n if (!permString) {\n return permissions;\n }\n if (permString.includes(\"C\") || permString.includes(\"K\")) {\n permissions |= Permission.CREATE;\n }\n if (permString.includes(\"G\")) {\n permissions |= Permission.READ;\n }\n if (permString.includes(\"W\") || permString.includes(\"N\") || permString.includes(\"V\")) {\n permissions |= Permission.UPDATE;\n }\n if (permString.includes(\"D\")) {\n permissions |= Permission.DELETE;\n }\n if (permString.includes(\"R\")) {\n permissions |= Permission.SHARE;\n }\n return permissions;\n};\nconst defaultDavProperties = [\n \"d:getcontentlength\",\n \"d:getcontenttype\",\n \"d:getetag\",\n \"d:getlastmodified\",\n \"d:creationdate\",\n \"d:displayname\",\n \"d:quota-available-bytes\",\n \"d:resourcetype\",\n \"nc:has-preview\",\n \"nc:is-encrypted\",\n \"nc:mount-type\",\n \"oc:comments-unread\",\n \"oc:favorite\",\n \"oc:fileid\",\n \"oc:owner-display-name\",\n \"oc:owner-id\",\n \"oc:permissions\",\n \"oc:size\"\n];\nconst defaultDavNamespaces = {\n d: \"DAV:\",\n nc: \"http://nextcloud.org/ns\",\n oc: \"http://owncloud.org/ns\",\n ocs: \"http://open-collaboration-services.org/ns\"\n};\nconst registerDavProperty = function(prop, namespace = { nc: \"http://nextcloud.org/ns\" }) {\n if (typeof window._nc_dav_properties === \"undefined\") {\n window._nc_dav_properties = [...defaultDavProperties];\n window._nc_dav_namespaces = { ...defaultDavNamespaces };\n }\n const namespaces = { ...window._nc_dav_namespaces, ...namespace };\n if (window._nc_dav_properties.find((search) => search === prop)) {\n logger.warn(`${prop} already registered`, { prop });\n return false;\n }\n if (prop.startsWith(\"<\") || prop.split(\":\").length !== 2) {\n logger.error(`${prop} is not valid. See example: 'oc:fileid'`, { prop });\n return false;\n }\n const ns = prop.split(\":\")[0];\n if (!namespaces[ns]) {\n logger.error(`${prop} namespace unknown`, { prop, namespaces });\n return false;\n }\n window._nc_dav_properties.push(prop);\n window._nc_dav_namespaces = namespaces;\n return true;\n};\nconst getDavProperties = function() {\n if (typeof window._nc_dav_properties === \"undefined\") {\n window._nc_dav_properties = [...defaultDavProperties];\n }\n return window._nc_dav_properties.map((prop) => `<${prop} />`).join(\" \");\n};\nconst getDavNameSpaces = function() {\n if (typeof window._nc_dav_namespaces === \"undefined\") {\n window._nc_dav_namespaces = { ...defaultDavNamespaces };\n }\n return Object.keys(window._nc_dav_namespaces).map((ns) => `xmlns:${ns}=\"${window._nc_dav_namespaces?.[ns]}\"`).join(\" \");\n};\nconst getDefaultPropfind = function() {\n return `<?xml version=\"1.0\"?>\n\t\t<d:propfind ${getDavNameSpaces()}>\n\t\t\t<d:prop>\n\t\t\t\t${getDavProperties()}\n\t\t\t</d:prop>\n\t\t</d:propfind>`;\n};\nconst getFavoritesReport = function() {\n return `<?xml version=\"1.0\"?>\n\t\t<oc:filter-files ${getDavNameSpaces()}>\n\t\t\t<d:prop>\n\t\t\t\t${getDavProperties()}\n\t\t\t</d:prop>\n\t\t\t<oc:filter-rules>\n\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t</oc:filter-rules>\n\t\t</oc:filter-files>`;\n};\nconst getRecentSearch = function(lastModified) {\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<d:searchrequest ${getDavNameSpaces()}\n\txmlns:ns=\"https://github.com/icewind1991/SearchDAV/ns\">\n\t<d:basicsearch>\n\t\t<d:select>\n\t\t\t<d:prop>\n\t\t\t\t${getDavProperties()}\n\t\t\t</d:prop>\n\t\t</d:select>\n\t\t<d:from>\n\t\t\t<d:scope>\n\t\t\t\t<d:href>/files/${getCurrentUser()?.uid}/</d:href>\n\t\t\t\t<d:depth>infinity</d:depth>\n\t\t\t</d:scope>\n\t\t</d:from>\n\t\t<d:where>\n\t\t\t<d:and>\n\t\t\t\t<d:or>\n\t\t\t\t\t<d:not>\n\t\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<d:getcontenttype/>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t\t<d:literal>httpd/unix-directory</d:literal>\n\t\t\t\t\t\t</d:eq>\n\t\t\t\t\t</d:not>\n\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t<oc:size/>\n\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t<d:literal>0</d:literal>\n\t\t\t\t\t</d:eq>\n\t\t\t\t</d:or>\n\t\t\t\t<d:gt>\n\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t\t</d:prop>\n\t\t\t\t\t<d:literal>${lastModified}</d:literal>\n\t\t\t\t</d:gt>\n\t\t\t</d:and>\n\t\t</d:where>\n\t\t<d:orderby>\n\t\t\t<d:order>\n\t\t\t\t<d:prop>\n\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t</d:prop>\n\t\t\t\t<d:descending/>\n\t\t\t</d:order>\n\t\t</d:orderby>\n\t\t<d:limit>\n\t\t\t<d:nresults>100</d:nresults>\n\t\t\t<ns:firstresult>0</ns:firstresult>\n\t\t</d:limit>\n\t</d:basicsearch>\n</d:searchrequest>`;\n};\nfunction getRootPath() {\n if (isPublicShare()) {\n return `/files/${getSharingToken()}`;\n }\n return `/files/${getCurrentUser()?.uid}`;\n}\nconst defaultRootPath = getRootPath();\nfunction getRemoteURL() {\n const url = generateRemoteUrl(\"dav\");\n if (isPublicShare()) {\n return url.replace(\"remote.php\", \"public.php\");\n }\n return url;\n}\nconst defaultRemoteURL = getRemoteURL();\nconst getClient = function(remoteURL = defaultRemoteURL, headers = {}) {\n const client = createClient(remoteURL, { headers });\n function setHeaders(token) {\n client.setHeaders({\n ...headers,\n // Add this so the server knows it is an request from the browser\n \"X-Requested-With\": \"XMLHttpRequest\",\n // Inject user auth\n requesttoken: token ?? \"\"\n });\n }\n onRequestTokenUpdate(setHeaders);\n setHeaders(getRequestToken());\n const patcher = getPatcher();\n patcher.patch(\"fetch\", (url, options) => {\n const headers2 = options.headers;\n if (headers2?.method) {\n options.method = headers2.method;\n delete headers2.method;\n }\n return fetch(url, options);\n });\n return client;\n};\nconst getFavoriteNodes = (davClient, path = \"/\", davRoot = defaultRootPath) => {\n const controller = new AbortController();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const contentsResponse = await davClient.getDirectoryContents(`${davRoot}${path}`, {\n signal: controller.signal,\n details: true,\n data: getFavoritesReport(),\n headers: {\n // see getClient for patched webdav client\n method: \"REPORT\"\n },\n includeSelf: true\n });\n const nodes = contentsResponse.data.filter((node) => node.filename !== path).map((result) => resultToNode(result, davRoot));\n resolve(nodes);\n } catch (error) {\n reject(error);\n }\n });\n};\nconst resultToNode = function(node, filesRoot = defaultRootPath, remoteURL = defaultRemoteURL) {\n let userId = getCurrentUser()?.uid;\n if (isPublicShare()) {\n userId = userId ?? \"anonymous\";\n } else if (!userId) {\n throw new Error(\"No user id found\");\n }\n const props = node.props;\n const permissions = parsePermissions(props?.permissions);\n const owner = String(props?.[\"owner-id\"] || userId);\n const id = props.fileid || 0;\n const mtime = new Date(Date.parse(node.lastmod));\n const crtime = new Date(Date.parse(props.creationdate));\n const nodeData = {\n id,\n source: `${remoteURL}${node.filename}`,\n mtime: !isNaN(mtime.getTime()) && mtime.getTime() !== 0 ? mtime : void 0,\n crtime: !isNaN(crtime.getTime()) && crtime.getTime() !== 0 ? crtime : void 0,\n mime: node.mime || \"application/octet-stream\",\n // Manually cast to work around for https://github.com/perry-mitchell/webdav-client/pull/380\n displayname: props.displayname !== void 0 ? String(props.displayname) : void 0,\n size: props?.size || Number.parseInt(props.getcontentlength || \"0\"),\n // The fileid is set to -1 for failed requests\n status: id < 0 ? NodeStatus.FAILED : void 0,\n permissions,\n owner,\n root: filesRoot,\n attributes: {\n ...node,\n ...props,\n hasPreview: props?.[\"has-preview\"]\n }\n };\n delete nodeData.attributes?.props;\n return node.type === \"file\" ? new File(nodeData) : new Folder(nodeData);\n};\nexport {\n FileType as F,\n Node as N,\n Permission as P,\n getRemoteURL as a,\n defaultRemoteURL as b,\n getClient as c,\n defaultRootPath as d,\n getFavoriteNodes as e,\n defaultDavProperties as f,\n getRootPath as g,\n defaultDavNamespaces as h,\n registerDavProperty as i,\n getDavProperties as j,\n getDavNameSpaces as k,\n getDefaultPropfind as l,\n getFavoritesReport as m,\n getRecentSearch as n,\n logger as o,\n parsePermissions as p,\n File as q,\n resultToNode as r,\n Folder as s,\n NodeStatus as t\n};\n//# sourceMappingURL=dav-CQDyL7M_.mjs.map\n","import { o as logger } from \"./chunks/dav-CQDyL7M_.mjs\";\nimport { q, F, s, N, t, P, c, l, m, n, a, g, p, b, r, d, h, f, k, j, e, i } from \"./chunks/dav-CQDyL7M_.mjs\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nimport require$$1 from \"string_decoder\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { extname, basename } from \"path\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\nvar DefaultType = /* @__PURE__ */ ((DefaultType2) => {\n DefaultType2[\"DEFAULT\"] = \"default\";\n DefaultType2[\"HIDDEN\"] = \"hidden\";\n return DefaultType2;\n})(DefaultType || {});\nclass FileAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get title() {\n return this._action.title;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n get execBatch() {\n return this._action.execBatch;\n }\n get hotkey() {\n return this._action.hotkey;\n }\n get order() {\n return this._action.order;\n }\n get parent() {\n return this._action.parent;\n }\n get default() {\n return this._action.default;\n }\n get destructive() {\n return this._action.destructive;\n }\n get inline() {\n return this._action.inline;\n }\n get renderInline() {\n return this._action.renderInline;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"title\" in action && typeof action.title !== \"function\") {\n throw new Error(\"Invalid title function\");\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (\"execBatch\" in action && typeof action.execBatch !== \"function\") {\n throw new Error(\"Invalid execBatch function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (action.destructive !== void 0 && typeof action.destructive !== \"boolean\") {\n throw new Error(\"Invalid destructive flag\");\n }\n if (\"parent\" in action && typeof action.parent !== \"string\") {\n throw new Error(\"Invalid parent\");\n }\n if (action.default && !Object.values(DefaultType).includes(action.default)) {\n throw new Error(\"Invalid default\");\n }\n if (\"inline\" in action && typeof action.inline !== \"function\") {\n throw new Error(\"Invalid inline function\");\n }\n if (\"renderInline\" in action && typeof action.renderInline !== \"function\") {\n throw new Error(\"Invalid renderInline function\");\n }\n if (\"hotkey\" in action && action.hotkey !== void 0) {\n if (typeof action.hotkey !== \"object\") {\n throw new Error(\"Invalid hotkey configuration\");\n }\n if (typeof action.hotkey.key !== \"string\" || !action.hotkey.key) {\n throw new Error(\"Missing or invalid hotkey key\");\n }\n if (typeof action.hotkey.description !== \"string\" || !action.hotkey.description) {\n throw new Error(\"Missing or invalid hotkey description\");\n }\n }\n }\n}\nconst registerFileAction = function(action) {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n if (window._nc_fileactions.find((search) => search.id === action.id)) {\n logger.error(`FileAction ${action.id} already registered`, { action });\n return;\n }\n window._nc_fileactions.push(action);\n};\nconst getFileActions = function() {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n return window._nc_fileactions;\n};\nclass FileListAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get order() {\n return this._action.order;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"iconSvgInline\" in action && typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n }\n}\nconst registerFileListAction = (action) => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n if (window._nc_filelistactions.find((listAction) => listAction.id === action.id)) {\n logger.error(`FileListAction with id \"${action.id}\" is already registered`, { action });\n return;\n }\n window._nc_filelistactions.push(action);\n};\nconst getFileListActions = () => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n return window._nc_filelistactions;\n};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar debug_1;\nvar hasRequiredDebug;\nfunction requireDebug() {\n if (hasRequiredDebug) return debug_1;\n hasRequiredDebug = 1;\n const debug = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error(\"SEMVER\", ...args) : () => {\n };\n debug_1 = debug;\n return debug_1;\n}\nvar constants;\nvar hasRequiredConstants;\nfunction requireConstants() {\n if (hasRequiredConstants) return constants;\n hasRequiredConstants = 1;\n const SEMVER_SPEC_VERSION = \"2.0.0\";\n const MAX_LENGTH = 256;\n const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */\n 9007199254740991;\n const MAX_SAFE_COMPONENT_LENGTH = 16;\n const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n const RELEASE_TYPES = [\n \"major\",\n \"premajor\",\n \"minor\",\n \"preminor\",\n \"patch\",\n \"prepatch\",\n \"prerelease\"\n ];\n constants = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 1,\n FLAG_LOOSE: 2\n };\n return constants;\n}\nvar re = { exports: {} };\nvar hasRequiredRe;\nfunction requireRe() {\n if (hasRequiredRe) return re.exports;\n hasRequiredRe = 1;\n (function(module, exports) {\n const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH\n } = requireConstants();\n const debug = requireDebug();\n exports = module.exports = {};\n const re2 = exports.re = [];\n const safeRe = exports.safeRe = [];\n const src = exports.src = [];\n const t2 = exports.t = {};\n let R = 0;\n const LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n const safeRegexReplacements = [\n [\"\\\\s\", 1],\n [\"\\\\d\", MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH]\n ];\n const makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);\n }\n return value;\n };\n const createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value);\n const index = R++;\n debug(name, index, value);\n t2[name] = index;\n src[index] = value;\n re2[index] = new RegExp(value, isGlobal ? \"g\" : void 0);\n safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : void 0);\n };\n createToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\n createToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n createToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n createToken(\"MAINVERSION\", `(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})`);\n createToken(\"MAINVERSIONLOOSE\", `(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t2.NUMERICIDENTIFIER]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t2.NUMERICIDENTIFIERLOOSE]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASE\", `(?:-(${src[t2.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIER]})*))`);\n createToken(\"PRERELEASELOOSE\", `(?:-?(${src[t2.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIERLOOSE]})*))`);\n createToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n createToken(\"BUILD\", `(?:\\\\+(${src[t2.BUILDIDENTIFIER]}(?:\\\\.${src[t2.BUILDIDENTIFIER]})*))`);\n createToken(\"FULLPLAIN\", `v?${src[t2.MAINVERSION]}${src[t2.PRERELEASE]}?${src[t2.BUILD]}?`);\n createToken(\"FULL\", `^${src[t2.FULLPLAIN]}$`);\n createToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t2.MAINVERSIONLOOSE]}${src[t2.PRERELEASELOOSE]}?${src[t2.BUILD]}?`);\n createToken(\"LOOSE\", `^${src[t2.LOOSEPLAIN]}$`);\n createToken(\"GTLT\", \"((?:<|>)?=?)\");\n createToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t2.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n createToken(\"XRANGEIDENTIFIER\", `${src[t2.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n createToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:${src[t2.PRERELEASE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:${src[t2.PRERELEASELOOSE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAIN]}$`);\n createToken(\"XRANGELOOSE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COERCEPLAIN\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);\n createToken(\"COERCE\", `${src[t2.COERCEPLAIN]}(?:$|[^\\\\d])`);\n createToken(\"COERCEFULL\", src[t2.COERCEPLAIN] + `(?:${src[t2.PRERELEASE]})?(?:${src[t2.BUILD]})?(?:$|[^\\\\d])`);\n createToken(\"COERCERTL\", src[t2.COERCE], true);\n createToken(\"COERCERTLFULL\", src[t2.COERCEFULL], true);\n createToken(\"LONETILDE\", \"(?:~>?)\");\n createToken(\"TILDETRIM\", `(\\\\s*)${src[t2.LONETILDE]}\\\\s+`, true);\n exports.tildeTrimReplace = \"$1~\";\n createToken(\"TILDE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"TILDELOOSE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"LONECARET\", \"(?:\\\\^)\");\n createToken(\"CARETTRIM\", `(\\\\s*)${src[t2.LONECARET]}\\\\s+`, true);\n exports.caretTrimReplace = \"$1^\";\n createToken(\"CARET\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"CARETLOOSE\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COMPARATORLOOSE\", `^${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]})$|^$`);\n createToken(\"COMPARATOR\", `^${src[t2.GTLT]}\\\\s*(${src[t2.FULLPLAIN]})$|^$`);\n createToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]}|${src[t2.XRANGEPLAIN]})`, true);\n exports.comparatorTrimReplace = \"$1$2$3\";\n createToken(\"HYPHENRANGE\", `^\\\\s*(${src[t2.XRANGEPLAIN]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAIN]})\\\\s*$`);\n createToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t2.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAINLOOSE]})\\\\s*$`);\n createToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n createToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\n createToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n })(re, re.exports);\n return re.exports;\n}\nvar parseOptions_1;\nvar hasRequiredParseOptions;\nfunction requireParseOptions() {\n if (hasRequiredParseOptions) return parseOptions_1;\n hasRequiredParseOptions = 1;\n const looseOption = Object.freeze({ loose: true });\n const emptyOpts = Object.freeze({});\n const parseOptions = (options) => {\n if (!options) {\n return emptyOpts;\n }\n if (typeof options !== \"object\") {\n return looseOption;\n }\n return options;\n };\n parseOptions_1 = parseOptions;\n return parseOptions_1;\n}\nvar identifiers;\nvar hasRequiredIdentifiers;\nfunction requireIdentifiers() {\n if (hasRequiredIdentifiers) return identifiers;\n hasRequiredIdentifiers = 1;\n const numeric = /^[0-9]+$/;\n const compareIdentifiers = (a2, b2) => {\n const anum = numeric.test(a2);\n const bnum = numeric.test(b2);\n if (anum && bnum) {\n a2 = +a2;\n b2 = +b2;\n }\n return a2 === b2 ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a2 < b2 ? -1 : 1;\n };\n const rcompareIdentifiers = (a2, b2) => compareIdentifiers(b2, a2);\n identifiers = {\n compareIdentifiers,\n rcompareIdentifiers\n };\n return identifiers;\n}\nvar semver;\nvar hasRequiredSemver;\nfunction requireSemver() {\n if (hasRequiredSemver) return semver;\n hasRequiredSemver = 1;\n const debug = requireDebug();\n const { MAX_LENGTH, MAX_SAFE_INTEGER } = requireConstants();\n const { safeRe: re2, t: t2 } = requireRe();\n const parseOptions = requireParseOptions();\n const { compareIdentifiers } = requireIdentifiers();\n class SemVer {\n constructor(version, options) {\n options = parseOptions(options);\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) {\n return version;\n } else {\n version = version.version;\n }\n } else if (typeof version !== \"string\") {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n }\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n );\n }\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n const m2 = version.trim().match(options.loose ? re2[t2.LOOSE] : re2[t2.FULL]);\n if (!m2) {\n throw new TypeError(`Invalid Version: ${version}`);\n }\n this.raw = version;\n this.major = +m2[1];\n this.minor = +m2[2];\n this.patch = +m2[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError(\"Invalid major version\");\n }\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError(\"Invalid minor version\");\n }\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError(\"Invalid patch version\");\n }\n if (!m2[4]) {\n this.prerelease = [];\n } else {\n this.prerelease = m2[4].split(\".\").map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num;\n }\n }\n return id;\n });\n }\n this.build = m2[5] ? m2[5].split(\".\") : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join(\".\")}`;\n }\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) {\n if (typeof other === \"string\" && other === this.version) {\n return 0;\n }\n other = new SemVer(other, this.options);\n }\n if (other.version === this.version) {\n return 0;\n }\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n }\n comparePre(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n if (this.prerelease.length && !other.prerelease.length) {\n return -1;\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1;\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0;\n }\n let i2 = 0;\n do {\n const a2 = this.prerelease[i2];\n const b2 = other.prerelease[i2];\n debug(\"prerelease compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n compareBuild(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n let i2 = 0;\n do {\n const a2 = this.build[i2];\n const b2 = other.build[i2];\n debug(\"build compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n switch (release) {\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prepatch\":\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) {\n this.inc(\"patch\", identifier, identifierBase);\n }\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"major\":\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {\n this.major++;\n }\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++;\n }\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n if (this.prerelease.length === 0) {\n this.patch++;\n }\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case \"pre\": {\n const base = Number(identifierBase) ? 1 : 0;\n if (!identifier && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier is empty\");\n }\n if (this.prerelease.length === 0) {\n this.prerelease = [base];\n } else {\n let i2 = this.prerelease.length;\n while (--i2 >= 0) {\n if (typeof this.prerelease[i2] === \"number\") {\n this.prerelease[i2]++;\n i2 = -2;\n }\n }\n if (i2 === -1) {\n if (identifier === this.prerelease.join(\".\") && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier already exists\");\n }\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n let prerelease = [identifier, base];\n if (identifierBase === false) {\n prerelease = [identifier];\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease;\n }\n } else {\n this.prerelease = prerelease;\n }\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) {\n this.raw += `+${this.build.join(\".\")}`;\n }\n return this;\n }\n }\n semver = SemVer;\n return semver;\n}\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n if (hasRequiredParse) return parse_1;\n hasRequiredParse = 1;\n const SemVer = requireSemver();\n const parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version;\n }\n try {\n return new SemVer(version, options);\n } catch (er) {\n if (!throwErrors) {\n return null;\n }\n throw er;\n }\n };\n parse_1 = parse;\n return parse_1;\n}\nvar valid_1;\nvar hasRequiredValid;\nfunction requireValid() {\n if (hasRequiredValid) return valid_1;\n hasRequiredValid = 1;\n const parse = requireParse();\n const valid2 = (version, options) => {\n const v = parse(version, options);\n return v ? v.version : null;\n };\n valid_1 = valid2;\n return valid_1;\n}\nvar validExports = requireValid();\nconst valid = /* @__PURE__ */ getDefaultExportFromCjs(validExports);\nvar major_1;\nvar hasRequiredMajor;\nfunction requireMajor() {\n if (hasRequiredMajor) return major_1;\n hasRequiredMajor = 1;\n const SemVer = requireSemver();\n const major2 = (a2, loose) => new SemVer(a2, loose).major;\n major_1 = major2;\n return major_1;\n}\nvar majorExports = requireMajor();\nconst major = /* @__PURE__ */ getDefaultExportFromCjs(majorExports);\nclass ProxyBus {\n bus;\n constructor(bus2) {\n if (typeof bus2.getVersion !== \"function\" || !valid(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major(bus2.getVersion()) !== major(this.getVersion())) {\n console.warn(\n \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n );\n }\n this.bus = bus2;\n }\n getVersion() {\n return \"3.3.2\";\n }\n subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n emit(name, ...event) {\n this.bus.emit(name, ...event);\n }\n}\nclass SimpleBus {\n handlers = /* @__PURE__ */ new Map();\n getVersion() {\n return \"3.3.2\";\n }\n subscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).concat(\n handler\n )\n );\n }\n unsubscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).filter((h2) => h2 !== handler)\n );\n }\n emit(name, ...event) {\n const handlers = this.handlers.get(name) || [];\n handlers.forEach((h2) => {\n try {\n ;\n h2(event[0]);\n } catch (e2) {\n console.error(\"could not invoke event listener\", e2);\n }\n });\n }\n}\nlet bus = null;\nfunction getBus() {\n if (bus !== null) {\n return bus;\n }\n if (typeof window === \"undefined\") {\n return new Proxy({}, {\n get: () => {\n return () => console.error(\n \"Window not available, EventBus can not be established!\"\n );\n }\n });\n }\n if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n console.warn(\n \"found old event bus instance at OC._eventBus. Update your version!\"\n );\n window._nc_event_bus = window.OC._eventBus;\n }\n if (typeof window?._nc_event_bus !== \"undefined\") {\n bus = new ProxyBus(window._nc_event_bus);\n } else {\n bus = window._nc_event_bus = new SimpleBus();\n }\n return bus;\n}\nfunction emit(name, ...event) {\n getBus().emit(name, ...event);\n}\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass FileListFilter extends TypedEventTarget {\n id;\n order;\n constructor(id, order = 100) {\n super();\n this.id = id;\n this.order = order;\n }\n filter(nodes) {\n throw new Error(\"Not implemented\");\n }\n updateChips(chips) {\n this.dispatchTypedEvent(\"update:chips\", new CustomEvent(\"update:chips\", { detail: chips }));\n }\n filterUpdated() {\n this.dispatchTypedEvent(\"update:filter\", new CustomEvent(\"update:filter\"));\n }\n}\nfunction registerFileListFilter(filter) {\n if (!window._nc_filelist_filters) {\n window._nc_filelist_filters = /* @__PURE__ */ new Map();\n }\n if (window._nc_filelist_filters.has(filter.id)) {\n throw new Error(`File list filter \"${filter.id}\" already registered`);\n }\n window._nc_filelist_filters.set(filter.id, filter);\n emit(\"files:filter:added\", filter);\n}\nfunction unregisterFileListFilter(filterId) {\n if (window._nc_filelist_filters && window._nc_filelist_filters.has(filterId)) {\n window._nc_filelist_filters.delete(filterId);\n emit(\"files:filter:removed\", filterId);\n }\n}\nfunction getFileListFilters() {\n if (!window._nc_filelist_filters) {\n return [];\n }\n return [...window._nc_filelist_filters.values()];\n}\nclass Header {\n _header;\n constructor(header) {\n this.validateHeader(header);\n this._header = header;\n }\n get id() {\n return this._header.id;\n }\n get order() {\n return this._header.order;\n }\n get enabled() {\n return this._header.enabled;\n }\n get render() {\n return this._header.render;\n }\n get updated() {\n return this._header.updated;\n }\n validateHeader(header) {\n if (!header.id || !header.render || !header.updated) {\n throw new Error(\"Invalid header: id, render and updated are required\");\n }\n if (typeof header.id !== \"string\") {\n throw new Error(\"Invalid id property\");\n }\n if (header.enabled !== void 0 && typeof header.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (header.render && typeof header.render !== \"function\") {\n throw new Error(\"Invalid render property\");\n }\n if (header.updated && typeof header.updated !== \"function\") {\n throw new Error(\"Invalid updated property\");\n }\n }\n}\nconst registerFileListHeaders = function(header) {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n if (window._nc_filelistheader.find((search) => search.id === header.id)) {\n logger.error(`Header ${header.id} already registered`, { header });\n return;\n }\n window._nc_filelistheader.push(header);\n};\nconst getFileListHeaders = function() {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n return window._nc_filelistheader;\n};\nclass Navigation extends TypedEventTarget {\n _views = [];\n _currentView = null;\n /**\n * Register a new view on the navigation\n * @param view The view to register\n * @throws `Error` is thrown if a view with the same id is already registered\n */\n register(view) {\n if (this._views.find((search) => search.id === view.id)) {\n throw new Error(`View id ${view.id} is already registered`);\n }\n this._views.push(view);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n /**\n * Remove a registered view\n * @param id The id of the view to remove\n */\n remove(id) {\n const index = this._views.findIndex((view) => view.id === id);\n if (index !== -1) {\n this._views.splice(index, 1);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n }\n /**\n * Set the currently active view\n * @fires UpdateActiveViewEvent\n * @param view New active view\n */\n setActive(view) {\n this._currentView = view;\n const event = new CustomEvent(\"updateActive\", { detail: view });\n this.dispatchTypedEvent(\"updateActive\", event);\n }\n /**\n * The currently active files view\n */\n get active() {\n return this._currentView;\n }\n /**\n * All registered views\n */\n get views() {\n return this._views;\n }\n}\nconst getNavigation = function() {\n if (typeof window._nc_navigation === \"undefined\") {\n window._nc_navigation = new Navigation();\n logger.debug(\"Navigation service initialized\");\n }\n return window._nc_navigation;\n};\nclass Column {\n _column;\n constructor(column) {\n isValidColumn(column);\n this._column = column;\n }\n get id() {\n return this._column.id;\n }\n get title() {\n return this._column.title;\n }\n get render() {\n return this._column.render;\n }\n get sort() {\n return this._column.sort;\n }\n get summary() {\n return this._column.summary;\n }\n}\nconst isValidColumn = function(column) {\n if (!column.id || typeof column.id !== \"string\") {\n throw new Error(\"A column id is required\");\n }\n if (!column.title || typeof column.title !== \"string\") {\n throw new Error(\"A column title is required\");\n }\n if (!column.render || typeof column.render !== \"function\") {\n throw new Error(\"A render function is required\");\n }\n if (column.sort && typeof column.sort !== \"function\") {\n throw new Error(\"Column sortFunction must be a function\");\n }\n if (column.summary && typeof column.summary !== \"function\") {\n throw new Error(\"Column summary must be a function\");\n }\n return true;\n};\nvar sax$1 = {};\nvar hasRequiredSax;\nfunction requireSax() {\n if (hasRequiredSax) return sax$1;\n hasRequiredSax = 1;\n (function(exports) {\n (function(sax2) {\n sax2.parser = function(strict, opt) {\n return new SAXParser(strict, opt);\n };\n sax2.SAXParser = SAXParser;\n sax2.SAXStream = SAXStream;\n sax2.createStream = createStream;\n sax2.MAX_BUFFER_LENGTH = 64 * 1024;\n var buffers = [\n \"comment\",\n \"sgmlDecl\",\n \"textNode\",\n \"tagName\",\n \"doctype\",\n \"procInstName\",\n \"procInstBody\",\n \"entity\",\n \"attribName\",\n \"attribValue\",\n \"cdata\",\n \"script\"\n ];\n sax2.EVENTS = [\n \"text\",\n \"processinginstruction\",\n \"sgmldeclaration\",\n \"doctype\",\n \"comment\",\n \"opentagstart\",\n \"attribute\",\n \"opentag\",\n \"closetag\",\n \"opencdata\",\n \"cdata\",\n \"closecdata\",\n \"error\",\n \"end\",\n \"ready\",\n \"script\",\n \"opennamespace\",\n \"closenamespace\"\n ];\n function SAXParser(strict, opt) {\n if (!(this instanceof SAXParser)) {\n return new SAXParser(strict, opt);\n }\n var parser = this;\n clearBuffers(parser);\n parser.q = parser.c = \"\";\n parser.bufferCheckPosition = sax2.MAX_BUFFER_LENGTH;\n parser.opt = opt || {};\n parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags;\n parser.looseCase = parser.opt.lowercase ? \"toLowerCase\" : \"toUpperCase\";\n parser.tags = [];\n parser.closed = parser.closedRoot = parser.sawRoot = false;\n parser.tag = parser.error = null;\n parser.strict = !!strict;\n parser.noscript = !!(strict || parser.opt.noscript);\n parser.state = S.BEGIN;\n parser.strictEntities = parser.opt.strictEntities;\n parser.ENTITIES = parser.strictEntities ? Object.create(sax2.XML_ENTITIES) : Object.create(sax2.ENTITIES);\n parser.attribList = [];\n if (parser.opt.xmlns) {\n parser.ns = Object.create(rootNS);\n }\n if (parser.opt.unquotedAttributeValues === void 0) {\n parser.opt.unquotedAttributeValues = !strict;\n }\n parser.trackPosition = parser.opt.position !== false;\n if (parser.trackPosition) {\n parser.position = parser.line = parser.column = 0;\n }\n emit2(parser, \"onready\");\n }\n if (!Object.create) {\n Object.create = function(o) {\n function F2() {\n }\n F2.prototype = o;\n var newf = new F2();\n return newf;\n };\n }\n if (!Object.keys) {\n Object.keys = function(o) {\n var a2 = [];\n for (var i2 in o) if (o.hasOwnProperty(i2)) a2.push(i2);\n return a2;\n };\n }\n function checkBufferLength(parser) {\n var maxAllowed = Math.max(sax2.MAX_BUFFER_LENGTH, 10);\n var maxActual = 0;\n for (var i2 = 0, l2 = buffers.length; i2 < l2; i2++) {\n var len = parser[buffers[i2]].length;\n if (len > maxAllowed) {\n switch (buffers[i2]) {\n case \"textNode\":\n closeText(parser);\n break;\n case \"cdata\":\n emitNode(parser, \"oncdata\", parser.cdata);\n parser.cdata = \"\";\n break;\n case \"script\":\n emitNode(parser, \"onscript\", parser.script);\n parser.script = \"\";\n break;\n default:\n error(parser, \"Max buffer length exceeded: \" + buffers[i2]);\n }\n }\n maxActual = Math.max(maxActual, len);\n }\n var m2 = sax2.MAX_BUFFER_LENGTH - maxActual;\n parser.bufferCheckPosition = m2 + parser.position;\n }\n function clearBuffers(parser) {\n for (var i2 = 0, l2 = buffers.length; i2 < l2; i2++) {\n parser[buffers[i2]] = \"\";\n }\n }\n function flushBuffers(parser) {\n closeText(parser);\n if (parser.cdata !== \"\") {\n emitNode(parser, \"oncdata\", parser.cdata);\n parser.cdata = \"\";\n }\n if (parser.script !== \"\") {\n emitNode(parser, \"onscript\", parser.script);\n parser.script = \"\";\n }\n }\n SAXParser.prototype = {\n end: function() {\n end(this);\n },\n write,\n resume: function() {\n this.error = null;\n return this;\n },\n close: function() {\n return this.write(null);\n },\n flush: function() {\n flushBuffers(this);\n }\n };\n var Stream;\n try {\n Stream = require(\"stream\").Stream;\n } catch (ex) {\n Stream = function() {\n };\n }\n if (!Stream) Stream = function() {\n };\n var streamWraps = sax2.EVENTS.filter(function(ev) {\n return ev !== \"error\" && ev !== \"end\";\n });\n function createStream(strict, opt) {\n return new SAXStream(strict, opt);\n }\n function SAXStream(strict, opt) {\n if (!(this instanceof SAXStream)) {\n return new SAXStream(strict, opt);\n }\n Stream.apply(this);\n this._parser = new SAXParser(strict, opt);\n this.writable = true;\n this.readable = true;\n var me = this;\n this._parser.onend = function() {\n me.emit(\"end\");\n };\n this._parser.onerror = function(er) {\n me.emit(\"error\", er);\n me._parser.error = null;\n };\n this._decoder = null;\n streamWraps.forEach(function(ev) {\n Object.defineProperty(me, \"on\" + ev, {\n get: function() {\n return me._parser[\"on\" + ev];\n },\n set: function(h2) {\n if (!h2) {\n me.removeAllListeners(ev);\n me._parser[\"on\" + ev] = h2;\n return h2;\n }\n me.on(ev, h2);\n },\n enumerable: true,\n configurable: false\n });\n });\n }\n SAXStream.prototype = Object.create(Stream.prototype, {\n constructor: {\n value: SAXStream\n }\n });\n SAXStream.prototype.write = function(data) {\n if (typeof Buffer === \"function\" && typeof Buffer.isBuffer === \"function\" && Buffer.isBuffer(data)) {\n if (!this._decoder) {\n var SD = require$$1.StringDecoder;\n this._decoder = new SD(\"utf8\");\n }\n data = this._decoder.write(data);\n }\n this._parser.write(data.toString());\n this.emit(\"data\", data);\n return true;\n };\n SAXStream.prototype.end = function(chunk) {\n if (chunk && chunk.length) {\n this.write(chunk);\n }\n this._parser.end();\n return true;\n };\n SAXStream.prototype.on = function(ev, handler) {\n var me = this;\n if (!me._parser[\"on\" + ev] && streamWraps.indexOf(ev) !== -1) {\n me._parser[\"on\" + ev] = function() {\n var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments);\n args.splice(0, 0, ev);\n me.emit.apply(me, args);\n };\n }\n return Stream.prototype.on.call(me, ev, handler);\n };\n var CDATA = \"[CDATA[\";\n var DOCTYPE = \"DOCTYPE\";\n var XML_NAMESPACE = \"http://www.w3.org/XML/1998/namespace\";\n var XMLNS_NAMESPACE = \"http://www.w3.org/2000/xmlns/\";\n var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE };\n var nameStart = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\n var nameBody = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\n var entityStart = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\n var entityBody = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\n function isWhitespace(c2) {\n return c2 === \" \" || c2 === \"\\n\" || c2 === \"\\r\" || c2 === \"\t\";\n }\n function isQuote(c2) {\n return c2 === '\"' || c2 === \"'\";\n }\n function isAttribEnd(c2) {\n return c2 === \">\" || isWhitespace(c2);\n }\n function isMatch(regex, c2) {\n return regex.test(c2);\n }\n function notMatch(regex, c2) {\n return !isMatch(regex, c2);\n }\n var S = 0;\n sax2.STATE = {\n BEGIN: S++,\n // leading byte order mark or whitespace\n BEGIN_WHITESPACE: S++,\n // leading whitespace\n TEXT: S++,\n // general stuff\n TEXT_ENTITY: S++,\n // &amp and such.\n OPEN_WAKA: S++,\n // <\n SGML_DECL: S++,\n // <!BLARG\n SGML_DECL_QUOTED: S++,\n // <!BLARG foo \"bar\n DOCTYPE: S++,\n // <!DOCTYPE\n DOCTYPE_QUOTED: S++,\n // <!DOCTYPE \"//blah\n DOCTYPE_DTD: S++,\n // <!DOCTYPE \"//blah\" [ ...\n DOCTYPE_DTD_QUOTED: S++,\n // <!DOCTYPE \"//blah\" [ \"foo\n COMMENT_STARTING: S++,\n // <!-\n COMMENT: S++,\n // <!--\n COMMENT_ENDING: S++,\n // <!-- blah -\n COMMENT_ENDED: S++,\n // <!-- blah --\n CDATA: S++,\n // <![CDATA[ something\n CDATA_ENDING: S++,\n // ]\n CDATA_ENDING_2: S++,\n // ]]\n PROC_INST: S++,\n // <?hi\n PROC_INST_BODY: S++,\n // <?hi there\n PROC_INST_ENDING: S++,\n // <?hi \"there\" ?\n OPEN_TAG: S++,\n // <strong\n OPEN_TAG_SLASH: S++,\n // <strong /\n ATTRIB: S++,\n // <a\n ATTRIB_NAME: S++,\n // <a foo\n ATTRIB_NAME_SAW_WHITE: S++,\n // <a foo _\n ATTRIB_VALUE: S++,\n // <a foo=\n ATTRIB_VALUE_QUOTED: S++,\n // <a foo=\"bar\n ATTRIB_VALUE_CLOSED: S++,\n // <a foo=\"bar\"\n ATTRIB_VALUE_UNQUOTED: S++,\n // <a foo=bar\n ATTRIB_VALUE_ENTITY_Q: S++,\n // <foo bar=\"&quot;\"\n ATTRIB_VALUE_ENTITY_U: S++,\n // <foo bar=&quot\n CLOSE_TAG: S++,\n // </a\n CLOSE_TAG_SAW_WHITE: S++,\n // </a >\n SCRIPT: S++,\n // <script> ...\n SCRIPT_ENDING: S++\n // <script> ... <\n };\n sax2.XML_ENTITIES = {\n \"amp\": \"&\",\n \"gt\": \">\",\n \"lt\": \"<\",\n \"quot\": '\"',\n \"apos\": \"'\"\n };\n sax2.ENTITIES = {\n \"amp\": \"&\",\n \"gt\": \">\",\n \"lt\": \"<\",\n \"quot\": '\"',\n \"apos\": \"'\",\n \"AElig\": 198,\n \"Aacute\": 193,\n \"Acirc\": 194,\n \"Agrave\": 192,\n \"Aring\": 197,\n \"Atilde\": 195,\n \"Auml\": 196,\n \"Ccedil\": 199,\n \"ETH\": 208,\n \"Eacute\": 201,\n \"Ecirc\": 202,\n \"Egrave\": 200,\n \"Euml\": 203,\n \"Iacute\": 205,\n \"Icirc\": 206,\n \"Igrave\": 204,\n \"Iuml\": 207,\n \"Ntilde\": 209,\n \"Oacute\": 211,\n \"Ocirc\": 212,\n \"Ograve\": 210,\n \"Oslash\": 216,\n \"Otilde\": 213,\n \"Ouml\": 214,\n \"THORN\": 222,\n \"Uacute\": 218,\n \"Ucirc\": 219,\n \"Ugrave\": 217,\n \"Uuml\": 220,\n \"Yacute\": 221,\n \"aacute\": 225,\n \"acirc\": 226,\n \"aelig\": 230,\n \"agrave\": 224,\n \"aring\": 229,\n \"atilde\": 227,\n \"auml\": 228,\n \"ccedil\": 231,\n \"eacute\": 233,\n \"ecirc\": 234,\n \"egrave\": 232,\n \"eth\": 240,\n \"euml\": 235,\n \"iacute\": 237,\n \"icirc\": 238,\n \"igrave\": 236,\n \"iuml\": 239,\n \"ntilde\": 241,\n \"oacute\": 243,\n \"ocirc\": 244,\n \"ograve\": 242,\n \"oslash\": 248,\n \"otilde\": 245,\n \"ouml\": 246,\n \"szlig\": 223,\n \"thorn\": 254,\n \"uacute\": 250,\n \"ucirc\": 251,\n \"ugrave\": 249,\n \"uuml\": 252,\n \"yacute\": 253,\n \"yuml\": 255,\n \"copy\": 169,\n \"reg\": 174,\n \"nbsp\": 160,\n \"iexcl\": 161,\n \"cent\": 162,\n \"pound\": 163,\n \"curren\": 164,\n \"yen\": 165,\n \"brvbar\": 166,\n \"sect\": 167,\n \"uml\": 168,\n \"ordf\": 170,\n \"laquo\": 171,\n \"not\": 172,\n \"shy\": 173,\n \"macr\": 175,\n \"deg\": 176,\n \"plusmn\": 177,\n \"sup1\": 185,\n \"sup2\": 178,\n \"sup3\": 179,\n \"acute\": 180,\n \"micro\": 181,\n \"para\": 182,\n \"middot\": 183,\n \"cedil\": 184,\n \"ordm\": 186,\n \"raquo\": 187,\n \"frac14\": 188,\n \"frac12\": 189,\n \"frac34\": 190,\n \"iquest\": 191,\n \"times\": 215,\n \"divide\": 247,\n \"OElig\": 338,\n \"oelig\": 339,\n \"Scaron\": 352,\n \"scaron\": 353,\n \"Yuml\": 376,\n \"fnof\": 402,\n \"circ\": 710,\n \"tilde\": 732,\n \"Alpha\": 913,\n \"Beta\": 914,\n \"Gamma\": 915,\n \"Delta\": 916,\n \"Epsilon\": 917,\n \"Zeta\": 918,\n \"Eta\": 919,\n \"Theta\": 920,\n \"Iota\": 921,\n \"Kappa\": 922,\n \"Lambda\": 923,\n \"Mu\": 924,\n \"Nu\": 925,\n \"Xi\": 926,\n \"Omicron\": 927,\n \"Pi\": 928,\n \"Rho\": 929,\n \"Sigma\": 931,\n \"Tau\": 932,\n \"Upsilon\": 933,\n \"Phi\": 934,\n \"Chi\": 935,\n \"Psi\": 936,\n \"Omega\": 937,\n \"alpha\": 945,\n \"beta\": 946,\n \"gamma\": 947,\n \"delta\": 948,\n \"epsilon\": 949,\n \"zeta\": 950,\n \"eta\": 951,\n \"theta\": 952,\n \"iota\": 953,\n \"kappa\": 954,\n \"lambda\": 955,\n \"mu\": 956,\n \"nu\": 957,\n \"xi\": 958,\n \"omicron\": 959,\n \"pi\": 960,\n \"rho\": 961,\n \"sigmaf\": 962,\n \"sigma\": 963,\n \"tau\": 964,\n \"upsilon\": 965,\n \"phi\": 966,\n \"chi\": 967,\n \"psi\": 968,\n \"omega\": 969,\n \"thetasym\": 977,\n \"upsih\": 978,\n \"piv\": 982,\n \"ensp\": 8194,\n \"emsp\": 8195,\n \"thinsp\": 8201,\n \"zwnj\": 8204,\n \"zwj\": 8205,\n \"lrm\": 8206,\n \"rlm\": 8207,\n \"ndash\": 8211,\n \"mdash\": 8212,\n \"lsquo\": 8216,\n \"rsquo\": 8217,\n \"sbquo\": 8218,\n \"ldquo\": 8220,\n \"rdquo\": 8221,\n \"bdquo\": 8222,\n \"dagger\": 8224,\n \"Dagger\": 8225,\n \"bull\": 8226,\n \"hellip\": 8230,\n \"permil\": 8240,\n \"prime\": 8242,\n \"Prime\": 8243,\n \"lsaquo\": 8249,\n \"rsaquo\": 8250,\n \"oline\": 8254,\n \"frasl\": 8260,\n \"euro\": 8364,\n \"image\": 8465,\n \"weierp\": 8472,\n \"real\": 8476,\n \"trade\": 8482,\n \"alefsym\": 8501,\n \"larr\": 8592,\n \"uarr\": 8593,\n \"rarr\": 8594,\n \"darr\": 8595,\n \"harr\": 8596,\n \"crarr\": 8629,\n \"lArr\": 8656,\n \"uArr\": 8657,\n \"rArr\": 8658,\n \"dArr\": 8659,\n \"hArr\": 8660,\n \"forall\": 8704,\n \"part\": 8706,\n \"exist\": 8707,\n \"empty\": 8709,\n \"nabla\": 8711,\n \"isin\": 8712,\n \"notin\": 8713,\n \"ni\": 8715,\n \"prod\": 8719,\n \"sum\": 8721,\n \"minus\": 8722,\n \"lowast\": 8727,\n \"radic\": 8730,\n \"prop\": 8733,\n \"infin\": 8734,\n \"ang\": 8736,\n \"and\": 8743,\n \"or\": 8744,\n \"cap\": 8745,\n \"cup\": 8746,\n \"int\": 8747,\n \"there4\": 8756,\n \"sim\": 8764,\n \"cong\": 8773,\n \"asymp\": 8776,\n \"ne\": 8800,\n \"equiv\": 8801,\n \"le\": 8804,\n \"ge\": 8805,\n \"sub\": 8834,\n \"sup\": 8835,\n \"nsub\": 8836,\n \"sube\": 8838,\n \"supe\": 8839,\n \"oplus\": 8853,\n \"otimes\": 8855,\n \"perp\": 8869,\n \"sdot\": 8901,\n \"lceil\": 8968,\n \"rceil\": 8969,\n \"lfloor\": 8970,\n \"rfloor\": 8971,\n \"lang\": 9001,\n \"rang\": 9002,\n \"loz\": 9674,\n \"spades\": 9824,\n \"clubs\": 9827,\n \"hearts\": 9829,\n \"diams\": 9830\n };\n Object.keys(sax2.ENTITIES).forEach(function(key) {\n var e2 = sax2.ENTITIES[key];\n var s3 = typeof e2 === \"number\" ? String.fromCharCode(e2) : e2;\n sax2.ENTITIES[key] = s3;\n });\n for (var s2 in sax2.STATE) {\n sax2.STATE[sax2.STATE[s2]] = s2;\n }\n S = sax2.STATE;\n function emit2(parser, event, data) {\n parser[event] && parser[event](data);\n }\n function emitNode(parser, nodeType, data) {\n if (parser.textNode) closeText(parser);\n emit2(parser, nodeType, data);\n }\n function closeText(parser) {\n parser.textNode = textopts(parser.opt, parser.textNode);\n if (parser.textNode) emit2(parser, \"ontext\", parser.textNode);\n parser.textNode = \"\";\n }\n function textopts(opt, text) {\n if (opt.trim) text = text.trim();\n if (opt.normalize) text = text.replace(/\\s+/g, \" \");\n return text;\n }\n function error(parser, er) {\n closeText(parser);\n if (parser.trackPosition) {\n er += \"\\nLine: \" + parser.line + \"\\nColumn: \" + parser.column + \"\\nChar: \" + parser.c;\n }\n er = new Error(er);\n parser.error = er;\n emit2(parser, \"onerror\", er);\n return parser;\n }\n function end(parser) {\n if (parser.sawRoot && !parser.closedRoot) strictFail(parser, \"Unclosed root tag\");\n if (parser.state !== S.BEGIN && parser.state !== S.BEGIN_WHITESPACE && parser.state !== S.TEXT) {\n error(parser, \"Unexpected end\");\n }\n closeText(parser);\n parser.c = \"\";\n parser.closed = true;\n emit2(parser, \"onend\");\n SAXParser.call(parser, parser.strict, parser.opt);\n return parser;\n }\n function strictFail(parser, message) {\n if (typeof parser !== \"object\" || !(parser instanceof SAXParser)) {\n throw new Error(\"bad call to strictFail\");\n }\n if (parser.strict) {\n error(parser, message);\n }\n }\n function newTag(parser) {\n if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]();\n var parent = parser.tags[parser.tags.length - 1] || parser;\n var tag = parser.tag = { name: parser.tagName, attributes: {} };\n if (parser.opt.xmlns) {\n tag.ns = parent.ns;\n }\n parser.attribList.length = 0;\n emitNode(parser, \"onopentagstart\", tag);\n }\n function qname(name, attribute) {\n var i2 = name.indexOf(\":\");\n var qualName = i2 < 0 ? [\"\", name] : name.split(\":\");\n var prefix = qualName[0];\n var local = qualName[1];\n if (attribute && name === \"xmlns\") {\n prefix = \"xmlns\";\n local = \"\";\n }\n return { prefix, local };\n }\n function attrib(parser) {\n if (!parser.strict) {\n parser.attribName = parser.attribName[parser.looseCase]();\n }\n if (parser.attribList.indexOf(parser.attribName) !== -1 || parser.tag.attributes.hasOwnProperty(parser.attribName)) {\n parser.attribName = parser.attribValue = \"\";\n return;\n }\n if (parser.opt.xmlns) {\n var qn = qname(parser.attribName, true);\n var prefix = qn.prefix;\n var local = qn.local;\n if (prefix === \"xmlns\") {\n if (local === \"xml\" && parser.attribValue !== XML_NAMESPACE) {\n strictFail(\n parser,\n \"xml: prefix must be bound to \" + XML_NAMESPACE + \"\\nActual: \" + parser.attribValue\n );\n } else if (local === \"xmlns\" && parser.attribValue !== XMLNS_NAMESPACE) {\n strictFail(\n parser,\n \"xmlns: prefix must be bound to \" + XMLNS_NAMESPACE + \"\\nActual: \" + parser.attribValue\n );\n } else {\n var tag = parser.tag;\n var parent = parser.tags[parser.tags.length - 1] || parser;\n if (tag.ns === parent.ns) {\n tag.ns = Object.create(parent.ns);\n }\n tag.ns[local] = parser.attribValue;\n }\n }\n parser.attribList.push([parser.attribName, parser.attribValue]);\n } else {\n parser.tag.attributes[parser.attribName] = parser.attribValue;\n emitNode(parser, \"onattribute\", {\n name: parser.attribName,\n value: parser.attribValue\n });\n }\n parser.attribName = parser.attribValue = \"\";\n }\n function openTag(parser, selfClosing) {\n if (parser.opt.xmlns) {\n var tag = parser.tag;\n var qn = qname(parser.tagName);\n tag.prefix = qn.prefix;\n tag.local = qn.local;\n tag.uri = tag.ns[qn.prefix] || \"\";\n if (tag.prefix && !tag.uri) {\n strictFail(parser, \"Unbound namespace prefix: \" + JSON.stringify(parser.tagName));\n tag.uri = qn.prefix;\n }\n var parent = parser.tags[parser.tags.length - 1] || parser;\n if (tag.ns && parent.ns !== tag.ns) {\n Object.keys(tag.ns).forEach(function(p2) {\n emitNode(parser, \"onopennamespace\", {\n prefix: p2,\n uri: tag.ns[p2]\n });\n });\n }\n for (var i2 = 0, l2 = parser.attribList.length; i2 < l2; i2++) {\n var nv = parser.attribList[i2];\n var name = nv[0];\n var value = nv[1];\n var qualName = qname(name, true);\n var prefix = qualName.prefix;\n var local = qualName.local;\n var uri = prefix === \"\" ? \"\" : tag.ns[prefix] || \"\";\n var a2 = {\n name,\n value,\n prefix,\n local,\n uri\n };\n if (prefix && prefix !== \"xmlns\" && !uri) {\n strictFail(parser, \"Unbound namespace prefix: \" + JSON.stringify(prefix));\n a2.uri = prefix;\n }\n parser.tag.attributes[name] = a2;\n emitNode(parser, \"onattribute\", a2);\n }\n parser.attribList.length = 0;\n }\n parser.tag.isSelfClosing = !!selfClosing;\n parser.sawRoot = true;\n parser.tags.push(parser.tag);\n emitNode(parser, \"onopentag\", parser.tag);\n if (!selfClosing) {\n if (!parser.noscript && parser.tagName.toLowerCase() === \"script\") {\n parser.state = S.SCRIPT;\n } else {\n parser.state = S.TEXT;\n }\n parser.tag = null;\n parser.tagName = \"\";\n }\n parser.attribName = parser.attribValue = \"\";\n parser.attribList.length = 0;\n }\n function closeTag(parser) {\n if (!parser.tagName) {\n strictFail(parser, \"Weird empty close tag.\");\n parser.textNode += \"</>\";\n parser.state = S.TEXT;\n return;\n }\n if (parser.script) {\n if (parser.tagName !== \"script\") {\n parser.script += \"</\" + parser.tagName + \">\";\n parser.tagName = \"\";\n parser.state = S.SCRIPT;\n return;\n }\n emitNode(parser, \"onscript\", parser.script);\n parser.script = \"\";\n }\n var t2 = parser.tags.length;\n var tagName = parser.tagName;\n if (!parser.strict) {\n tagName = tagName[parser.looseCase]();\n }\n var closeTo = tagName;\n while (t2--) {\n var close = parser.tags[t2];\n if (close.name !== closeTo) {\n strictFail(parser, \"Unexpected close tag\");\n } else {\n break;\n }\n }\n if (t2 < 0) {\n strictFail(parser, \"Unmatched closing tag: \" + parser.tagName);\n parser.textNode += \"</\" + parser.tagName + \">\";\n parser.state = S.TEXT;\n return;\n }\n parser.tagName = tagName;\n var s3 = parser.tags.length;\n while (s3-- > t2) {\n var tag = parser.tag = parser.tags.pop();\n parser.tagName = parser.tag.name;\n emitNode(parser, \"onclosetag\", parser.tagName);\n var x = {};\n for (var i2 in tag.ns) {\n x[i2] = tag.ns[i2];\n }\n var parent = parser.tags[parser.tags.length - 1] || parser;\n if (parser.opt.xmlns && tag.ns !== parent.ns) {\n Object.keys(tag.ns).forEach(function(p2) {\n var n2 = tag.ns[p2];\n emitNode(parser, \"onclosenamespace\", { prefix: p2, uri: n2 });\n });\n }\n }\n if (t2 === 0) parser.closedRoot = true;\n parser.tagName = parser.attribValue = parser.attribName = \"\";\n parser.attribList.length = 0;\n parser.state = S.TEXT;\n }\n function parseEntity(parser) {\n var entity = parser.entity;\n var entityLC = entity.toLowerCase();\n var num;\n var numStr = \"\";\n if (parser.ENTITIES[entity]) {\n return parser.ENTITIES[entity];\n }\n if (parser.ENTITIES[entityLC]) {\n return parser.ENTITIES[entityLC];\n }\n entity = entityLC;\n if (entity.charAt(0) === \"#\") {\n if (entity.charAt(1) === \"x\") {\n entity = entity.slice(2);\n num = parseInt(entity, 16);\n numStr = num.toString(16);\n } else {\n entity = entity.slice(1);\n num = parseInt(entity, 10);\n numStr = num.toString(10);\n }\n }\n entity = entity.replace(/^0+/, \"\");\n if (isNaN(num) || numStr.toLowerCase() !== entity) {\n strictFail(parser, \"Invalid character entity\");\n return \"&\" + parser.entity + \";\";\n }\n return String.fromCodePoint(num);\n }\n function beginWhiteSpace(parser, c2) {\n if (c2 === \"<\") {\n parser.state = S.OPEN_WAKA;\n parser.startTagPosition = parser.position;\n } else if (!isWhitespace(c2)) {\n strictFail(parser, \"Non-whitespace before first tag.\");\n parser.textNode = c2;\n parser.state = S.TEXT;\n }\n }\n function charAt(chunk, i2) {\n var result = \"\";\n if (i2 < chunk.length) {\n result = chunk.charAt(i2);\n }\n return result;\n }\n function write(chunk) {\n var parser = this;\n if (this.error) {\n throw this.error;\n }\n if (parser.closed) {\n return error(\n parser,\n \"Cannot write after close. Assign an onready handler.\"\n );\n }\n if (chunk === null) {\n return end(parser);\n }\n if (typeof chunk === \"object\") {\n chunk = chunk.toString();\n }\n var i2 = 0;\n var c2 = \"\";\n while (true) {\n c2 = charAt(chunk, i2++);\n parser.c = c2;\n if (!c2) {\n break;\n }\n if (parser.trackPosition) {\n parser.position++;\n if (c2 === \"\\n\") {\n parser.line++;\n parser.column = 0;\n } else {\n parser.column++;\n }\n }\n switch (parser.state) {\n case S.BEGIN:\n parser.state = S.BEGIN_WHITESPACE;\n if (c2 === \"\\uFEFF\") {\n continue;\n }\n beginWhiteSpace(parser, c2);\n continue;\n case S.BEGIN_WHITESPACE:\n beginWhiteSpace(parser, c2);\n continue;\n case S.TEXT:\n if (parser.sawRoot && !parser.closedRoot) {\n var starti = i2 - 1;\n while (c2 && c2 !== \"<\" && c2 !== \"&\") {\n c2 = charAt(chunk, i2++);\n if (c2 && parser.trackPosition) {\n parser.position++;\n if (c2 === \"\\n\") {\n parser.line++;\n parser.column = 0;\n } else {\n parser.column++;\n }\n }\n }\n parser.textNode += chunk.substring(starti, i2 - 1);\n }\n if (c2 === \"<\" && !(parser.sawRoot && parser.closedRoot && !parser.strict)) {\n parser.state = S.OPEN_WAKA;\n parser.startTagPosition = parser.position;\n } else {\n if (!isWhitespace(c2) && (!parser.sawRoot || parser.closedRoot)) {\n strictFail(parser, \"Text data outside of root node.\");\n }\n if (c2 === \"&\") {\n parser.state = S.TEXT_ENTITY;\n } else {\n parser.textNode += c2;\n }\n }\n continue;\n case S.SCRIPT:\n if (c2 === \"<\") {\n parser.state = S.SCRIPT_ENDING;\n } else {\n parser.script += c2;\n }\n continue;\n case S.SCRIPT_ENDING:\n if (c2 === \"/\") {\n parser.state = S.CLOSE_TAG;\n } else {\n parser.script += \"<\" + c2;\n parser.state = S.SCRIPT;\n }\n continue;\n case S.OPEN_WAKA:\n if (c2 === \"!\") {\n parser.state = S.SGML_DECL;\n parser.sgmlDecl = \"\";\n } else if (isWhitespace(c2)) ;\n else if (isMatch(nameStart, c2)) {\n parser.state = S.OPEN_TAG;\n parser.tagName = c2;\n } else if (c2 === \"/\") {\n parser.state = S.CLOSE_TAG;\n parser.tagName = \"\";\n } else if (c2 === \"?\") {\n parser.state = S.PROC_INST;\n parser.procInstName = parser.procInstBody = \"\";\n } else {\n strictFail(parser, \"Unencoded <\");\n if (parser.startTagPosition + 1 < parser.position) {\n var pad = parser.position - parser.startTagPosition;\n c2 = new Array(pad).join(\" \") + c2;\n }\n parser.textNode += \"<\" + c2;\n parser.state = S.TEXT;\n }\n continue;\n case S.SGML_DECL:\n if (parser.sgmlDecl + c2 === \"--\") {\n parser.state = S.COMMENT;\n parser.comment = \"\";\n parser.sgmlDecl = \"\";\n continue;\n }\n if (parser.doctype && parser.doctype !== true && parser.sgmlDecl) {\n parser.state = S.DOCTYPE_DTD;\n parser.doctype += \"<!\" + parser.sgmlDecl + c2;\n parser.sgmlDecl = \"\";\n } else if ((parser.sgmlDecl + c2).toUpperCase() === CDATA) {\n emitNode(parser, \"onopencdata\");\n parser.state = S.CDATA;\n parser.sgmlDecl = \"\";\n parser.cdata = \"\";\n } else if ((parser.sgmlDecl + c2).toUpperCase() === DOCTYPE) {\n parser.state = S.DOCTYPE;\n if (parser.doctype || parser.sawRoot) {\n strictFail(\n parser,\n \"Inappropriately located doctype declaration\"\n );\n }\n parser.doctype = \"\";\n parser.sgmlDecl = \"\";\n } else if (c2 === \">\") {\n emitNode(parser, \"onsgmldeclaration\", parser.sgmlDecl);\n parser.sgmlDecl = \"\";\n parser.state = S.TEXT;\n } else if (isQuote(c2)) {\n parser.state = S.SGML_DECL_QUOTED;\n parser.sgmlDecl += c2;\n } else {\n parser.sgmlDecl += c2;\n }\n continue;\n case S.SGML_DECL_QUOTED:\n if (c2 === parser.q) {\n parser.state = S.SGML_DECL;\n parser.q = \"\";\n }\n parser.sgmlDecl += c2;\n continue;\n case S.DOCTYPE:\n if (c2 === \">\") {\n parser.state = S.TEXT;\n emitNode(parser, \"ondoctype\", parser.doctype);\n parser.doctype = true;\n } else {\n parser.doctype += c2;\n if (c2 === \"[\") {\n parser.state = S.DOCTYPE_DTD;\n } else if (isQuote(c2)) {\n parser.state = S.DOCTYPE_QUOTED;\n parser.q = c2;\n }\n }\n continue;\n case S.DOCTYPE_QUOTED:\n parser.doctype += c2;\n if (c2 === parser.q) {\n parser.q = \"\";\n parser.state = S.DOCTYPE;\n }\n continue;\n case S.DOCTYPE_DTD:\n if (c2 === \"]\") {\n parser.doctype += c2;\n parser.state = S.DOCTYPE;\n } else if (c2 === \"<\") {\n parser.state = S.OPEN_WAKA;\n parser.startTagPosition = parser.position;\n } else if (isQuote(c2)) {\n parser.doctype += c2;\n parser.state = S.DOCTYPE_DTD_QUOTED;\n parser.q = c2;\n } else {\n parser.doctype += c2;\n }\n continue;\n case S.DOCTYPE_DTD_QUOTED:\n parser.doctype += c2;\n if (c2 === parser.q) {\n parser.state = S.DOCTYPE_DTD;\n parser.q = \"\";\n }\n continue;\n case S.COMMENT:\n if (c2 === \"-\") {\n parser.state = S.COMMENT_ENDING;\n } else {\n parser.comment += c2;\n }\n continue;\n case S.COMMENT_ENDING:\n if (c2 === \"-\") {\n parser.state = S.COMMENT_ENDED;\n parser.comment = textopts(parser.opt, parser.comment);\n if (parser.comment) {\n emitNode(parser, \"oncomment\", parser.comment);\n }\n parser.comment = \"\";\n } else {\n parser.comment += \"-\" + c2;\n parser.state = S.COMMENT;\n }\n continue;\n case S.COMMENT_ENDED:\n if (c2 !== \">\") {\n strictFail(parser, \"Malformed comment\");\n parser.comment += \"--\" + c2;\n parser.state = S.COMMENT;\n } else if (parser.doctype && parser.doctype !== true) {\n parser.state = S.DOCTYPE_DTD;\n } else {\n parser.state = S.TEXT;\n }\n continue;\n case S.CDATA:\n if (c2 === \"]\") {\n parser.state = S.CDATA_ENDING;\n } else {\n parser.cdata += c2;\n }\n continue;\n case S.CDATA_ENDING:\n if (c2 === \"]\") {\n parser.state = S.CDATA_ENDING_2;\n } else {\n parser.cdata += \"]\" + c2;\n parser.state = S.CDATA;\n }\n continue;\n case S.CDATA_ENDING_2:\n if (c2 === \">\") {\n if (parser.cdata) {\n emitNode(parser, \"oncdata\", parser.cdata);\n }\n emitNode(parser, \"onclosecdata\");\n parser.cdata = \"\";\n parser.state = S.TEXT;\n } else if (c2 === \"]\") {\n parser.cdata += \"]\";\n } else {\n parser.cdata += \"]]\" + c2;\n parser.state = S.CDATA;\n }\n continue;\n case S.PROC_INST:\n if (c2 === \"?\") {\n parser.state = S.PROC_INST_ENDING;\n } else if (isWhitespace(c2)) {\n parser.state = S.PROC_INST_BODY;\n } else {\n parser.procInstName += c2;\n }\n continue;\n case S.PROC_INST_BODY:\n if (!parser.procInstBody && isWhitespace(c2)) {\n continue;\n } else if (c2 === \"?\") {\n parser.state = S.PROC_INST_ENDING;\n } else {\n parser.procInstBody += c2;\n }\n continue;\n case S.PROC_INST_ENDING:\n if (c2 === \">\") {\n emitNode(parser, \"onprocessinginstruction\", {\n name: parser.procInstName,\n body: parser.procInstBody\n });\n parser.procInstName = parser.procInstBody = \"\";\n parser.state = S.TEXT;\n } else {\n parser.procInstBody += \"?\" + c2;\n parser.state = S.PROC_INST_BODY;\n }\n continue;\n case S.OPEN_TAG:\n if (isMatch(nameBody, c2)) {\n parser.tagName += c2;\n } else {\n newTag(parser);\n if (c2 === \">\") {\n openTag(parser);\n } else if (c2 === \"/\") {\n parser.state = S.OPEN_TAG_SLASH;\n } else {\n if (!isWhitespace(c2)) {\n strictFail(parser, \"Invalid character in tag name\");\n }\n parser.state = S.ATTRIB;\n }\n }\n continue;\n case S.OPEN_TAG_SLASH:\n if (c2 === \">\") {\n openTag(parser, true);\n closeTag(parser);\n } else {\n strictFail(parser, \"Forward-slash in opening tag not followed by >\");\n parser.state = S.ATTRIB;\n }\n continue;\n case S.ATTRIB:\n if (isWhitespace(c2)) {\n continue;\n } else if (c2 === \">\") {\n openTag(parser);\n } else if (c2 === \"/\") {\n parser.state = S.OPEN_TAG_SLASH;\n } else if (isMatch(nameStart, c2)) {\n parser.attribName = c2;\n parser.attribValue = \"\";\n parser.state = S.ATTRIB_NAME;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n }\n continue;\n case S.ATTRIB_NAME:\n if (c2 === \"=\") {\n parser.state = S.ATTRIB_VALUE;\n } else if (c2 === \">\") {\n strictFail(parser, \"Attribute without value\");\n parser.attribValue = parser.attribName;\n attrib(parser);\n openTag(parser);\n } else if (isWhitespace(c2)) {\n parser.state = S.ATTRIB_NAME_SAW_WHITE;\n } else if (isMatch(nameBody, c2)) {\n parser.attribName += c2;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n }\n continue;\n case S.ATTRIB_NAME_SAW_WHITE:\n if (c2 === \"=\") {\n parser.state = S.ATTRIB_VALUE;\n } else if (isWhitespace(c2)) {\n continue;\n } else {\n strictFail(parser, \"Attribute without value\");\n parser.tag.attributes[parser.attribName] = \"\";\n parser.attribValue = \"\";\n emitNode(parser, \"onattribute\", {\n name: parser.attribName,\n value: \"\"\n });\n parser.attribName = \"\";\n if (c2 === \">\") {\n openTag(parser);\n } else if (isMatch(nameStart, c2)) {\n parser.attribName = c2;\n parser.state = S.ATTRIB_NAME;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n parser.state = S.ATTRIB;\n }\n }\n continue;\n case S.ATTRIB_VALUE:\n if (isWhitespace(c2)) {\n continue;\n } else if (isQuote(c2)) {\n parser.q = c2;\n parser.state = S.ATTRIB_VALUE_QUOTED;\n } else {\n if (!parser.opt.unquotedAttributeValues) {\n error(parser, \"Unquoted attribute value\");\n }\n parser.state = S.ATTRIB_VALUE_UNQUOTED;\n parser.attribValue = c2;\n }\n continue;\n case S.ATTRIB_VALUE_QUOTED:\n if (c2 !== parser.q) {\n if (c2 === \"&\") {\n parser.state = S.ATTRIB_VALUE_ENTITY_Q;\n } else {\n parser.attribValue += c2;\n }\n continue;\n }\n attrib(parser);\n parser.q = \"\";\n parser.state = S.ATTRIB_VALUE_CLOSED;\n continue;\n case S.ATTRIB_VALUE_CLOSED:\n if (isWhitespace(c2)) {\n parser.state = S.ATTRIB;\n } else if (c2 === \">\") {\n openTag(parser);\n } else if (c2 === \"/\") {\n parser.state = S.OPEN_TAG_SLASH;\n } else if (isMatch(nameStart, c2)) {\n strictFail(parser, \"No whitespace between attributes\");\n parser.attribName = c2;\n parser.attribValue = \"\";\n parser.state = S.ATTRIB_NAME;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n }\n continue;\n case S.ATTRIB_VALUE_UNQUOTED:\n if (!isAttribEnd(c2)) {\n if (c2 === \"&\") {\n parser.state = S.ATTRIB_VALUE_ENTITY_U;\n } else {\n parser.attribValue += c2;\n }\n continue;\n }\n attrib(parser);\n if (c2 === \">\") {\n openTag(parser);\n } else {\n parser.state = S.ATTRIB;\n }\n continue;\n case S.CLOSE_TAG:\n if (!parser.tagName) {\n if (isWhitespace(c2)) {\n continue;\n } else if (notMatch(nameStart, c2)) {\n if (parser.script) {\n parser.script += \"</\" + c2;\n parser.state = S.SCRIPT;\n } else {\n strictFail(parser, \"Invalid tagname in closing tag.\");\n }\n } else {\n parser.tagName = c2;\n }\n } else if (c2 === \">\") {\n closeTag(parser);\n } else if (isMatch(nameBody, c2)) {\n parser.tagName += c2;\n } else if (parser.script) {\n parser.script += \"</\" + parser.tagName;\n parser.tagName = \"\";\n parser.state = S.SCRIPT;\n } else {\n if (!isWhitespace(c2)) {\n strictFail(parser, \"Invalid tagname in closing tag\");\n }\n parser.state = S.CLOSE_TAG_SAW_WHITE;\n }\n continue;\n case S.CLOSE_TAG_SAW_WHITE:\n if (isWhitespace(c2)) {\n continue;\n }\n if (c2 === \">\") {\n closeTag(parser);\n } else {\n strictFail(parser, \"Invalid characters in closing tag\");\n }\n continue;\n case S.TEXT_ENTITY:\n case S.ATTRIB_VALUE_ENTITY_Q:\n case S.ATTRIB_VALUE_ENTITY_U:\n var returnState;\n var buffer;\n switch (parser.state) {\n case S.TEXT_ENTITY:\n returnState = S.TEXT;\n buffer = \"textNode\";\n break;\n case S.ATTRIB_VALUE_ENTITY_Q:\n returnState = S.ATTRIB_VALUE_QUOTED;\n buffer = \"attribValue\";\n break;\n case S.ATTRIB_VALUE_ENTITY_U:\n returnState = S.ATTRIB_VALUE_UNQUOTED;\n buffer = \"attribValue\";\n break;\n }\n if (c2 === \";\") {\n var parsedEntity = parseEntity(parser);\n if (parser.opt.unparsedEntities && !Object.values(sax2.XML_ENTITIES).includes(parsedEntity)) {\n parser.entity = \"\";\n parser.state = returnState;\n parser.write(parsedEntity);\n } else {\n parser[buffer] += parsedEntity;\n parser.entity = \"\";\n parser.state = returnState;\n }\n } else if (isMatch(parser.entity.length ? entityBody : entityStart, c2)) {\n parser.entity += c2;\n } else {\n strictFail(parser, \"Invalid character in entity name\");\n parser[buffer] += \"&\" + parser.entity + c2;\n parser.entity = \"\";\n parser.state = returnState;\n }\n continue;\n default: {\n throw new Error(parser, \"Unknown state: \" + parser.state);\n }\n }\n }\n if (parser.position >= parser.bufferCheckPosition) {\n checkBufferLength(parser);\n }\n return parser;\n }\n /*! http://mths.be/fromcodepoint v0.1.0 by @mathias */\n if (!String.fromCodePoint) {\n (function() {\n var stringFromCharCode = String.fromCharCode;\n var floor = Math.floor;\n var fromCodePoint = function() {\n var MAX_SIZE = 16384;\n var codeUnits = [];\n var highSurrogate;\n var lowSurrogate;\n var index = -1;\n var length = arguments.length;\n if (!length) {\n return \"\";\n }\n var result = \"\";\n while (++index < length) {\n var codePoint = Number(arguments[index]);\n if (!isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 1114111 || // not a valid Unicode code point\n floor(codePoint) !== codePoint) {\n throw RangeError(\"Invalid code point: \" + codePoint);\n }\n if (codePoint <= 65535) {\n codeUnits.push(codePoint);\n } else {\n codePoint -= 65536;\n highSurrogate = (codePoint >> 10) + 55296;\n lowSurrogate = codePoint % 1024 + 56320;\n codeUnits.push(highSurrogate, lowSurrogate);\n }\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += stringFromCharCode.apply(null, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n if (Object.defineProperty) {\n Object.defineProperty(String, \"fromCodePoint\", {\n value: fromCodePoint,\n configurable: true,\n writable: true\n });\n } else {\n String.fromCodePoint = fromCodePoint;\n }\n })();\n }\n })(exports);\n })(sax$1);\n return sax$1;\n}\nvar saxExports = requireSax();\nconst sax = /* @__PURE__ */ getDefaultExportFromCjs(saxExports);\nconst namespaceMapping = {\n \"http://www.w3.org/2000/svg\": {\n ext: \"svg\",\n mime: \"image/svg+xml\"\n },\n \"http://www.w3.org/1999/xhtml\": {\n ext: \"xhtml\",\n mime: \"application/xhtml+xml\"\n },\n \"http://www.opengis.net/kml/2.2\": {\n ext: \"kml\",\n mime: \"application/vnd.google-earth.kml+xml\"\n },\n \"http://www.opengis.net/gml\": {\n ext: \"gml\",\n mime: \"application/gml+xml\"\n }\n};\nconst rootNameMapping = {\n rss: {\n ext: \"rss\",\n mime: \"application/rss+xml\"\n },\n \"score-partwise\": {\n ext: \"musicxml\",\n mime: \"application/vnd.recordare.musicxml+xml\"\n },\n svg: {\n ext: \"svg\",\n mime: \"image/svg+xml\"\n }\n};\nclass XmlTextDetector {\n constructor(options) {\n this.options = options ?? {};\n this.firstTag = true;\n this.onEnd = false;\n this.parser = sax.parser(true, { xmlns: true });\n this.nesting = 0;\n this.parser.onerror = (e2) => {\n if (e2.message.startsWith(\"Invalid character entity\")) {\n return;\n }\n this.fileType = void 0;\n this.onEnd = true;\n };\n this.parser.onopentag = (node) => {\n ++this.nesting;\n if (!this.firstTag || this.onEnd) {\n return;\n }\n this.firstTag = false;\n if (node.uri) {\n this.fileType = namespaceMapping[node.uri];\n } else if (node.name) {\n this.fileType = rootNameMapping[node.name.toLowerCase()];\n }\n if (this.fileType && !this.options.fullScan) {\n this.onEnd = true;\n }\n };\n this.parser.onclosetag = () => {\n --this.nesting;\n };\n }\n write(text) {\n this.parser.write(text);\n }\n close() {\n this.parser.close();\n this.onEnd = true;\n }\n isValid() {\n return this.nesting === 0;\n }\n}\nfunction isSvg(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n }\n string = string.trim();\n if (string.length === 0) {\n return false;\n }\n const xmlTextDetector = new XmlTextDetector();\n xmlTextDetector.write(string);\n return xmlTextDetector.isValid() && xmlTextDetector.fileType?.ext === \"svg\";\n}\nclass View {\n _view;\n constructor(view) {\n isValidView(view);\n this._view = view;\n }\n get id() {\n return this._view.id;\n }\n get name() {\n return this._view.name;\n }\n get caption() {\n return this._view.caption;\n }\n get emptyTitle() {\n return this._view.emptyTitle;\n }\n get emptyCaption() {\n return this._view.emptyCaption;\n }\n get getContents() {\n return this._view.getContents;\n }\n get hidden() {\n return this._view.hidden;\n }\n get icon() {\n return this._view.icon;\n }\n set icon(icon) {\n this._view.icon = icon;\n }\n get order() {\n return this._view.order;\n }\n set order(order) {\n this._view.order = order;\n }\n get params() {\n return this._view.params;\n }\n set params(params) {\n this._view.params = params;\n }\n get columns() {\n return this._view.columns;\n }\n get emptyView() {\n return this._view.emptyView;\n }\n get parent() {\n return this._view.parent;\n }\n get sticky() {\n return this._view.sticky;\n }\n get expanded() {\n return this._view.expanded;\n }\n set expanded(expanded) {\n this._view.expanded = expanded;\n }\n get defaultSortKey() {\n return this._view.defaultSortKey;\n }\n get loadChildViews() {\n return this._view.loadChildViews;\n }\n}\nconst isValidView = function(view) {\n if (!view.id || typeof view.id !== \"string\") {\n throw new Error(\"View id is required and must be a string\");\n }\n if (!view.name || typeof view.name !== \"string\") {\n throw new Error(\"View name is required and must be a string\");\n }\n if (\"caption\" in view && typeof view.caption !== \"string\") {\n throw new Error(\"View caption must be a string\");\n }\n if (!view.getContents || typeof view.getContents !== \"function\") {\n throw new Error(\"View getContents is required and must be a function\");\n }\n if (\"hidden\" in view && typeof view.hidden !== \"boolean\") {\n throw new Error(\"View hidden must be a boolean\");\n }\n if (!view.icon || typeof view.icon !== \"string\" || !isSvg(view.icon)) {\n throw new Error(\"View icon is required and must be a valid svg string\");\n }\n if (\"order\" in view && typeof view.order !== \"number\") {\n throw new Error(\"View order must be a number\");\n }\n if (view.columns) {\n view.columns.forEach((column) => {\n if (!(column instanceof Column)) {\n throw new Error(\"View columns must be an array of Column. Invalid column found\");\n }\n });\n }\n if (view.emptyView && typeof view.emptyView !== \"function\") {\n throw new Error(\"View emptyView must be a function\");\n }\n if (view.parent && typeof view.parent !== \"string\") {\n throw new Error(\"View parent must be a string\");\n }\n if (\"sticky\" in view && typeof view.sticky !== \"boolean\") {\n throw new Error(\"View sticky must be a boolean\");\n }\n if (\"expanded\" in view && typeof view.expanded !== \"boolean\") {\n throw new Error(\"View expanded must be a boolean\");\n }\n if (view.defaultSortKey && typeof view.defaultSortKey !== \"string\") {\n throw new Error(\"View defaultSortKey must be a string\");\n }\n if (view.loadChildViews && typeof view.loadChildViews !== \"function\") {\n throw new Error(\"View loadChildViews must be a function\");\n }\n return true;\n};\nvar NewMenuEntryCategory = /* @__PURE__ */ ((NewMenuEntryCategory2) => {\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"UploadFromDevice\"] = 0] = \"UploadFromDevice\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"CreateNew\"] = 1] = \"CreateNew\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"Other\"] = 2] = \"Other\";\n return NewMenuEntryCategory2;\n})(NewMenuEntryCategory || {});\nclass NewMenu {\n _entries = [];\n registerEntry(entry) {\n this.validateEntry(entry);\n entry.category = entry.category ?? 1;\n this._entries.push(entry);\n }\n unregisterEntry(entry) {\n const entryIndex = typeof entry === \"string\" ? this.getEntryIndex(entry) : this.getEntryIndex(entry.id);\n if (entryIndex === -1) {\n logger.warn(\"Entry not found, nothing removed\", { entry, entries: this.getEntries() });\n return;\n }\n this._entries.splice(entryIndex, 1);\n }\n /**\n * Get the list of registered entries\n *\n * @param {Folder} context the creation context. Usually the current folder\n */\n getEntries(context) {\n if (context) {\n return this._entries.filter((entry) => typeof entry.enabled === \"function\" ? entry.enabled(context) : true);\n }\n return this._entries;\n }\n getEntryIndex(id) {\n return this._entries.findIndex((entry) => entry.id === id);\n }\n validateEntry(entry) {\n if (!entry.id || !entry.displayName || !(entry.iconSvgInline || entry.iconClass) || !entry.handler) {\n throw new Error(\"Invalid entry\");\n }\n if (typeof entry.id !== \"string\" || typeof entry.displayName !== \"string\") {\n throw new Error(\"Invalid id or displayName property\");\n }\n if (entry.iconClass && typeof entry.iconClass !== \"string\" || entry.iconSvgInline && typeof entry.iconSvgInline !== \"string\") {\n throw new Error(\"Invalid icon provided\");\n }\n if (entry.enabled !== void 0 && typeof entry.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (typeof entry.handler !== \"function\") {\n throw new Error(\"Invalid handler property\");\n }\n if (\"order\" in entry && typeof entry.order !== \"number\") {\n throw new Error(\"Invalid order property\");\n }\n if (this.getEntryIndex(entry.id) !== -1) {\n throw new Error(\"Duplicate entry\");\n }\n }\n}\nfunction getNewFileMenu() {\n if (typeof window._nc_newfilemenu === \"undefined\") {\n window._nc_newfilemenu = new NewMenu();\n logger.debug(\"NewFileMenu initialized\");\n }\n return window._nc_newfilemenu;\n}\nfunction addNewFileMenuEntry(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.registerEntry(entry);\n}\nfunction removeNewFileMenuEntry(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.unregisterEntry(entry);\n}\nfunction getNewFileMenuEntries(context) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.getEntries(context).sort((a2, b2) => {\n if (a2.order !== void 0 && b2.order !== void 0 && a2.order !== b2.order) {\n return a2.order - b2.order;\n }\n return a2.displayName.localeCompare(b2.displayName, void 0, { numeric: true, sensitivity: \"base\" });\n });\n}\nvar InvalidFilenameErrorReason = /* @__PURE__ */ ((InvalidFilenameErrorReason2) => {\n InvalidFilenameErrorReason2[\"ReservedName\"] = \"reserved name\";\n InvalidFilenameErrorReason2[\"Character\"] = \"character\";\n InvalidFilenameErrorReason2[\"Extension\"] = \"extension\";\n return InvalidFilenameErrorReason2;\n})(InvalidFilenameErrorReason || {});\nclass InvalidFilenameError extends Error {\n constructor(options) {\n super(`Invalid ${options.reason} '${options.segment}' in filename '${options.filename}'`, { cause: options });\n }\n /**\n * The filename that was validated\n */\n get filename() {\n return this.cause.filename;\n }\n /**\n * Reason why the validation failed\n */\n get reason() {\n return this.cause.reason;\n }\n /**\n * Part of the filename that caused this error\n */\n get segment() {\n return this.cause.segment;\n }\n}\nfunction validateFilename(filename) {\n const capabilities = getCapabilities().files;\n const forbiddenCharacters = capabilities.forbidden_filename_characters ?? window._oc_config?.forbidden_filenames_characters ?? [\"/\", \"\\\\\"];\n for (const character of forbiddenCharacters) {\n if (filename.includes(character)) {\n throw new InvalidFilenameError({ segment: character, reason: \"character\", filename });\n }\n }\n filename = filename.toLocaleLowerCase();\n const forbiddenFilenames = capabilities.forbidden_filenames ?? [\".htaccess\"];\n if (forbiddenFilenames.includes(filename)) {\n throw new InvalidFilenameError({\n filename,\n segment: filename,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const endOfBasename = filename.indexOf(\".\", 1);\n const basename2 = filename.substring(0, endOfBasename === -1 ? void 0 : endOfBasename);\n const forbiddenFilenameBasenames = capabilities.forbidden_filename_basenames ?? [];\n if (forbiddenFilenameBasenames.includes(basename2)) {\n throw new InvalidFilenameError({\n filename,\n segment: basename2,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const forbiddenFilenameExtensions = capabilities.forbidden_filename_extensions ?? [\".part\", \".filepart\"];\n for (const extension of forbiddenFilenameExtensions) {\n if (filename.length > extension.length && filename.endsWith(extension)) {\n throw new InvalidFilenameError({ segment: extension, reason: \"extension\", filename });\n }\n }\n}\nfunction isFilenameValid(filename) {\n try {\n validateFilename(filename);\n return true;\n } catch (error) {\n if (error instanceof InvalidFilenameError) {\n return false;\n }\n throw error;\n }\n}\nfunction getUniqueName(name, otherNames, options) {\n const opts = {\n suffix: (n2) => `(${n2})`,\n ignoreFileExtension: false,\n ...options\n };\n let newName = name;\n let i2 = 1;\n while (otherNames.includes(newName)) {\n const ext = opts.ignoreFileExtension ? \"\" : extname(name);\n const base = basename(name, ext);\n newName = `${base} ${opts.suffix(i2++)}${ext}`;\n }\n return newName;\n}\nconst humanList = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\nconst humanListBinary = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction formatFileSize(size, skipSmallSizes = false, binaryPrefixes = false, base1000 = false) {\n binaryPrefixes = binaryPrefixes && !base1000;\n if (typeof size === \"string\") {\n size = Number(size);\n }\n let order = size > 0 ? Math.floor(Math.log(size) / Math.log(base1000 ? 1e3 : 1024)) : 0;\n order = Math.min((binaryPrefixes ? humanListBinary.length : humanList.length) - 1, order);\n const readableFormat = binaryPrefixes ? humanListBinary[order] : humanList[order];\n let relativeSize = (size / Math.pow(base1000 ? 1e3 : 1024, order)).toFixed(1);\n if (skipSmallSizes === true && order === 0) {\n return (relativeSize !== \"0.0\" ? \"< 1 \" : \"0 \") + (binaryPrefixes ? humanListBinary[1] : humanList[1]);\n }\n if (order < 2) {\n relativeSize = parseFloat(relativeSize).toFixed(0);\n } else {\n relativeSize = parseFloat(relativeSize).toLocaleString(getCanonicalLocale());\n }\n return relativeSize + \" \" + readableFormat;\n}\nfunction parseFileSize(value, forceBinary = false) {\n try {\n value = `${value}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n } catch (e2) {\n return null;\n }\n const match = value.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n if (match === null || match[1] === \".\" || match[1] === \"\") {\n return null;\n }\n const bytesArray = {\n \"\": 0,\n k: 1,\n m: 2,\n g: 3,\n t: 4,\n p: 5,\n e: 6\n };\n const decimalString = `${match[1]}`;\n const base = match[4] === \"i\" || forceBinary ? 1024 : 1e3;\n return Math.round(Number.parseFloat(decimalString) * base ** bytesArray[match[3]]);\n}\nfunction stringify(value) {\n if (value instanceof Date) {\n return value.toISOString();\n }\n return String(value);\n}\nfunction orderBy(collection, identifiers2, orders) {\n identifiers2 = identifiers2 ?? [(value) => value];\n orders = orders ?? [];\n const sorting = identifiers2.map((_, index) => (orders[index] ?? \"asc\") === \"asc\" ? 1 : -1);\n const collator = Intl.Collator(\n [getLanguage(), getCanonicalLocale()],\n {\n // handle 10 as ten and not as one-zero\n numeric: true,\n usage: \"sort\"\n }\n );\n return [...collection].sort((a2, b2) => {\n for (const [index, identifier] of identifiers2.entries()) {\n const value = collator.compare(stringify(identifier(a2)), stringify(identifier(b2)));\n if (value !== 0) {\n return value * sorting[index];\n }\n }\n return 0;\n });\n}\nvar FilesSortingMode = /* @__PURE__ */ ((FilesSortingMode2) => {\n FilesSortingMode2[\"Name\"] = \"basename\";\n FilesSortingMode2[\"Modified\"] = \"mtime\";\n FilesSortingMode2[\"Size\"] = \"size\";\n return FilesSortingMode2;\n})(FilesSortingMode || {});\nfunction sortNodes(nodes, options = {}) {\n const sortingOptions = {\n // Default to sort by name\n sortingMode: \"basename\",\n // Default to sort ascending\n sortingOrder: \"asc\",\n ...options\n };\n const basename2 = (name) => name.lastIndexOf(\".\") > 0 ? name.slice(0, name.lastIndexOf(\".\")) : name;\n const identifiers2 = [\n // 1: Sort favorites first if enabled\n ...sortingOptions.sortFavoritesFirst ? [(v) => v.attributes?.favorite !== 1] : [],\n // 2: Sort folders first if sorting by name\n ...sortingOptions.sortFoldersFirst ? [(v) => v.type !== \"folder\"] : [],\n // 3: Use sorting mode if NOT basename (to be able to use display name too)\n ...sortingOptions.sortingMode !== \"basename\" ? [(v) => v[sortingOptions.sortingMode] ?? v.attributes[sortingOptions.sortingMode]] : [],\n // 4: Use display name if available, fallback to name\n (v) => basename2(v.displayname || v.attributes?.displayname || v.basename || \"\"),\n // 5: Finally, use basename if all previous sorting methods failed\n (v) => v.basename\n ];\n const orders = [\n // (for 1): always sort favorites before normal files\n ...sortingOptions.sortFavoritesFirst ? [\"asc\"] : [],\n // (for 2): always sort folders before files\n ...sortingOptions.sortFoldersFirst ? [\"asc\"] : [],\n // (for 3): Reverse if sorting by mtime as mtime higher means edited more recent -> lower\n ...sortingOptions.sortingMode === \"mtime\" ? [sortingOptions.sortingOrder === \"asc\" ? \"desc\" : \"asc\"] : [],\n // (also for 3 so make sure not to conflict with 2 and 3)\n ...sortingOptions.sortingMode !== \"mtime\" && sortingOptions.sortingMode !== \"basename\" ? [sortingOptions.sortingOrder] : [],\n // for 4: use configured sorting direction\n sortingOptions.sortingOrder,\n // for 5: use configured sorting direction\n sortingOptions.sortingOrder\n ];\n return orderBy(nodes, identifiers2, orders);\n}\nexport {\n Column,\n DefaultType,\n q as File,\n FileAction,\n FileListAction,\n FileListFilter,\n F as FileType,\n FilesSortingMode,\n s as Folder,\n Header,\n InvalidFilenameError,\n InvalidFilenameErrorReason,\n Navigation,\n NewMenuEntryCategory,\n N as Node,\n t as NodeStatus,\n P as Permission,\n View,\n addNewFileMenuEntry,\n c as davGetClient,\n l as davGetDefaultPropfind,\n m as davGetFavoritesReport,\n n as davGetRecentSearch,\n a as davGetRemoteURL,\n g as davGetRootPath,\n p as davParsePermissions,\n b as davRemoteURL,\n r as davResultToNode,\n d as davRootPath,\n h as defaultDavNamespaces,\n f as defaultDavProperties,\n formatFileSize,\n k as getDavNameSpaces,\n j as getDavProperties,\n e as getFavoriteNodes,\n getFileActions,\n getFileListActions,\n getFileListFilters,\n getFileListHeaders,\n getNavigation,\n getNewFileMenu,\n getNewFileMenuEntries,\n getUniqueName,\n isFilenameValid,\n orderBy,\n parseFileSize,\n i as registerDavProperty,\n registerFileAction,\n registerFileListAction,\n registerFileListFilter,\n registerFileListHeaders,\n removeNewFileMenuEntry,\n sortNodes,\n unregisterFileListFilter,\n validateFilename\n};\n//# sourceMappingURL=index.mjs.map\n","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\nvar hookCallback;\n\nfunction 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.\nfunction setHookCallback(callback) {\n hookCallback = callback;\n}\n\nfunction isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n}\n\nfunction 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\nfunction hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n}\n\nfunction 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\nfunction isUndefined(input) {\n return input === void 0;\n}\n\nfunction isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n}\n\nfunction isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n}\n\nfunction 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\nfunction 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\nfunction createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n}\n\nfunction 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\nfunction getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n}\n\nvar some;\nif (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\nfunction isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\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 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 return m._isValid;\n}\n\nfunction 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.\nvar momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\nfunction 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\nfunction 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\nfunction isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n}\n\nfunction 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\nfunction 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\nvar deprecations = {};\n\nfunction 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\nhooks.suppressDeprecationWarnings = false;\nhooks.deprecationHandler = null;\n\nfunction isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n}\n\nfunction 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\nfunction 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\nfunction Locale(config) {\n if (config != null) {\n this.set(config);\n }\n}\n\nvar keys;\n\nif (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\nvar 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\nfunction calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n}\n\nfunction 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\nvar 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 }\nfunction 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\nfunction removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n}\n\nfunction 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\nfunction 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\nfunction 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\nvar 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\nfunction 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\nvar defaultInvalidDate = 'Invalid date';\n\nfunction invalidDate() {\n return this._invalidDate;\n}\n\nvar defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\nfunction ordinal(number) {\n return this._ordinal.replace('%d', number);\n}\n\nvar 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\nfunction 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\nfunction 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\nvar aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n};\n\nfunction normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n}\n\nfunction 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\nvar priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n};\n\nfunction 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\nvar 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 match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\nregexes = {};\n\nfunction addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n}\n\nfunction 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\nfunction 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\nfunction regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nfunction 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\nfunction 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\nvar tokens = {};\n\nfunction 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\nfunction 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\nfunction addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n}\n\nfunction isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n\nvar 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// FORMATTING\n\naddFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n});\n\naddFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n});\n\naddFormatToken(0, ['YYYY', 4], 0, 'year');\naddFormatToken(0, ['YYYYY', 5], 0, 'year');\naddFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n// PARSING\n\naddRegexToken('Y', matchSigned);\naddRegexToken('YY', match1to2, match2);\naddRegexToken('YYYY', match1to4, match4);\naddRegexToken('YYYYY', match1to6, match6);\naddRegexToken('YYYYYY', match1to6, match6);\n\naddParseToken(['YYYYY', 'YYYYYY'], YEAR);\naddParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n});\naddParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n});\naddParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n});\n\n// HELPERS\n\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\n// HOOKS\n\nhooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n};\n\n// MOMENTS\n\nvar getSetYear = makeGetSet('FullYear', true);\n\nfunction getIsLeapYear() {\n return isLeapYear(this.year());\n}\n\nfunction 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\nfunction get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n}\n\nfunction set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n}\n\n// MOMENTS\n\nfunction stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n}\n\nfunction 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\nfunction mod(n, x) {\n return ((n % x) + x) % x;\n}\n\nvar indexOf;\n\nif (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\nfunction 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\naddFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n});\n\naddFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n});\n\naddFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n});\n\n// PARSING\n\naddRegexToken('M', match1to2, match1to2NoLeadingZero);\naddRegexToken('MM', match1to2, match2);\naddRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n});\naddRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n});\n\naddParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n});\n\naddParseToken(['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\nvar 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction setMonth(mom, value) {\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 var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n}\n\nfunction 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\nfunction getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n}\n\nfunction 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\nfunction 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\nfunction 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 shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\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\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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\naddFormatToken('w', ['ww', 2], 'wo', 'week');\naddFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n// PARSING\n\naddRegexToken('w', match1to2, match1to2NoLeadingZero);\naddRegexToken('ww', match1to2, match2);\naddRegexToken('W', match1to2, match1to2NoLeadingZero);\naddRegexToken('WW', match1to2, match2);\n\naddWeekParseToken(\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\nfunction localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n}\n\nvar 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\nfunction localeFirstDayOfWeek() {\n return this._week.dow;\n}\n\nfunction localeFirstDayOfYear() {\n return this._week.doy;\n}\n\n// MOMENTS\n\nfunction getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\nfunction 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\naddFormatToken('d', 0, 'do', 'day');\n\naddFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n});\n\naddFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n});\n\naddFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n});\n\naddFormatToken('e', 0, 0, 'weekday');\naddFormatToken('E', 0, 0, 'isoWeekday');\n\n// PARSING\n\naddRegexToken('d', match1to2);\naddRegexToken('e', match1to2);\naddRegexToken('E', match1to2);\naddRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n});\naddRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n});\naddRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n});\n\naddWeekParseToken(['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\naddWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n});\n\n// HELPERS\n\nfunction 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\nfunction 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\nfunction shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n}\n\nvar 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction hFormat() {\n return this.hours() % 12 || 12;\n}\n\nfunction kFormat() {\n return this.hours() || 24;\n}\n\naddFormatToken('H', ['HH', 2], 0, 'hour');\naddFormatToken('h', ['hh', 2], 0, hFormat);\naddFormatToken('k', ['kk', 2], 0, kFormat);\n\naddFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\naddFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\nfunction 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\nmeridiem('a', true);\nmeridiem('A', false);\n\n// PARSING\n\nfunction matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n}\n\naddRegexToken('a', matchMeridiem);\naddRegexToken('A', matchMeridiem);\naddRegexToken('H', match1to2, match1to2HasZero);\naddRegexToken('h', match1to2, match1to2NoLeadingZero);\naddRegexToken('k', match1to2, match1to2NoLeadingZero);\naddRegexToken('HH', match1to2, match2);\naddRegexToken('hh', match1to2, match2);\naddRegexToken('kk', match1to2, match2);\n\naddRegexToken('hmm', match3to4);\naddRegexToken('hmmss', match5to6);\naddRegexToken('Hmm', match3to4);\naddRegexToken('Hmmss', match5to6);\n\naddParseToken(['H', 'HH'], HOUR);\naddParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n});\naddParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n});\naddParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('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});\naddParseToken('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});\naddParseToken('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});\naddParseToken('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\nfunction 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\nvar 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\nfunction localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n}\n\nvar 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\nvar locales = {},\n localeFamilies = {},\n globalLocale;\n\nfunction 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\nfunction 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\nfunction 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\nfunction isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n}\n\nfunction 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.\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction listLocales() {\n return keys(locales);\n}\n\nfunction 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)\nvar 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nhooks.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.\nfunction 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\nfunction 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]\nfunction 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\nfunction 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\nhooks.ISO_8601 = function () {};\n\n// constant that refers to the RFC 2822 form\nhooks.RFC_2822 = function () {};\n\n// date from string and format string\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n}\n\nvar 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.\nfunction 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?\nfunction min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n}\n\nfunction max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n}\n\nvar now = function () {\n return Date.now ? Date.now() : +new Date();\n};\n\nvar ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n];\n\nfunction 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\nfunction isValid$1() {\n return this._isValid;\n}\n\nfunction createInvalid$1() {\n return createDuration(NaN);\n}\n\nfunction 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\nfunction isDuration(obj) {\n return obj instanceof Duration;\n}\n\nfunction 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\nfunction 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\nfunction 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\noffset('Z', ':');\noffset('ZZ', '');\n\n// PARSING\n\naddRegexToken('Z', matchShortOffset);\naddRegexToken('ZZ', matchShortOffset);\naddParseToken(['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']\nvar chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\nfunction 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.\nfunction 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\nfunction 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.\nhooks.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.\nfunction 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\nfunction 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\nfunction setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n}\n\nfunction 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\nfunction 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\nfunction 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\nfunction isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n}\n\nfunction 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\nfunction isLocal() {\n return this.isValid() ? !this._isUTC : false;\n}\n\nfunction isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n}\n\nfunction isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}\n\n// ASP.NET json date format regex\nvar 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\nfunction 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\ncreateDuration.fn = Duration.prototype;\ncreateDuration.invalid = createInvalid$1;\n\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nvar add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction clone() {\n return new Moment(this);\n}\n\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n}\n\nfunction isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n}\n\nfunction 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\nfunction 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\nhooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\nhooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\nfunction toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n}\n\nfunction 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 */\nfunction 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\nfunction 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\nfunction 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\nfunction fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n}\n\nfunction 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\nfunction 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.\nfunction 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\nvar 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\nfunction localeData() {\n return this._locale;\n}\n\nvar 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):\nfunction mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n}\n\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n}\n\nfunction unix() {\n return Math.floor(this.valueOf() / 1000);\n}\n\nfunction toDate() {\n return new Date(this.valueOf());\n}\n\nfunction 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\nfunction 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\nfunction toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n}\n\nfunction isValid$2() {\n return isValid(this);\n}\n\nfunction parsingFlags() {\n return extend({}, getParsingFlags(this));\n}\n\nfunction invalidAt() {\n return getParsingFlags(this).overflow;\n}\n\nfunction 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\naddFormatToken('N', 0, 0, 'eraAbbr');\naddFormatToken('NN', 0, 0, 'eraAbbr');\naddFormatToken('NNN', 0, 0, 'eraAbbr');\naddFormatToken('NNNN', 0, 0, 'eraName');\naddFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\naddFormatToken('y', ['y', 1], 'yo', 'eraYear');\naddFormatToken('y', ['yy', 2], 0, 'eraYear');\naddFormatToken('y', ['yyy', 3], 0, 'eraYear');\naddFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\naddRegexToken('N', matchEraAbbr);\naddRegexToken('NN', matchEraAbbr);\naddRegexToken('NNN', matchEraAbbr);\naddRegexToken('NNNN', matchEraName);\naddRegexToken('NNNNN', matchEraNarrow);\n\naddParseToken(\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\naddRegexToken('y', matchUnsigned);\naddRegexToken('yy', matchUnsigned);\naddRegexToken('yyy', matchUnsigned);\naddRegexToken('yyyy', matchUnsigned);\naddRegexToken('yo', matchEraYearOrdinal);\n\naddParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\naddParseToken(['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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n}\n\nfunction erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n}\n\nfunction erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n}\n\nfunction matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n}\n\nfunction matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n}\n\nfunction matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n}\n\nfunction matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n}\n\nfunction computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\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\naddFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n});\n\naddFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n});\n\nfunction addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n}\n\naddWeekYearFormatToken('gggg', 'weekYear');\naddWeekYearFormatToken('ggggg', 'weekYear');\naddWeekYearFormatToken('GGGG', 'isoWeekYear');\naddWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n// ALIASES\n\n// PARSING\n\naddRegexToken('G', matchSigned);\naddRegexToken('g', matchSigned);\naddRegexToken('GG', match1to2, match2);\naddRegexToken('gg', match1to2, match2);\naddRegexToken('GGGG', match1to4, match4);\naddRegexToken('gggg', match1to4, match4);\naddRegexToken('GGGGG', match1to6, match6);\naddRegexToken('ggggg', match1to6, match6);\n\naddWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n);\n\naddWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n});\n\n// MOMENTS\n\nfunction getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n}\n\nfunction getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n}\n\nfunction getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n}\n\nfunction getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n}\n\nfunction getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction 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\nfunction 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\naddFormatToken('Q', 0, 'Qo', 'quarter');\n\n// PARSING\n\naddRegexToken('Q', match1);\naddParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n});\n\n// MOMENTS\n\nfunction 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\naddFormatToken('D', ['DD', 2], 'Do', 'date');\n\n// PARSING\n\naddRegexToken('D', match1to2, match1to2NoLeadingZero);\naddRegexToken('DD', match1to2, match2);\naddRegexToken('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\naddParseToken(['D', 'DD'], DATE);\naddParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n});\n\n// MOMENTS\n\nvar getSetDayOfMonth = makeGetSet('Date', true);\n\n// FORMATTING\n\naddFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n// PARSING\n\naddRegexToken('DDD', match1to3);\naddRegexToken('DDDD', match3);\naddParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n});\n\n// HELPERS\n\n// MOMENTS\n\nfunction 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\naddFormatToken('m', ['mm', 2], 0, 'minute');\n\n// PARSING\n\naddRegexToken('m', match1to2, match1to2HasZero);\naddRegexToken('mm', match1to2, match2);\naddParseToken(['m', 'mm'], MINUTE);\n\n// MOMENTS\n\nvar getSetMinute = makeGetSet('Minutes', false);\n\n// FORMATTING\n\naddFormatToken('s', ['ss', 2], 0, 'second');\n\n// PARSING\n\naddRegexToken('s', match1to2, match1to2HasZero);\naddRegexToken('ss', match1to2, match2);\naddParseToken(['s', 'ss'], SECOND);\n\n// MOMENTS\n\nvar getSetSecond = makeGetSet('Seconds', false);\n\n// FORMATTING\n\naddFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n});\n\naddFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n});\n\naddFormatToken(0, ['SSS', 3], 0, 'millisecond');\naddFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n});\naddFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n});\naddFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n});\naddFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n});\naddFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n});\naddFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n});\n\n// PARSING\n\naddRegexToken('S', match1to3, match1);\naddRegexToken('SS', match1to3, match2);\naddRegexToken('SSS', match1to3, match3);\n\nvar token, getSetMillisecond;\nfor (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n}\n\nfunction parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n}\n\nfor (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n}\n\ngetSetMillisecond = makeGetSet('Milliseconds', false);\n\n// FORMATTING\n\naddFormatToken('z', 0, 0, 'zoneAbbr');\naddFormatToken('zz', 0, 0, 'zoneName');\n\n// MOMENTS\n\nfunction getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n}\n\nfunction getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n}\n\nvar proto = Moment.prototype;\n\nproto.add = add;\nproto.calendar = calendar$1;\nproto.clone = clone;\nproto.diff = diff;\nproto.endOf = endOf;\nproto.format = format;\nproto.from = from;\nproto.fromNow = fromNow;\nproto.to = to;\nproto.toNow = toNow;\nproto.get = stringGet;\nproto.invalidAt = invalidAt;\nproto.isAfter = isAfter;\nproto.isBefore = isBefore;\nproto.isBetween = isBetween;\nproto.isSame = isSame;\nproto.isSameOrAfter = isSameOrAfter;\nproto.isSameOrBefore = isSameOrBefore;\nproto.isValid = isValid$2;\nproto.lang = lang;\nproto.locale = locale;\nproto.localeData = localeData;\nproto.max = prototypeMax;\nproto.min = prototypeMin;\nproto.parsingFlags = parsingFlags;\nproto.set = stringSet;\nproto.startOf = startOf;\nproto.subtract = subtract;\nproto.toArray = toArray;\nproto.toObject = toObject;\nproto.toDate = toDate;\nproto.toISOString = toISOString;\nproto.inspect = inspect;\nif (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n}\nproto.toJSON = toJSON;\nproto.toString = toString;\nproto.unix = unix;\nproto.valueOf = valueOf;\nproto.creationData = creationData;\nproto.eraName = getEraName;\nproto.eraNarrow = getEraNarrow;\nproto.eraAbbr = getEraAbbr;\nproto.eraYear = getEraYear;\nproto.year = getSetYear;\nproto.isLeapYear = getIsLeapYear;\nproto.weekYear = getSetWeekYear;\nproto.isoWeekYear = getSetISOWeekYear;\nproto.quarter = proto.quarters = getSetQuarter;\nproto.month = getSetMonth;\nproto.daysInMonth = getDaysInMonth;\nproto.week = proto.weeks = getSetWeek;\nproto.isoWeek = proto.isoWeeks = getSetISOWeek;\nproto.weeksInYear = getWeeksInYear;\nproto.weeksInWeekYear = getWeeksInWeekYear;\nproto.isoWeeksInYear = getISOWeeksInYear;\nproto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\nproto.date = getSetDayOfMonth;\nproto.day = proto.days = getSetDayOfWeek;\nproto.weekday = getSetLocaleDayOfWeek;\nproto.isoWeekday = getSetISODayOfWeek;\nproto.dayOfYear = getSetDayOfYear;\nproto.hour = proto.hours = getSetHour;\nproto.minute = proto.minutes = getSetMinute;\nproto.second = proto.seconds = getSetSecond;\nproto.millisecond = proto.milliseconds = getSetMillisecond;\nproto.utcOffset = getSetOffset;\nproto.utc = setOffsetToUTC;\nproto.local = setOffsetToLocal;\nproto.parseZone = setOffsetToParsedOffset;\nproto.hasAlignedHourOffset = hasAlignedHourOffset;\nproto.isDST = isDaylightSavingTime;\nproto.isLocal = isLocal;\nproto.isUtcOffset = isUtcOffset;\nproto.isUtc = isUtc;\nproto.isUTC = isUtc;\nproto.zoneAbbr = getZoneAbbr;\nproto.zoneName = getZoneName;\nproto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n);\nproto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n);\nproto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n);\nproto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n);\nproto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n);\n\nfunction createUnix(input) {\n return createLocal(input * 1000);\n}\n\nfunction createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n}\n\nfunction preParsePostFormat(string) {\n return string;\n}\n\nvar proto$1 = Locale.prototype;\n\nproto$1.calendar = calendar;\nproto$1.longDateFormat = longDateFormat;\nproto$1.invalidDate = invalidDate;\nproto$1.ordinal = ordinal;\nproto$1.preparse = preParsePostFormat;\nproto$1.postformat = preParsePostFormat;\nproto$1.relativeTime = relativeTime;\nproto$1.pastFuture = pastFuture;\nproto$1.set = set;\nproto$1.eras = localeEras;\nproto$1.erasParse = localeErasParse;\nproto$1.erasConvertYear = localeErasConvertYear;\nproto$1.erasAbbrRegex = erasAbbrRegex;\nproto$1.erasNameRegex = erasNameRegex;\nproto$1.erasNarrowRegex = erasNarrowRegex;\n\nproto$1.months = localeMonths;\nproto$1.monthsShort = localeMonthsShort;\nproto$1.monthsParse = localeMonthsParse;\nproto$1.monthsRegex = monthsRegex;\nproto$1.monthsShortRegex = monthsShortRegex;\nproto$1.week = localeWeek;\nproto$1.firstDayOfYear = localeFirstDayOfYear;\nproto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\nproto$1.weekdays = localeWeekdays;\nproto$1.weekdaysMin = localeWeekdaysMin;\nproto$1.weekdaysShort = localeWeekdaysShort;\nproto$1.weekdaysParse = localeWeekdaysParse;\n\nproto$1.weekdaysRegex = weekdaysRegex;\nproto$1.weekdaysShortRegex = weekdaysShortRegex;\nproto$1.weekdaysMinRegex = weekdaysMinRegex;\n\nproto$1.isPM = localeIsPM;\nproto$1.meridiem = localeMeridiem;\n\nfunction get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n}\n\nfunction 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)\nfunction 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\nfunction listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n}\n\nfunction listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n}\n\nfunction listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n}\n\nfunction listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n}\n\nfunction listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n}\n\ngetSetGlobalLocale('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\nhooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n);\nhooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n);\n\nvar mathAbs = Math.abs;\n\nfunction 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\nfunction 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)\nfunction 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)\nfunction subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n}\n\nfunction absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n}\n\nfunction 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\nfunction 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\nfunction monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n}\n\nfunction 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\nfunction makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n}\n\nvar 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 valueOf$1 = asMilliseconds;\n\nfunction clone$1() {\n return createDuration(this);\n}\n\nfunction get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n}\n\nfunction makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n}\n\nvar 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\nfunction weeks() {\n return absFloor(this.days() / 7);\n}\n\nvar 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\nfunction substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n}\n\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nvar abs$1 = Math.abs;\n\nfunction sign(x) {\n return (x > 0) - (x < 0) || +x;\n}\n\nfunction 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\nvar proto$2 = Duration.prototype;\n\nproto$2.isValid = isValid$1;\nproto$2.abs = abs;\nproto$2.add = add$1;\nproto$2.subtract = subtract$1;\nproto$2.as = as;\nproto$2.asMilliseconds = asMilliseconds;\nproto$2.asSeconds = asSeconds;\nproto$2.asMinutes = asMinutes;\nproto$2.asHours = asHours;\nproto$2.asDays = asDays;\nproto$2.asWeeks = asWeeks;\nproto$2.asMonths = asMonths;\nproto$2.asQuarters = asQuarters;\nproto$2.asYears = asYears;\nproto$2.valueOf = valueOf$1;\nproto$2._bubble = bubble;\nproto$2.clone = clone$1;\nproto$2.get = get$2;\nproto$2.milliseconds = milliseconds;\nproto$2.seconds = seconds;\nproto$2.minutes = minutes;\nproto$2.hours = hours;\nproto$2.days = days;\nproto$2.weeks = weeks;\nproto$2.months = months;\nproto$2.years = years;\nproto$2.humanize = humanize;\nproto$2.toISOString = toISOString$1;\nproto$2.toString = toISOString$1;\nproto$2.toJSON = toISOString$1;\nproto$2.locale = locale;\nproto$2.localeData = localeData;\n\nproto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n);\nproto$2.lang = lang;\n\n// FORMATTING\n\naddFormatToken('X', 0, 0, 'unix');\naddFormatToken('x', 0, 0, 'valueOf');\n\n// PARSING\n\naddRegexToken('x', matchSigned);\naddRegexToken('X', matchTimestamp);\naddParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n});\naddParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n});\n\n//! moment.js\n\nhooks.version = '2.30.1';\n\nsetHookCallback(createLocal);\n\nhooks.fn = proto;\nhooks.min = min;\nhooks.max = max;\nhooks.now = now;\nhooks.utc = createUTC;\nhooks.unix = createUnix;\nhooks.months = listMonths;\nhooks.isDate = isDate;\nhooks.locale = getSetGlobalLocale;\nhooks.invalid = createInvalid;\nhooks.duration = createDuration;\nhooks.isMoment = isMoment;\nhooks.weekdays = listWeekdays;\nhooks.parseZone = createInZone;\nhooks.localeData = getLocale;\nhooks.isDuration = isDuration;\nhooks.monthsShort = listMonthsShort;\nhooks.weekdaysMin = listWeekdaysMin;\nhooks.defineLocale = defineLocale;\nhooks.updateLocale = updateLocale;\nhooks.locales = listLocales;\nhooks.weekdaysShort = listWeekdaysShort;\nhooks.normalizeUnits = normalizeUnits;\nhooks.relativeTimeRounding = getSetRelativeTimeRounding;\nhooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\nhooks.calendarFormat = getCalendarFormat;\nhooks.prototype = proto;\n\n// currently HTML5 input type only supports 24-hour formats\nhooks.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\nexport default hooks;\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","'use strict';\n\nmodule.exports = {\n ach: {\n name: 'Acholi',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n af: {\n name: 'Afrikaans',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ak: {\n name: 'Akan',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n am: {\n name: 'Amharic',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n an: {\n name: 'Aragonese',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ar: {\n name: 'Arabic',\n examples: [{\n plural: 0,\n sample: 0\n }, {\n plural: 1,\n sample: 1\n }, {\n plural: 2,\n sample: 2\n }, {\n plural: 3,\n sample: 3\n }, {\n plural: 4,\n sample: 11\n }, {\n plural: 5,\n sample: 100\n }],\n nplurals: 6,\n pluralsText: 'nplurals = 6; plural = (n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5)',\n pluralsFunc: function(n) {\n return (n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n }\n },\n arn: {\n name: 'Mapudungun',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n ast: {\n name: 'Asturian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ay: {\n name: 'Aymará',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n az: {\n name: 'Azerbaijani',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n be: {\n name: 'Belarusian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n }\n },\n bg: {\n name: 'Bulgarian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n bn: {\n name: 'Bengali',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n bo: {\n name: 'Tibetan',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n br: {\n name: 'Breton',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n brx: {\n name: 'Bodo',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n bs: {\n name: 'Bosnian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n }\n },\n ca: {\n name: 'Catalan',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n cgg: {\n name: 'Chiga',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n cs: {\n name: 'Czech',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2);\n }\n },\n csb: {\n name: 'Kashubian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n }\n },\n cy: {\n name: 'Welsh',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 3\n }, {\n plural: 3,\n sample: 8\n }],\n nplurals: 4,\n pluralsText: 'nplurals = 4; plural = (n === 1 ? 0 : n === 2 ? 1 : (n !== 8 && n !== 11) ? 2 : 3)',\n pluralsFunc: function(n) {\n return (n === 1 ? 0 : n === 2 ? 1 : (n !== 8 && n !== 11) ? 2 : 3);\n }\n },\n da: {\n name: 'Danish',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n de: {\n name: 'German',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n doi: {\n name: 'Dogri',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n dz: {\n name: 'Dzongkha',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n el: {\n name: 'Greek',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n en: {\n name: 'English',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n eo: {\n name: 'Esperanto',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n es: {\n name: 'Spanish',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n et: {\n name: 'Estonian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n eu: {\n name: 'Basque',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n fa: {\n name: 'Persian',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n ff: {\n name: 'Fulah',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n fi: {\n name: 'Finnish',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n fil: {\n name: 'Filipino',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n fo: {\n name: 'Faroese',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n fr: {\n name: 'French',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n fur: {\n name: 'Friulian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n fy: {\n name: 'Frisian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ga: {\n name: 'Irish',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 3\n }, {\n plural: 3,\n sample: 7\n }, {\n plural: 4,\n sample: 11\n }],\n nplurals: 5,\n pluralsText: 'nplurals = 5; plural = (n === 1 ? 0 : n === 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4)',\n pluralsFunc: function(n) {\n return (n === 1 ? 0 : n === 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n }\n },\n gd: {\n name: 'Scottish Gaelic',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 3\n }, {\n plural: 3,\n sample: 20\n }],\n nplurals: 4,\n pluralsText: 'nplurals = 4; plural = ((n === 1 || n === 11) ? 0 : (n === 2 || n === 12) ? 1 : (n > 2 && n < 20) ? 2 : 3)',\n pluralsFunc: function(n) {\n return ((n === 1 || n === 11) ? 0 : (n === 2 || n === 12) ? 1 : (n > 2 && n < 20) ? 2 : 3);\n }\n },\n gl: {\n name: 'Galician',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n gu: {\n name: 'Gujarati',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n gun: {\n name: 'Gun',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n ha: {\n name: 'Hausa',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n he: {\n name: 'Hebrew',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n hi: {\n name: 'Hindi',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n hne: {\n name: 'Chhattisgarhi',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n hr: {\n name: 'Croatian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n }\n },\n hu: {\n name: 'Hungarian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n hy: {\n name: 'Armenian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n id: {\n name: 'Indonesian',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n is: {\n name: 'Icelandic',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n % 10 !== 1 || n % 100 === 11)',\n pluralsFunc: function(n) {\n return (n % 10 !== 1 || n % 100 === 11);\n }\n },\n it: {\n name: 'Italian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ja: {\n name: 'Japanese',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n jbo: {\n name: 'Lojban',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n jv: {\n name: 'Javanese',\n examples: [{\n plural: 0,\n sample: 0\n }, {\n plural: 1,\n sample: 1\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 0)',\n pluralsFunc: function(n) {\n return (n !== 0);\n }\n },\n ka: {\n name: 'Georgian',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n kk: {\n name: 'Kazakh',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n km: {\n name: 'Khmer',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n kn: {\n name: 'Kannada',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ko: {\n name: 'Korean',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n ku: {\n name: 'Kurdish',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n kw: {\n name: 'Cornish',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 3\n }, {\n plural: 3,\n sample: 4\n }],\n nplurals: 4,\n pluralsText: 'nplurals = 4; plural = (n === 1 ? 0 : n === 2 ? 1 : n === 3 ? 2 : 3)',\n pluralsFunc: function(n) {\n return (n === 1 ? 0 : n === 2 ? 1 : n === 3 ? 2 : 3);\n }\n },\n ky: {\n name: 'Kyrgyz',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n lb: {\n name: 'Letzeburgesch',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ln: {\n name: 'Lingala',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n lo: {\n name: 'Lao',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n lt: {\n name: 'Lithuanian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 10\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n }\n },\n lv: {\n name: 'Latvian',\n examples: [{\n plural: 2,\n sample: 0\n }, {\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n !== 0 ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n % 10 === 1 && n % 100 !== 11 ? 0 : n !== 0 ? 1 : 2);\n }\n },\n mai: {\n name: 'Maithili',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n mfe: {\n name: 'Mauritian Creole',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n mg: {\n name: 'Malagasy',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n mi: {\n name: 'Maori',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n mk: {\n name: 'Macedonian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n === 1 || n % 10 === 1 ? 0 : 1)',\n pluralsFunc: function(n) {\n return (n === 1 || n % 10 === 1 ? 0 : 1);\n }\n },\n ml: {\n name: 'Malayalam',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n mn: {\n name: 'Mongolian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n mni: {\n name: 'Manipuri',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n mnk: {\n name: 'Mandinka',\n examples: [{\n plural: 0,\n sample: 0\n }, {\n plural: 1,\n sample: 1\n }, {\n plural: 2,\n sample: 2\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n === 0 ? 0 : n === 1 ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n === 0 ? 0 : n === 1 ? 1 : 2);\n }\n },\n mr: {\n name: 'Marathi',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ms: {\n name: 'Malay',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n mt: {\n name: 'Maltese',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 11\n }, {\n plural: 3,\n sample: 20\n }],\n nplurals: 4,\n pluralsText: 'nplurals = 4; plural = (n === 1 ? 0 : n === 0 || ( n % 100 > 1 && n % 100 < 11) ? 1 : (n % 100 > 10 && n % 100 < 20 ) ? 2 : 3)',\n pluralsFunc: function(n) {\n return (n === 1 ? 0 : n === 0 || (n % 100 > 1 && n % 100 < 11) ? 1 : (n % 100 > 10 && n % 100 < 20) ? 2 : 3);\n }\n },\n my: {\n name: 'Burmese',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n nah: {\n name: 'Nahuatl',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n nap: {\n name: 'Neapolitan',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n nb: {\n name: 'Norwegian Bokmal',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ne: {\n name: 'Nepali',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n nl: {\n name: 'Dutch',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n nn: {\n name: 'Norwegian Nynorsk',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n no: {\n name: 'Norwegian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n nso: {\n name: 'Northern Sotho',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n oc: {\n name: 'Occitan',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n or: {\n name: 'Oriya',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n pa: {\n name: 'Punjabi',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n pap: {\n name: 'Papiamento',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n pl: {\n name: 'Polish',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n }\n },\n pms: {\n name: 'Piemontese',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ps: {\n name: 'Pashto',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n pt: {\n name: 'Portuguese',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n rm: {\n name: 'Romansh',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ro: {\n name: 'Romanian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 20\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : (n === 0 || (n % 100 > 0 && n % 100 < 20)) ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n === 1 ? 0 : (n === 0 || (n % 100 > 0 && n % 100 < 20)) ? 1 : 2);\n }\n },\n ru: {\n name: 'Russian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n }\n },\n rw: {\n name: 'Kinyarwanda',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n sah: {\n name: 'Yakut',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n sat: {\n name: 'Santali',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n sco: {\n name: 'Scots',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n sd: {\n name: 'Sindhi',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n se: {\n name: 'Northern Sami',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n si: {\n name: 'Sinhala',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n sk: {\n name: 'Slovak',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2);\n }\n },\n sl: {\n name: 'Slovenian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 3\n }, {\n plural: 3,\n sample: 5\n }],\n nplurals: 4,\n pluralsText: 'nplurals = 4; plural = (n % 100 === 1 ? 0 : n % 100 === 2 ? 1 : n % 100 === 3 || n % 100 === 4 ? 2 : 3)',\n pluralsFunc: function(n) {\n return (n % 100 === 1 ? 0 : n % 100 === 2 ? 1 : n % 100 === 3 || n % 100 === 4 ? 2 : 3);\n }\n },\n so: {\n name: 'Somali',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n son: {\n name: 'Songhay',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n sq: {\n name: 'Albanian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n sr: {\n name: 'Serbian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n }\n },\n su: {\n name: 'Sundanese',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n sv: {\n name: 'Swedish',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n sw: {\n name: 'Swahili',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ta: {\n name: 'Tamil',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n te: {\n name: 'Telugu',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n tg: {\n name: 'Tajik',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n th: {\n name: 'Thai',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n ti: {\n name: 'Tigrinya',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n tk: {\n name: 'Turkmen',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n tr: {\n name: 'Turkish',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n tt: {\n name: 'Tatar',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n ug: {\n name: 'Uyghur',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n uk: {\n name: 'Ukrainian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n }\n },\n ur: {\n name: 'Urdu',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n uz: {\n name: 'Uzbek',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n vi: {\n name: 'Vietnamese',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n wa: {\n name: 'Walloon',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n wo: {\n name: 'Wolof',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n yo: {\n name: 'Yoruba',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n zh: {\n name: 'Chinese',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n }\n};\n","'use strict';\n\nvar get = require('lodash.get');\nvar plurals = require('./plurals');\n\nmodule.exports = Gettext;\n\n/**\n * Creates and returns a new Gettext instance.\n *\n * @constructor\n * @param {Object} [options] A set of options\n * @param {String} options.sourceLocale The locale that the source code and its\n * texts are written in. Translations for\n * this locale is not necessary.\n * @param {Boolean} options.debug Whether to output debug info into the\n * console.\n * @return {Object} A Gettext instance\n */\nfunction Gettext(options) {\n options = options || {};\n\n this.catalogs = {};\n this.locale = '';\n this.domain = 'messages';\n\n this.listeners = [];\n\n // Set source locale\n this.sourceLocale = '';\n if (options.sourceLocale) {\n if (typeof options.sourceLocale === 'string') {\n this.sourceLocale = options.sourceLocale;\n }\n else {\n this.warn('The `sourceLocale` option should be a string');\n }\n }\n\n // Set debug flag\n this.debug = 'debug' in options && options.debug === true;\n}\n\n/**\n * Adds an event listener.\n *\n * @param {String} eventName An event name\n * @param {Function} callback An event handler function\n */\nGettext.prototype.on = function(eventName, callback) {\n this.listeners.push({\n eventName: eventName,\n callback: callback\n });\n};\n\n/**\n * Removes an event listener.\n *\n * @param {String} eventName An event name\n * @param {Function} callback A previously registered event handler function\n */\nGettext.prototype.off = function(eventName, callback) {\n this.listeners = this.listeners.filter(function(listener) {\n return (\n listener.eventName === eventName &&\n listener.callback === callback\n ) === false;\n });\n};\n\n/**\n * Emits an event to all registered event listener.\n *\n * @private\n * @param {String} eventName An event name\n * @param {any} eventData Data to pass to event listeners\n */\nGettext.prototype.emit = function(eventName, eventData) {\n for (var i = 0; i < this.listeners.length; i++) {\n var listener = this.listeners[i];\n if (listener.eventName === eventName) {\n listener.callback(eventData);\n }\n }\n};\n\n/**\n * Logs a warning to the console if debug mode is enabled.\n *\n * @ignore\n * @param {String} message A warning message\n */\nGettext.prototype.warn = function(message) {\n if (this.debug) {\n console.warn(message);\n }\n\n this.emit('error', new Error(message));\n};\n\n/**\n * Stores a set of translations in the set of gettext\n * catalogs.\n *\n * @example\n * gt.addTranslations('sv-SE', 'messages', translationsObject)\n *\n * @param {String} locale A locale string\n * @param {String} domain A domain name\n * @param {Object} translations An object of gettext-parser JSON shape\n */\nGettext.prototype.addTranslations = function(locale, domain, translations) {\n if (!this.catalogs[locale]) {\n this.catalogs[locale] = {};\n }\n\n this.catalogs[locale][domain] = translations;\n};\n\n/**\n * Sets the locale to get translated messages for.\n *\n * @example\n * gt.setLocale('sv-SE')\n *\n * @param {String} locale A locale\n */\nGettext.prototype.setLocale = function(locale) {\n if (typeof locale !== 'string') {\n this.warn(\n 'You called setLocale() with an argument of type ' + (typeof locale) + '. ' +\n 'The locale must be a string.'\n );\n return;\n }\n\n if (locale.trim() === '') {\n this.warn('You called setLocale() with an empty value, which makes little sense.');\n }\n\n if (locale !== this.sourceLocale && !this.catalogs[locale]) {\n this.warn('You called setLocale() with \"' + locale + '\", but no translations for that locale has been added.');\n }\n\n this.locale = locale;\n};\n\n/**\n * Sets the default gettext domain.\n *\n * @example\n * gt.setTextDomain('domainname')\n *\n * @param {String} domain A gettext domain name\n */\nGettext.prototype.setTextDomain = function(domain) {\n if (typeof domain !== 'string') {\n this.warn(\n 'You called setTextDomain() with an argument of type ' + (typeof domain) + '. ' +\n 'The domain must be a string.'\n );\n return;\n }\n\n if (domain.trim() === '') {\n this.warn('You called setTextDomain() with an empty `domain` value.');\n }\n\n this.domain = domain;\n};\n\n/**\n * Translates a string using the default textdomain\n *\n * @example\n * gt.gettext('Some text')\n *\n * @param {String} msgid String to be translated\n * @return {String} Translation or the original string if no translation was found\n */\nGettext.prototype.gettext = function(msgid) {\n return this.dnpgettext(this.domain, '', msgid);\n};\n\n/**\n * Translates a string using a specific domain\n *\n * @example\n * gt.dgettext('domainname', 'Some text')\n *\n * @param {String} domain A gettext domain name\n * @param {String} msgid String to be translated\n * @return {String} Translation or the original string if no translation was found\n */\nGettext.prototype.dgettext = function(domain, msgid) {\n return this.dnpgettext(domain, '', msgid);\n};\n\n/**\n * Translates a plural string using the default textdomain\n *\n * @example\n * gt.ngettext('One thing', 'Many things', numberOfThings)\n *\n * @param {String} msgid String to be translated when count is not plural\n * @param {String} msgidPlural String to be translated when count is plural\n * @param {Number} count Number count for the plural\n * @return {String} Translation or the original string if no translation was found\n */\nGettext.prototype.ngettext = function(msgid, msgidPlural, count) {\n return this.dnpgettext(this.domain, '', msgid, msgidPlural, count);\n};\n\n/**\n * Translates a plural string using a specific textdomain\n *\n * @example\n * gt.dngettext('domainname', 'One thing', 'Many things', numberOfThings)\n *\n * @param {String} domain A gettext domain name\n * @param {String} msgid String to be translated when count is not plural\n * @param {String} msgidPlural String to be translated when count is plural\n * @param {Number} count Number count for the plural\n * @return {String} Translation or the original string if no translation was found\n */\nGettext.prototype.dngettext = function(domain, msgid, msgidPlural, count) {\n return this.dnpgettext(domain, '', msgid, msgidPlural, count);\n};\n\n/**\n * Translates a string from a specific context using the default textdomain\n *\n * @example\n * gt.pgettext('sports', 'Back')\n *\n * @param {String} msgctxt Translation context\n * @param {String} msgid String to be translated\n * @return {String} Translation or the original string if no translation was found\n */\nGettext.prototype.pgettext = function(msgctxt, msgid) {\n return this.dnpgettext(this.domain, msgctxt, msgid);\n};\n\n/**\n * Translates a string from a specific context using s specific textdomain\n *\n * @example\n * gt.dpgettext('domainname', 'sports', 'Back')\n *\n * @param {String} domain A gettext domain name\n * @param {String} msgctxt Translation context\n * @param {String} msgid String to be translated\n * @return {String} Translation or the original string if no translation was found\n */\nGettext.prototype.dpgettext = function(domain, msgctxt, msgid) {\n return this.dnpgettext(domain, msgctxt, msgid);\n};\n\n/**\n * Translates a plural string from a specific context using the default textdomain\n *\n * @example\n * gt.npgettext('sports', 'Back', '%d backs', numberOfBacks)\n *\n * @param {String} msgctxt Translation context\n * @param {String} msgid String to be translated when count is not plural\n * @param {String} msgidPlural String to be translated when count is plural\n * @param {Number} count Number count for the plural\n * @return {String} Translation or the original string if no translation was found\n */\nGettext.prototype.npgettext = function(msgctxt, msgid, msgidPlural, count) {\n return this.dnpgettext(this.domain, msgctxt, msgid, msgidPlural, count);\n};\n\n/**\n * Translates a plural string from a specifi context using a specific textdomain\n *\n * @example\n * gt.dnpgettext('domainname', 'sports', 'Back', '%d backs', numberOfBacks)\n *\n * @param {String} domain A gettext domain name\n * @param {String} msgctxt Translation context\n * @param {String} msgid String to be translated\n * @param {String} msgidPlural If no translation was found, return this on count!=1\n * @param {Number} count Number count for the plural\n * @return {String} Translation or the original string if no translation was found\n */\nGettext.prototype.dnpgettext = function(domain, msgctxt, msgid, msgidPlural, count) {\n var defaultTranslation = msgid;\n var translation;\n var index;\n\n msgctxt = msgctxt || '';\n\n if (!isNaN(count) && count !== 1) {\n defaultTranslation = msgidPlural || msgid;\n }\n\n translation = this._getTranslation(domain, msgctxt, msgid);\n\n if (translation) {\n if (typeof count === 'number') {\n var pluralsFunc = plurals[Gettext.getLanguageCode(this.locale)].pluralsFunc;\n index = pluralsFunc(count);\n if (typeof index === 'boolean') {\n index = index ? 1 : 0;\n }\n } else {\n index = 0;\n }\n\n return translation.msgstr[index] || defaultTranslation;\n }\n else if (!this.sourceLocale || this.locale !== this.sourceLocale) {\n this.warn('No translation was found for msgid \"' + msgid + '\" in msgctxt \"' + msgctxt + '\" and domain \"' + domain + '\"');\n }\n\n return defaultTranslation;\n};\n\n/**\n * Retrieves comments object for a translation. The comments object\n * has the shape `{ translator, extracted, reference, flag, previous }`.\n *\n * @example\n * const comment = gt.getComment('domainname', 'sports', 'Backs')\n *\n * @private\n * @param {String} domain A gettext domain name\n * @param {String} msgctxt Translation context\n * @param {String} msgid String to be translated\n * @return {Object} Comments object or false if not found\n */\nGettext.prototype.getComment = function(domain, msgctxt, msgid) {\n var translation;\n\n translation = this._getTranslation(domain, msgctxt, msgid);\n if (translation) {\n return translation.comments || {};\n }\n\n return {};\n};\n\n/**\n * Retrieves translation object from the domain and context\n *\n * @private\n * @param {String} domain A gettext domain name\n * @param {String} msgctxt Translation context\n * @param {String} msgid String to be translated\n * @return {Object} Translation object or false if not found\n */\nGettext.prototype._getTranslation = function(domain, msgctxt, msgid) {\n msgctxt = msgctxt || '';\n\n return get(this.catalogs, [this.locale, domain, 'translations', msgctxt, msgid]);\n};\n\n/**\n * Returns the language code part of a locale\n *\n * @example\n * Gettext.getLanguageCode('sv-SE')\n * // -> \"sv\"\n *\n * @private\n * @param {String} locale A case-insensitive locale string\n * @returns {String} A language code\n */\nGettext.getLanguageCode = function(locale) {\n return locale.split(/[\\-_]/)[0].toLowerCase();\n};\n\n/* C-style aliases */\n\n/**\n * C-style alias for [setTextDomain](#gettextsettextdomaindomain)\n *\n * @see Gettext#setTextDomain\n */\nGettext.prototype.textdomain = function(domain) {\n if (this.debug) {\n console.warn('textdomain(domain) was used to set locales in node-gettext v1. ' +\n 'Make sure you are using it for domains, and switch to setLocale(locale) if you are not.\\n\\n ' +\n 'To read more about the migration from node-gettext v1 to v2, ' +\n 'see https://github.com/alexanderwallin/node-gettext/#migrating-from-1x-to-2x\\n\\n' +\n 'This warning will be removed in the final 2.0.0');\n }\n\n this.setTextDomain(domain);\n};\n\n/**\n * C-style alias for [setLocale](#gettextsetlocalelocale)\n *\n * @see Gettext#setLocale\n */\nGettext.prototype.setlocale = function(locale) {\n this.setLocale(locale);\n};\n\n/* Deprecated functions */\n\n/**\n * This function will be removed in the final 2.0.0 release.\n *\n * @deprecated\n */\nGettext.prototype.addTextdomain = function() {\n console.error('addTextdomain() is deprecated.\\n\\n' +\n '* To add translations, use addTranslations()\\n' +\n '* To set the default domain, use setTextDomain() (or its alias textdomain())\\n' +\n '\\n' +\n 'To read more about the migration from node-gettext v1 to v2, ' +\n 'see https://github.com/alexanderwallin/node-gettext/#migrating-from-1x-to-2x');\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.46.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2025 Denis Pushkarev (zloirock.ru), 2025 CoreJS Company (core-js.io)',\n license: 'https://github.com/zloirock/core-js/blob/v3.46.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.1.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = globalThis;\n } else if (STATIC) {\n target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = globalThis[TARGET] && globalThis[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n// eslint-disable-next-line es/no-object-defineproperty -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, {\n defineProperty: defineProperty\n});\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') !== null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') !== null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n activeXDocument = null;\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.test('\\n') && re.flags === 's');\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegExp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) !== 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () {\n execCalled = true;\n return null;\n };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: call(nativeRegExpMethod, regexp, str, arg2) };\n }\n return { done: true, value: call(nativeMethod, str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError\nvar RegExp = globalThis.RegExp;\n\nvar FLAGS_GETTER_IS_CORRECT = !fails(function () {\n var INDICES_SUPPORT = true;\n try {\n RegExp('.', 'd');\n } catch (error) {\n INDICES_SUPPORT = false;\n }\n\n var O = {};\n // modern V8 bug\n var calls = '';\n var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n var addGetter = function (key, chr) {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(O, key, { get: function () {\n calls += chr;\n return true;\n } });\n };\n\n var pairs = {\n dotAll: 's',\n global: 'g',\n ignoreCase: 'i',\n multiline: 'm',\n sticky: 'y'\n };\n\n if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n for (var key in pairs) addGetter(key, pairs[key]);\n\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n var result = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get.call(O);\n\n return result !== expected || calls !== expected;\n});\n\nmodule.exports = { correct: FLAGS_GETTER_IS_CORRECT };\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlagsDetection = require('../internals/regexp-flags-detection');\nvar regExpFlagsGetterImplementation = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = regExpFlagsDetection.correct ? function (it) {\n return it.flags;\n} : function (it) {\n return (!regExpFlagsDetection.correct && isPrototypeOf(RegExpPrototype, it) && !hasOwn(it, 'flags'))\n ? call(regExpFlagsGetterImplementation, it)\n : it.flags;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw new $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isObject(searchValue) ? getMethod(searchValue, REPLACE) : undefined;\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var flags = toString(getRegExpFlags(rx));\n var global = stringIndexOf(flags, 'g') !== -1;\n var fullUnicode;\n if (global) {\n fullUnicode = stringIndexOf(flags, 'u') !== -1;\n rx.lastIndex = 0;\n }\n\n var results = [];\n var result;\n while (true) {\n result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n var replacement;\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","\"use strict\";\n\nrequire(\"core-js/modules/es.object.define-property.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getCanonicalLocale = getCanonicalLocale;\nexports.getDayNames = getDayNames;\nexports.getDayNamesMin = getDayNamesMin;\nexports.getDayNamesShort = getDayNamesShort;\nexports.getFirstDay = getFirstDay;\nexports.getLanguage = getLanguage;\nexports.getLocale = getLocale;\nexports.getMonthNames = getMonthNames;\nexports.getMonthNamesShort = getMonthNamesShort;\nexports.translate = translate;\nexports.translatePlural = translatePlural;\n\nrequire(\"core-js/modules/es.regexp.exec.js\");\n\nrequire(\"core-js/modules/es.string.replace.js\");\n\n/// <reference types=\"@nextcloud/typings\" />\n\n/**\n * Returns the user's locale\n */\nfunction getLocale() {\n return document.documentElement.dataset.locale || 'en';\n}\n\nfunction getCanonicalLocale() {\n return getLocale().replace(/_/g, '-');\n}\n/**\n * Returns the user's language\n */\n\n\nfunction getLanguage() {\n return document.documentElement.lang || 'en';\n}\n\n/**\n * Translate a string\n *\n * @param {string} app the id of the app for which to translate the string\n * @param {string} text the string to translate\n * @param {object} vars map of placeholder key to value\n * @param {number} number to replace %n with\n * @param {object} [options] options object\n * @return {string}\n */\nfunction translate(app, text, vars, count, options) {\n if (typeof OC === 'undefined') {\n console.warn('No OC found');\n return text;\n }\n\n return OC.L10N.translate(app, text, vars, count, options);\n}\n/**\n * Translate a plural string\n *\n * @param {string} app the id of the app for which to translate the string\n * @param {string} textSingular the string to translate for exactly one object\n * @param {string} textPlural the string to translate for n objects\n * @param {number} count number to determine whether to use singular or plural\n * @param {Object} vars of placeholder key to value\n * @param {object} options options object\n * @return {string}\n */\n\n\nfunction translatePlural(app, textSingular, textPlural, count, vars, options) {\n if (typeof OC === 'undefined') {\n console.warn('No OC found');\n return textSingular;\n }\n\n return OC.L10N.translatePlural(app, textSingular, textPlural, count, vars, options);\n}\n/**\n * Get the first day of the week\n *\n * @return {number}\n */\n\n\nfunction getFirstDay() {\n if (typeof window.firstDay === 'undefined') {\n console.warn('No firstDay found');\n return 1;\n }\n\n return window.firstDay;\n}\n/**\n * Get a list of day names (full names)\n *\n * @return {string[]}\n */\n\n\nfunction getDayNames() {\n if (typeof window.dayNames === 'undefined') {\n console.warn('No dayNames found');\n return ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n }\n\n return window.dayNames;\n}\n/**\n * Get a list of day names (short names)\n *\n * @return {string[]}\n */\n\n\nfunction getDayNamesShort() {\n if (typeof window.dayNamesShort === 'undefined') {\n console.warn('No dayNamesShort found');\n return ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.'];\n }\n\n return window.dayNamesShort;\n}\n/**\n * Get a list of day names (minified names)\n *\n * @return {string[]}\n */\n\n\nfunction getDayNamesMin() {\n if (typeof window.dayNamesMin === 'undefined') {\n console.warn('No dayNamesMin found');\n return ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n }\n\n return window.dayNamesMin;\n}\n/**\n * Get a list of month names (full names)\n *\n * @return {string[]}\n */\n\n\nfunction getMonthNames() {\n if (typeof window.monthNames === 'undefined') {\n console.warn('No monthNames found');\n return ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n }\n\n return window.monthNames;\n}\n/**\n * Get a list of month names (short names)\n *\n * @return {string[]}\n */\n\n\nfunction getMonthNamesShort() {\n if (typeof window.monthNamesShort === 'undefined') {\n console.warn('No monthNamesShort found');\n return ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.'];\n }\n\n return window.monthNamesShort;\n}\n//# sourceMappingURL=index.js.map","!function(a,n){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define([],n):\"object\"==typeof exports?exports.NextcloudMoment=n():a.NextcloudMoment=n()}(self,(function(){return function(){\"use strict\";var a={n:function(n){var s=n&&n.__esModule?function(){return n.default}:function(){return n};return a.d(s,{a:s}),s},d:function(n,s){for(var e in s)a.o(s,e)&&!a.o(n,e)&&Object.defineProperty(n,e,{enumerable:!0,get:s[e]})},o:function(a,n){return Object.prototype.hasOwnProperty.call(a,n)},r:function(a){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(a,\"__esModule\",{value:!0})}},n={};a.r(n),a.d(n,{default:function(){return u}});var s=require(\"moment\"),e=a.n(s),t=require(\"node-gettext\"),r=a.n(t),l=require(\"@nextcloud/l10n\"),o=new(r()),m=(0,l.getLocale)();[{locale:\"ar\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"S1 SYSTEMS | BP <info@s1.sa>, 2020\",\"Language-Team\":\"Arabic (https://www.transifex.com/nextcloud/teams/64236/ar/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"ar\",\"Plural-Forms\":\"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nS1 SYSTEMS | BP <info@s1.sa>, 2020\\n\"},msgstr:[\"Last-Translator: S1 SYSTEMS | BP <info@s1.sa>, 2020\\nLanguage-Team: Arabic (https://www.transifex.com/nextcloud/teams/64236/ar/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ar\\nPlural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"ثواني\"]}}}}},{locale:\"ast\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"enolp <enolp@softastur.org>, 2020\",\"Language-Team\":\"Asturian (https://www.transifex.com/nextcloud/teams/64236/ast/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"ast\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nenolp <enolp@softastur.org>, 2020\\n\"},msgstr:[\"Last-Translator: enolp <enolp@softastur.org>, 2020\\nLanguage-Team: Asturian (https://www.transifex.com/nextcloud/teams/64236/ast/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ast\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"segundos\"]}}}}},{locale:\"br\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Kervoas-Le Nabat Ewen <ewenkervoas@free.fr>, 2020\",\"Language-Team\":\"Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"br\",\"Plural-Forms\":\"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nKervoas-Le Nabat Ewen <ewenkervoas@free.fr>, 2020\\n\"},msgstr:[\"Last-Translator: Kervoas-Le Nabat Ewen <ewenkervoas@free.fr>, 2020\\nLanguage-Team: Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: br\\nPlural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"eilennoù\"]}}}}},{locale:\"ca\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Marc Riera <marcriera@softcatala.org>, 2020\",\"Language-Team\":\"Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"ca\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nMarc Riera <marcriera@softcatala.org>, 2020\\n\"},msgstr:[\"Last-Translator: Marc Riera <marcriera@softcatala.org>, 2020\\nLanguage-Team: Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ca\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"segons\"]}}}}},{locale:\"cs_CZ\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Pavel Borecki <pavel.borecki@gmail.com>, 2021\",\"Language-Team\":\"Czech (Czech Republic) (https://www.transifex.com/nextcloud/teams/64236/cs_CZ/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"cs_CZ\",\"Plural-Forms\":\"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nPavel Borecki <pavel.borecki@gmail.com>, 2021\\n\"},msgstr:[\"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2021\\nLanguage-Team: Czech (Czech Republic) (https://www.transifex.com/nextcloud/teams/64236/cs_CZ/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: cs_CZ\\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"sekund(y)\"]}}}}},{locale:\"da\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Henrik Troels-Hansen <henrik@troels-hansen.dk>, 2020\",\"Language-Team\":\"Danish (https://www.transifex.com/nextcloud/teams/64236/da/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"da\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nHenrik Troels-Hansen <henrik@troels-hansen.dk>, 2020\\n\"},msgstr:[\"Last-Translator: Henrik Troels-Hansen <henrik@troels-hansen.dk>, 2020\\nLanguage-Team: Danish (https://www.transifex.com/nextcloud/teams/64236/da/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: da\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"sekunder\"]}}}}},{locale:\"de_DE\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Christoph Wurst <christoph@winzerhof-wurst.at>, 2020\",\"Language-Team\":\"German (Germany) (https://www.transifex.com/nextcloud/teams/64236/de_DE/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"de_DE\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nChristoph Wurst <christoph@winzerhof-wurst.at>, 2020\\n\"},msgstr:[\"Last-Translator: Christoph Wurst <christoph@winzerhof-wurst.at>, 2020\\nLanguage-Team: German (Germany) (https://www.transifex.com/nextcloud/teams/64236/de_DE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: de_DE\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"Sekunden\"]}}}}},{locale:\"el\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"GRMarksman <alexakos01@gmail.com>, 2020\",\"Language-Team\":\"Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"el\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nGRMarksman <alexakos01@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: GRMarksman <alexakos01@gmail.com>, 2020\\nLanguage-Team: Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: el\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"δευτερόλεπτα\"]}}}}},{locale:\"en_GB\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Oleksa Stasevych <oleksiy.stasevych@gmail.com>, 2020\",\"Language-Team\":\"English (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/en_GB/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"en_GB\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nOleksa Stasevych <oleksiy.stasevych@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Oleksa Stasevych <oleksiy.stasevych@gmail.com>, 2020\\nLanguage-Team: English (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/en_GB/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: en_GB\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"seconds\"]}}}}},{locale:\"eo\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Va Milushnikov <va.milushnikov@gmail.com>, 2020\",\"Language-Team\":\"Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"eo\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nVa Milushnikov <va.milushnikov@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Va Milushnikov <va.milushnikov@gmail.com>, 2020\\nLanguage-Team: Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: eo\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"sekundoj\"]}}}}},{locale:\"es\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Javier San Juan <javier.sj@trantor.es>, 2020\",\"Language-Team\":\"Spanish (https://www.transifex.com/nextcloud/teams/64236/es/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"es\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nJavier San Juan <javier.sj@trantor.es>, 2020\\n\"},msgstr:[\"Last-Translator: Javier San Juan <javier.sj@trantor.es>, 2020\\nLanguage-Team: Spanish (https://www.transifex.com/nextcloud/teams/64236/es/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"segundos\"]}}}}},{locale:\"eu\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Asier Iturralde Sarasola <asier.iturralde@gmail.com>, 2020\",\"Language-Team\":\"Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"eu\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nAsier Iturralde Sarasola <asier.iturralde@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Asier Iturralde Sarasola <asier.iturralde@gmail.com>, 2020\\nLanguage-Team: Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: eu\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"segundo\"]}}}}},{locale:\"fa\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Amirreza Kolivand <amirrezak86@gmail.com>, 2021\",\"Language-Team\":\"Persian (https://www.transifex.com/nextcloud/teams/64236/fa/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"fa\",\"Plural-Forms\":\"nplurals=2; plural=(n > 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nAmirreza Kolivand <amirrezak86@gmail.com>, 2021\\n\"},msgstr:[\"Last-Translator: Amirreza Kolivand <amirrezak86@gmail.com>, 2021\\nLanguage-Team: Persian (https://www.transifex.com/nextcloud/teams/64236/fa/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fa\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"ثانیه\"]}}}}},{locale:\"fi_FI\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Robin Lahtinen <robin.lahtinen@gmail.com>, 2020\",\"Language-Team\":\"Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"fi_FI\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nRobin Lahtinen <robin.lahtinen@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Robin Lahtinen <robin.lahtinen@gmail.com>, 2020\\nLanguage-Team: Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fi_FI\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"sekuntia\"]}}}}},{locale:\"fr\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Yoplala <yoplala@pataraphe.net>, 2020\",\"Language-Team\":\"French (https://www.transifex.com/nextcloud/teams/64236/fr/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"fr\",\"Plural-Forms\":\"nplurals=2; plural=(n > 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nYoplala <yoplala@pataraphe.net>, 2020\\n\"},msgstr:[\"Last-Translator: Yoplala <yoplala@pataraphe.net>, 2020\\nLanguage-Team: French (https://www.transifex.com/nextcloud/teams/64236/fr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fr\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"secondes\"]}}}}},{locale:\"gl\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Miguel Anxo Bouzada <mbouzada@gmail.com>, 2020\",\"Language-Team\":\"Galician (https://www.transifex.com/nextcloud/teams/64236/gl/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"gl\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nMiguel Anxo Bouzada <mbouzada@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>, 2020\\nLanguage-Team: Galician (https://www.transifex.com/nextcloud/teams/64236/gl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: gl\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"segundos\"]}}}}},{locale:\"he\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Yaron Shahrabani <sh.yaron@gmail.com>, 2020\",\"Language-Team\":\"Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"he\",\"Plural-Forms\":\"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nYaron Shahrabani <sh.yaron@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>, 2020\\nLanguage-Team: Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: he\\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"שניות\"]}}}}},{locale:\"hu_HU\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Balázs Meskó <meskobalazs@gmail.com>, 2020\",\"Language-Team\":\"Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"hu_HU\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nBalázs Meskó <meskobalazs@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Balázs Meskó <meskobalazs@gmail.com>, 2020\\nLanguage-Team: Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hu_HU\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"másodperc\"]}}}}},{locale:\"id\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Marcus Pierce, 2021\",\"Language-Team\":\"Indonesian (https://www.transifex.com/nextcloud/teams/64236/id/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"id\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nMarcus Pierce, 2021\\n\"},msgstr:[\"Last-Translator: Marcus Pierce, 2021\\nLanguage-Team: Indonesian (https://www.transifex.com/nextcloud/teams/64236/id/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: id\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"detik\"]}}}}},{locale:\"is\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Sveinn í Felli <sv1@fellsnet.is>, 2020\",\"Language-Team\":\"Icelandic (https://www.transifex.com/nextcloud/teams/64236/is/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"is\",\"Plural-Forms\":\"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nSveinn í Felli <sv1@fellsnet.is>, 2020\\n\"},msgstr:[\"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>, 2020\\nLanguage-Team: Icelandic (https://www.transifex.com/nextcloud/teams/64236/is/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: is\\nPlural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"sekúndur\"]}}}}},{locale:\"it\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Random_R, 2020\",\"Language-Team\":\"Italian (https://www.transifex.com/nextcloud/teams/64236/it/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"it\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nRandom_R, 2020\\n\"},msgstr:[\"Last-Translator: Random_R, 2020\\nLanguage-Team: Italian (https://www.transifex.com/nextcloud/teams/64236/it/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: it\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"secondi\"]}}}}},{locale:\"ja_JP\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"YANO Tetsu <tetuyano+transi@gmail.com>, 2020\",\"Language-Team\":\"Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"ja_JP\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nYANO Tetsu <tetuyano+transi@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: YANO Tetsu <tetuyano+transi@gmail.com>, 2020\\nLanguage-Team: Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ja_JP\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"秒\"]}}}}},{locale:\"ko\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Brandon Han, 2021\",\"Language-Team\":\"Korean (https://www.transifex.com/nextcloud/teams/64236/ko/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"ko\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nBrandon Han, 2021\\n\"},msgstr:[\"Last-Translator: Brandon Han, 2021\\nLanguage-Team: Korean (https://www.transifex.com/nextcloud/teams/64236/ko/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ko\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"초\"]}}}}},{locale:\"lt_LT\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Moo, 2020\",\"Language-Team\":\"Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"lt_LT\",\"Plural-Forms\":\"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nMoo, 2020\\n\"},msgstr:[\"Last-Translator: Moo, 2020\\nLanguage-Team: Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lt_LT\\nPlural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"sek.\"]}}}}},{locale:\"lv\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"stendec <stendec@inbox.lv>, 2020\",\"Language-Team\":\"Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"lv\",\"Plural-Forms\":\"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nstendec <stendec@inbox.lv>, 2020\\n\"},msgstr:[\"Last-Translator: stendec <stendec@inbox.lv>, 2020\\nLanguage-Team: Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lv\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"sekundes\"]}}}}},{locale:\"mk\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Сашко Тодоров, 2020\",\"Language-Team\":\"Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"mk\",\"Plural-Forms\":\"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nСашко Тодоров, 2020\\n\"},msgstr:[\"Last-Translator: Сашко Тодоров, 2020\\nLanguage-Team: Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: mk\\nPlural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"секунди\"]}}}}},{locale:\"my\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Htike Aung Kyaw <htikeagkyaw@gmail.com>, 2021\",\"Language-Team\":\"Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"my\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nHtike Aung Kyaw <htikeagkyaw@gmail.com>, 2021\\n\"},msgstr:[\"Last-Translator: Htike Aung Kyaw <htikeagkyaw@gmail.com>, 2021\\nLanguage-Team: Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: my\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"စက္ကန့်\"]}}}}},{locale:\"nb_NO\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Ole Jakob Brustad <ole.jakob@brustadbuss.no>, 2020\",\"Language-Team\":\"Norwegian Bokmål (Norway) (https://www.transifex.com/nextcloud/teams/64236/nb_NO/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"nb_NO\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nOle Jakob Brustad <ole.jakob@brustadbuss.no>, 2020\\n\"},msgstr:[\"Last-Translator: Ole Jakob Brustad <ole.jakob@brustadbuss.no>, 2020\\nLanguage-Team: Norwegian Bokmål (Norway) (https://www.transifex.com/nextcloud/teams/64236/nb_NO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nb_NO\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"sekunder\"]}}}}},{locale:\"nl\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Roeland Jago Douma <roeland@famdouma.nl>, 2020\",\"Language-Team\":\"Dutch (https://www.transifex.com/nextcloud/teams/64236/nl/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"nl\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nRoeland Jago Douma <roeland@famdouma.nl>, 2020\\n\"},msgstr:[\"Last-Translator: Roeland Jago Douma <roeland@famdouma.nl>, 2020\\nLanguage-Team: Dutch (https://www.transifex.com/nextcloud/teams/64236/nl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nl\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"seconden\"]}}}}},{locale:\"oc\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Quentin PAGÈS, 2020\",\"Language-Team\":\"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"oc\",\"Plural-Forms\":\"nplurals=2; plural=(n > 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nQuentin PAGÈS, 2020\\n\"},msgstr:[\"Last-Translator: Quentin PAGÈS, 2020\\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: oc\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"segondas\"]}}}}},{locale:\"pl\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Janusz Gwiazda <j.gwiazda@gwiazdaelektronika.eu>, 2020\",\"Language-Team\":\"Polish (https://www.transifex.com/nextcloud/teams/64236/pl/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"pl\",\"Plural-Forms\":\"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nJanusz Gwiazda <j.gwiazda@gwiazdaelektronika.eu>, 2020\\n\"},msgstr:[\"Last-Translator: Janusz Gwiazda <j.gwiazda@gwiazdaelektronika.eu>, 2020\\nLanguage-Team: Polish (https://www.transifex.com/nextcloud/teams/64236/pl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pl\\nPlural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"sekundy\"]}}}}},{locale:\"pt_BR\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"André Marcelo Alvarenga <alvarenga@kde.org>, 2020\",\"Language-Team\":\"Portuguese (Brazil) (https://www.transifex.com/nextcloud/teams/64236/pt_BR/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"pt_BR\",\"Plural-Forms\":\"nplurals=2; plural=(n > 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nAndré Marcelo Alvarenga <alvarenga@kde.org>, 2020\\n\"},msgstr:[\"Last-Translator: André Marcelo Alvarenga <alvarenga@kde.org>, 2020\\nLanguage-Team: Portuguese (Brazil) (https://www.transifex.com/nextcloud/teams/64236/pt_BR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pt_BR\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"segundos\"]}}}}},{locale:\"pt_PT\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"fpapoila <fpapoila@gmail.com>, 2020\",\"Language-Team\":\"Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"pt_PT\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nfpapoila <fpapoila@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: fpapoila <fpapoila@gmail.com>, 2020\\nLanguage-Team: Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pt_PT\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"segundos\"]}}}}},{locale:\"ru\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Игорь Бондаренко <garbond@yandex.ru>, 2020\",\"Language-Team\":\"Russian (https://www.transifex.com/nextcloud/teams/64236/ru/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"ru\",\"Plural-Forms\":\"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nИгорь Бондаренко <garbond@yandex.ru>, 2020\\n\"},msgstr:[\"Last-Translator: Игорь Бондаренко <garbond@yandex.ru>, 2020\\nLanguage-Team: Russian (https://www.transifex.com/nextcloud/teams/64236/ru/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ru\\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"секунды\"]}}}}},{locale:\"si\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Hela Basa, 2021\",\"Language-Team\":\"Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"si\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nHela Basa, 2021\\n\"},msgstr:[\"Last-Translator: Hela Basa, 2021\\nLanguage-Team: Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: si\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"තත්පර\"]}}}}},{locale:\"sk_SK\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Anton Kuchár <tonokuc@pobox.sk>, 2020\",\"Language-Team\":\"Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"sk_SK\",\"Plural-Forms\":\"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nAnton Kuchár <tonokuc@pobox.sk>, 2020\\n\"},msgstr:[\"Last-Translator: Anton Kuchár <tonokuc@pobox.sk>, 2020\\nLanguage-Team: Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sk_SK\\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"sekundy\"]}}}}},{locale:\"sl\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Matej Urbančič <>, 2020\",\"Language-Team\":\"Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"sl\",\"Plural-Forms\":\"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nMatej Urbančič <>, 2020\\n\"},msgstr:[\"Last-Translator: Matej Urbančič <>, 2020\\nLanguage-Team: Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sl\\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"sekunde\"]}}}}},{locale:\"sq\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Greta, 2020\",\"Language-Team\":\"Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"sq\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nGreta, 2020\\n\"},msgstr:[\"Last-Translator: Greta, 2020\\nLanguage-Team: Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sq\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"sekonda\"]}}}}},{locale:\"sr\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Slobodan Simić <slsimic@gmail.com>, 2020\",\"Language-Team\":\"Serbian (https://www.transifex.com/nextcloud/teams/64236/sr/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"sr\",\"Plural-Forms\":\"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nSlobodan Simić <slsimic@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Slobodan Simić <slsimic@gmail.com>, 2020\\nLanguage-Team: Serbian (https://www.transifex.com/nextcloud/teams/64236/sr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sr\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"секунде\"]}}}}},{locale:\"sv\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Magnus Höglund, 2020\",\"Language-Team\":\"Swedish (https://www.transifex.com/nextcloud/teams/64236/sv/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"sv\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nMagnus Höglund, 2020\\n\"},msgstr:[\"Last-Translator: Magnus Höglund, 2020\\nLanguage-Team: Swedish (https://www.transifex.com/nextcloud/teams/64236/sv/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sv\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"sekunder\"]}}}}},{locale:\"th_TH\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Phongpanot Phairat <ppnplus@protonmail.com>, 2021\",\"Language-Team\":\"Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"th_TH\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nPhongpanot Phairat <ppnplus@protonmail.com>, 2021\\n\"},msgstr:[\"Last-Translator: Phongpanot Phairat <ppnplus@protonmail.com>, 2021\\nLanguage-Team: Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: th_TH\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"วินาที\"]}}}}},{locale:\"tr\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Hüseyin Fahri Uzun <mail@fahriuzun.com>, 2020\",\"Language-Team\":\"Turkish (https://www.transifex.com/nextcloud/teams/64236/tr/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"tr\",\"Plural-Forms\":\"nplurals=2; plural=(n > 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nHüseyin Fahri Uzun <mail@fahriuzun.com>, 2020\\n\"},msgstr:[\"Last-Translator: Hüseyin Fahri Uzun <mail@fahriuzun.com>, 2020\\nLanguage-Team: Turkish (https://www.transifex.com/nextcloud/teams/64236/tr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: tr\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"saniye\"]}}}}},{locale:\"uk\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Oleksa Stasevych <oleksiy.stasevych@gmail.com>, 2020\",\"Language-Team\":\"Ukrainian (https://www.transifex.com/nextcloud/teams/64236/uk/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"uk\",\"Plural-Forms\":\"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nOleksa Stasevych <oleksiy.stasevych@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Oleksa Stasevych <oleksiy.stasevych@gmail.com>, 2020\\nLanguage-Team: Ukrainian (https://www.transifex.com/nextcloud/teams/64236/uk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: uk\\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"секунд\"]}}}}},{locale:\"vi\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Luu Thang <luuthang@vif.vn>, 2021\",\"Language-Team\":\"Vietnamese (https://www.transifex.com/nextcloud/teams/64236/vi/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"vi\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nLuu Thang <luuthang@vif.vn>, 2021\\n\"},msgstr:[\"Last-Translator: Luu Thang <luuthang@vif.vn>, 2021\\nLanguage-Team: Vietnamese (https://www.transifex.com/nextcloud/teams/64236/vi/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: vi\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"giây\"]}}}}},{locale:\"zh_CN\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Jay Guo <jayguo921@gmail.com>, 2020\",\"Language-Team\":\"Chinese (China) (https://www.transifex.com/nextcloud/teams/64236/zh_CN/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"zh_CN\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nJay Guo <jayguo921@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Jay Guo <jayguo921@gmail.com>, 2020\\nLanguage-Team: Chinese (China) (https://www.transifex.com/nextcloud/teams/64236/zh_CN/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_CN\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"秒\"]}}}}},{locale:\"zh_HK\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Cha Wong <cafetango@gmail.com>, 2021\",\"Language-Team\":\"Chinese (Hong Kong) (https://www.transifex.com/nextcloud/teams/64236/zh_HK/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"zh_HK\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nCha Wong <cafetango@gmail.com>, 2021\\n\"},msgstr:[\"Last-Translator: Cha Wong <cafetango@gmail.com>, 2021\\nLanguage-Team: Chinese (Hong Kong) (https://www.transifex.com/nextcloud/teams/64236/zh_HK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_HK\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"秒\"]}}}}},{locale:\"zh_TW\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Jim Tsai <poormusic2001@gmail.com>, 2020\",\"Language-Team\":\"Chinese (Taiwan) (https://www.transifex.com/nextcloud/teams/64236/zh_TW/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"zh_TW\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nJim Tsai <poormusic2001@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Jim Tsai <poormusic2001@gmail.com>, 2020\\nLanguage-Team: Chinese (Taiwan) (https://www.transifex.com/nextcloud/teams/64236/zh_TW/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_TW\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},seconds:{msgid:\"seconds\",comments:{reference:\"lib/index.ts:22\"},msgstr:[\"秒\"]}}}}}].map((function(a){o.addTranslations(a.locale,\"messages\",a.json)})),o.setLocale(m),e().locale(m),e().updateLocale(e().locale(),{parentLocale:e().locale(),relativeTime:Object.assign(e().localeData(e().locale())._relativeTime,{s:o.gettext(\"seconds\")})});var u=e();return n}()}));\n//# sourceMappingURL=index.js.map","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon backup-restore-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,3A9,9 0 0,0 3,12H0L4,16L8,12H5A7,7 0 0,1 12,5A7,7 0 0,1 19,12A7,7 0 0,1 12,19C10.5,19 9.09,18.5 7.94,17.7L6.5,19.14C8.04,20.3 9.94,21 12,21A9,9 0 0,0 21,12A9,9 0 0,0 12,3M14,12A2,2 0 0,0 12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"BackupRestoreIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon file-compare-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M10,18H6V16H10V18M10,14H6V12H10V14M10,1V2H6C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H10V23H12V1H10M20,8V20C20,21.11 19.11,22 18,22H14V20H18V11H14V9H18.5L14,4.5V2L20,8M16,14H14V12H16V14M16,18H14V16H16V18Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FileCompareIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon image-off-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M22 20.7L3.3 2L2 3.3L3 4.3V19C3 20.1 3.9 21 5 21H19.7L20.7 22L22 20.7M5 19V6.3L12.6 13.9L11.1 15.8L9 13.1L6 17H15.7L17.7 19H5M8.8 5L6.8 3H19C20.1 3 21 3.9 21 5V17.2L19 15.2V5H8.8\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ImageOffOutlineIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon pencil-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M14.06,9L15,9.94L5.92,19H5V18.08L14.06,9M17.66,3C17.41,3 17.15,3.1 16.96,3.29L15.13,5.12L18.88,8.87L20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18.17,3.09 17.92,3 17.66,3M14.06,6.19L3,17.25V21H6.75L17.81,9.94L14.06,6.19Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"PencilOutlineIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcListItem\n\t\tclass=\"version\"\n\t\t:force-display-actions=\"true\"\n\t\t:actions-aria-label=\"t('files_versions', 'Actions for version from {versionHumanExplicitDate}', { versionHumanExplicitDate })\"\n\t\t:data-files-versions-version=\"version.fileVersion\"\n\t\t@click=\"click\">\n\t\t<!-- Icon -->\n\t\t<template #icon>\n\t\t\t<div v-if=\"!(loadPreview || previewLoaded)\" class=\"version__image\" />\n\t\t\t<img\n\t\t\t\tv-else-if=\"version.previewUrl && !previewErrored\"\n\t\t\t\t:src=\"version.previewUrl\"\n\t\t\t\talt=\"\"\n\t\t\t\tdecoding=\"async\"\n\t\t\t\tfetchpriority=\"low\"\n\t\t\t\tloading=\"lazy\"\n\t\t\t\tclass=\"version__image\"\n\t\t\t\t@load=\"previewLoaded = true\"\n\t\t\t\t@error=\"previewErrored = true\">\n\t\t\t<div\n\t\t\t\tv-else\n\t\t\t\tclass=\"version__image\">\n\t\t\t\t<ImageOffOutline :size=\"20\" />\n\t\t\t</div>\n\t\t</template>\n\n\t\t<!-- author -->\n\t\t<template #name>\n\t\t\t<div class=\"version__info\">\n\t\t\t\t<div\n\t\t\t\t\tv-if=\"versionLabel\"\n\t\t\t\t\tclass=\"version__info__label\"\n\t\t\t\t\tdata-cy-files-version-label\n\t\t\t\t\t:title=\"versionLabel\">\n\t\t\t\t\t{{ versionLabel }}\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-if=\"versionAuthor\"\n\t\t\t\t\tclass=\"version__info\"\n\t\t\t\t\tdata-cy-files-version-author-name>\n\t\t\t\t\t<span v-if=\"versionLabel\"></span>\n\t\t\t\t\t<NcAvatar\n\t\t\t\t\t\tclass=\"avatar\"\n\t\t\t\t\t\t:user=\"version.author ?? undefined\"\n\t\t\t\t\t\t:size=\"20\"\n\t\t\t\t\t\tdisable-menu\n\t\t\t\t\t\tdisable-tooltip\n\t\t\t\t\t\thide-status />\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass=\"version__info__author_name\"\n\t\t\t\t\t\t:title=\"versionAuthor\">\n\t\t\t\t\t\t{{ versionAuthor }}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<!-- Version file size as subline -->\n\t\t<template #subname>\n\t\t\t<div class=\"version__info version__info__subline\">\n\t\t\t\t<NcDateTime\n\t\t\t\t\tclass=\"version__info__date\"\n\t\t\t\t\trelative-time=\"short\"\n\t\t\t\t\t:timestamp=\"version.mtime\" />\n\t\t\t\t<!-- Separate dot to improve alignment -->\n\t\t\t\t<span></span>\n\t\t\t\t<span>{{ humanReadableSize }}</span>\n\t\t\t</div>\n\t\t</template>\n\n\t\t<!-- Actions -->\n\t\t<template #actions>\n\t\t\t<NcActionButton\n\t\t\t\tv-if=\"enableLabeling && hasUpdatePermissions\"\n\t\t\t\tdata-cy-files-versions-version-action=\"label\"\n\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t@click=\"labelUpdate\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Pencil :size=\"22\" />\n\t\t\t\t</template>\n\t\t\t\t{{ version.label === '' ? t('files_versions', 'Name this version') : t('files_versions', 'Edit version name') }}\n\t\t\t</NcActionButton>\n\t\t\t<NcActionButton\n\t\t\t\tv-if=\"!isCurrent && canView && canCompare\"\n\t\t\t\tdata-cy-files-versions-version-action=\"compare\"\n\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t@click=\"compareVersion\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<FileCompare :size=\"22\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('files_versions', 'Compare to current version') }}\n\t\t\t</NcActionButton>\n\t\t\t<NcActionButton\n\t\t\t\tv-if=\"!isCurrent && hasUpdatePermissions\"\n\t\t\t\tdata-cy-files-versions-version-action=\"restore\"\n\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t@click=\"restoreVersion\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<BackupRestore :size=\"22\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('files_versions', 'Restore version') }}\n\t\t\t</NcActionButton>\n\t\t\t<NcActionLink\n\t\t\t\tv-if=\"isDownloadable\"\n\t\t\t\tdata-cy-files-versions-version-action=\"download\"\n\t\t\t\t:href=\"downloadURL\"\n\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t:download=\"downloadURL\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Download :size=\"22\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('files_versions', 'Download version') }}\n\t\t\t</NcActionLink>\n\t\t\t<NcActionButton\n\t\t\t\tv-if=\"!isCurrent && enableDeletion && hasDeletePermissions\"\n\t\t\t\tdata-cy-files-versions-version-action=\"delete\"\n\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t@click=\"deleteVersion\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Delete :size=\"22\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('files_versions', 'Delete version') }}\n\t\t\t</NcActionButton>\n\t\t</template>\n\t</NcListItem>\n</template>\n\n<script lang=\"ts\" setup>\nimport type { PropType } from 'vue'\nimport type { LegacyFileInfo } from '../../../files/src/services/FileInfo.ts'\nimport type { Version } from '../utils/versions.ts'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { formatFileSize, Permission } from '@nextcloud/files'\nimport { loadState } from '@nextcloud/initial-state'\nimport { t } from '@nextcloud/l10n'\nimport moment from '@nextcloud/moment'\nimport { joinPaths } from '@nextcloud/paths'\nimport { getRootUrl } from '@nextcloud/router'\nimport { computed, nextTick, ref } from 'vue'\nimport NcActionButton from '@nextcloud/vue/components/NcActionButton'\nimport NcActionLink from '@nextcloud/vue/components/NcActionLink'\nimport NcAvatar from '@nextcloud/vue/components/NcAvatar'\nimport NcDateTime from '@nextcloud/vue/components/NcDateTime'\nimport NcListItem from '@nextcloud/vue/components/NcListItem'\nimport BackupRestore from 'vue-material-design-icons/BackupRestore.vue'\nimport FileCompare from 'vue-material-design-icons/FileCompare.vue'\nimport ImageOffOutline from 'vue-material-design-icons/ImageOffOutline.vue'\nimport Pencil from 'vue-material-design-icons/PencilOutline.vue'\nimport Delete from 'vue-material-design-icons/TrashCanOutline.vue'\nimport Download from 'vue-material-design-icons/TrayArrowDown.vue'\n\nconst props = defineProps({\n\tversion: {\n\t\ttype: Object as PropType<Version>,\n\t\trequired: true,\n\t},\n\n\tfileInfo: {\n\t\ttype: Object as PropType<LegacyFileInfo>,\n\t\trequired: true,\n\t},\n\n\tisCurrent: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\tisFirstVersion: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\tloadPreview: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\tcanView: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\tcanCompare: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n})\n\nconst emit = defineEmits(['click', 'compare', 'restore', 'delete', 'label-update-request'])\n\nconst hasPermission = (permissions: number, permission: number): boolean => (permissions & permission) !== 0\n\nconst previewLoaded = ref(false)\nconst previewErrored = ref(false)\nconst capabilities = ref(loadState('core', 'capabilities', { files: { version_labeling: false, version_deletion: false } }))\n\nconst humanReadableSize = computed(() => {\n\treturn formatFileSize(props.version.size)\n})\n\nconst versionLabel = computed(() => {\n\tconst label = props.version.label ?? ''\n\n\tif (props.isCurrent) {\n\t\tif (label === '') {\n\t\t\treturn t('files_versions', 'Current version')\n\t\t} else {\n\t\t\treturn `${label} (${t('files_versions', 'Current version')})`\n\t\t}\n\t}\n\n\tif (props.isFirstVersion && label === '') {\n\t\treturn t('files_versions', 'Initial version')\n\t}\n\n\treturn label\n})\n\nconst versionAuthor = computed(() => {\n\tif (!props.version.author || !props.version.authorName) {\n\t\treturn ''\n\t}\n\n\tif (props.version.author === getCurrentUser()?.uid) {\n\t\treturn t('files_versions', 'You')\n\t}\n\n\treturn props.version.authorName ?? props.version.author\n})\n\nconst versionHumanExplicitDate = computed(() => {\n\treturn moment(props.version.mtime).format('LLLL')\n})\n\nconst downloadURL = computed(() => {\n\tif (props.isCurrent) {\n\t\treturn getRootUrl() + joinPaths('/remote.php/webdav', props.fileInfo.path, props.fileInfo.name)\n\t} else {\n\t\treturn getRootUrl() + props.version.url\n\t}\n})\n\nconst enableLabeling = computed(() => {\n\treturn capabilities.value.files.version_labeling === true\n})\n\nconst enableDeletion = computed(() => {\n\treturn capabilities.value.files.version_deletion === true\n})\n\nconst hasDeletePermissions = computed(() => {\n\treturn hasPermission(props.fileInfo.permissions, Permission.DELETE)\n})\n\nconst hasUpdatePermissions = computed(() => {\n\treturn hasPermission(props.fileInfo.permissions, Permission.UPDATE)\n})\n\nconst isDownloadable = computed(() => {\n\tif ((props.fileInfo.permissions & Permission.READ) === 0) {\n\t\treturn false\n\t}\n\n\t// If the mount type is a share, ensure it got download permissions.\n\tif (props.fileInfo.mountType === 'shared') {\n\t\tconst downloadAttribute = props.fileInfo.shareAttributes\n\t\t\t.find((attribute) => attribute.scope === 'permissions' && attribute.key === 'download') || {}\n\t\t// If the download attribute is set to false, the file is not downloadable\n\t\tif (downloadAttribute?.value === false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n})\n\n/**\n *\n */\nfunction labelUpdate() {\n\temit('label-update-request')\n}\n\n/**\n *\n */\nfunction restoreVersion() {\n\temit('restore', props.version)\n}\n\n/**\n *\n */\nasync function deleteVersion() {\n\t// Let @nc-vue properly remove the popover before we delete the version.\n\t// This prevents @nc-vue from throwing a error.\n\tawait nextTick()\n\tawait nextTick()\n\temit('delete', props.version)\n}\n\n/**\n *\n */\nfunction click() {\n\tif (!props.canView) {\n\t\twindow.location.href = downloadURL.value\n\t\treturn\n\t}\n\temit('click', { version: props.version })\n}\n\n/**\n *\n */\nfunction compareVersion() {\n\tif (!props.canView) {\n\t\tthrow new Error('Cannot compare version of this file')\n\t}\n\temit('compare', { version: props.version })\n}\n</script>\n\n<style scoped lang=\"scss\">\n.version {\n\tdisplay: flex;\n\tflex-direction: row;\n\n\t&__info {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\talign-items: center;\n\t\tgap: 0.5rem;\n\t\tcolor: var(--color-main-text);\n\t\tfont-weight: 500;\n\t\toverflow: hidden;\n\n\t\t&__label {\n\t\t\tfont-weight: 700;\n\t\t\t// Fix overflow on narrow screens\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\tmin-width: 110px;\n\t\t}\n\n\t\t&__author_name {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__date {\n\t\t\t// Fix overflow on narrow screens\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__subline {\n\t\t\tcolor: var(--color-text-maxcontrast)\n\t\t}\n\t}\n\n\t&__image {\n\t\twidth: 3rem;\n\t\theight: 3rem;\n\t\tborder: 1px solid var(--color-border);\n\t\tborder-radius: var(--border-radius-large);\n\n\t\t// Useful to display no preview icon.\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\tcolor: var(--color-main-text);\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcDialog\n\t\t:buttons=\"dialogButtons\"\n\t\tcontent-classes=\"version-label-modal\"\n\t\tis-form\n\t\t:open=\"open\"\n\t\tsize=\"normal\"\n\t\t:name=\"t('files_versions', 'Name this version')\"\n\t\t@update:open=\"$emit('update:open', $event)\"\n\t\t@submit=\"setVersionLabel(internalLabel)\">\n\t\t<NcTextField\n\t\t\tref=\"labelInput\"\n\t\t\tv-model=\"internalLabel\"\n\t\t\tclass=\"version-label-modal__input\"\n\t\t\t:label=\"t('files_versions', 'Version name')\"\n\t\t\t:placeholder=\"t('files_versions', 'Version name')\" />\n\n\t\t<p class=\"version-label-modal__info\">\n\t\t\t{{ t('files_versions', 'Named versions are persisted, and excluded from automatic cleanups when your storage quota is full.') }}\n\t\t</p>\n\t</NcDialog>\n</template>\n\n<script lang=\"ts\" setup>\nimport svgCheck from '@mdi/svg/svg/check.svg?raw'\nimport { t } from '@nextcloud/l10n'\nimport { computed, nextTick, ref, useTemplateRef, watchEffect } from 'vue'\nimport NcDialog from '@nextcloud/vue/components/NcDialog'\nimport NcTextField from '@nextcloud/vue/components/NcTextField'\n\nconst props = defineProps({\n\topen: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\tlabel: {\n\t\ttype: String,\n\t\tdefault: '',\n\t},\n})\n\nconst emit = defineEmits(['update:open', 'update:label'])\n\nconst labelInput = useTemplateRef('labelInput')\n\nconst internalLabel = ref('')\n\nconst dialogButtons = computed(() => {\n\tconst buttons: unknown[] = []\n\tif (props.label.trim() === '') {\n\t\t// If there is no label just offer a cancel action that just closes the dialog\n\t\tbuttons.push({\n\t\t\tlabel: t('files_versions', 'Cancel'),\n\t\t})\n\t} else {\n\t\t// If there is already a label set, offer to remove the version label\n\t\tbuttons.push({\n\t\t\tlabel: t('files_versions', 'Remove version name'),\n\t\t\ttype: 'reset',\n\t\t\tvariant: 'error',\n\t\t\tcallback: () => { setVersionLabel('') },\n\t\t})\n\t}\n\treturn [\n\t\t...buttons,\n\t\t{\n\t\t\tlabel: t('files_versions', 'Save version name'),\n\t\t\ticon: svgCheck,\n\t\t\ttype: 'submit',\n\t\t\tvariant: 'primary',\n\t\t},\n\t]\n})\n\nwatchEffect(() => {\n\tinternalLabel.value = props.label ?? ''\n})\n\nwatchEffect(() => {\n\tif (props.open) {\n\t\tnextTick(() => labelInput.value?.focus())\n\t}\n\tinternalLabel.value = props.label\n})\n\n/**\n *\n * @param label - The new label\n */\nfunction setVersionLabel(label: string) {\n\temit('update:label', label)\n}\n</script>\n\n<style scoped lang=\"scss\">\n.version-label-modal {\n\t&__info {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tmargin-block: calc(3 * var(--default-grid-baseline));\n\t}\n\n\t&__input {\n\t\tmargin-block-start: calc(2 * var(--default-grid-baseline));\n\t}\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files_version')\n\t.detectUser()\n\t.build()\n","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div v-if=\"!useWindow && containerElement === null\" ref=\"container\" class=\"vs-container\">\n\t\t<div\n\t\t\tref=\"rowsContainer\"\n\t\t\tclass=\"vs-rows-container\"\n\t\t\t:style=\"rowsContainerStyle\">\n\t\t\t<slot :visible-sections=\"visibleSections\" />\n\t\t\t<slot name=\"loader\" />\n\t\t</div>\n\t</div>\n\t<div\n\t\tv-else\n\t\tref=\"rowsContainer\"\n\t\tclass=\"vs-rows-container\"\n\t\t:style=\"rowsContainerStyle\">\n\t\t<slot :visible-sections=\"visibleSections\" />\n\t\t<slot name=\"loader\" />\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport {\n\ttype PropType,\n\n\tdefineComponent,\n} from 'vue'\nimport logger from '../utils/logger.ts'\n\nexport interface RowItem {\n\tid: string // Unique id for the item.\n\tkey?: string // Unique key for the item.\n}\n\nexport interface Row {\n\tkey: string // Unique key for the row.\n\theight: number // The height of the row.\n\tsectionKey: string // Unique key for the row.\n\titems: RowItem[] // List of items in the row.\n}\n\ninterface VisibleRow extends Row {\n\tdistance: number // The distance from the visible viewport\n}\n\ninterface Section {\n\tkey: string // Unique key for the section.\n\trows: Row[] // The height of the row.\n\theight: number // Height of the section, excluding the header.\n}\n\ninterface VisibleSection extends Section {\n\trows: VisibleRow[] // The height of the row.\n}\n\nexport default defineComponent({\n\tname: 'VirtualScrolling',\n\n\tprops: {\n\t\tsections: {\n\t\t\ttype: Array as PropType<Section[]>,\n\t\t\trequired: true,\n\t\t},\n\n\t\tcontainerElement: {\n\t\t\ttype: HTMLElement,\n\t\t\tdefault: null,\n\t\t},\n\n\t\tuseWindow: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\theaderHeight: {\n\t\t\ttype: Number,\n\t\t\tdefault: 75,\n\t\t},\n\n\t\trenderDistance: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0.5,\n\t\t},\n\n\t\tbottomBufferRatio: {\n\t\t\ttype: Number,\n\t\t\tdefault: 2,\n\t\t},\n\n\t\tscrollToKey: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tscrollPosition: 0,\n\t\t\tcontainerHeight: 0,\n\t\t\trowsContainerHeight: 0,\n\t\t\tresizeObserver: null as ResizeObserver | null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tvisibleSections(): VisibleSection[] {\n\t\t\tlogger.debug('[VirtualScrolling] Computing visible section', { sections: this.sections })\n\n\t\t\t// Optimization: get those computed properties once to not go through vue's internal every time we need them.\n\t\t\tconst containerHeight = this.containerHeight\n\t\t\tconst containerTop = this.scrollPosition\n\t\t\tconst containerBottom = containerTop + containerHeight\n\n\t\t\tlet currentRowTop = 0\n\t\t\tlet currentRowBottom = 0\n\n\t\t\t// Compute whether a row should be included in the DOM (shouldRender)\n\t\t\t// And how visible the row is.\n\t\t\tconst visibleSections = this.sections\n\t\t\t\t.map((section) => {\n\t\t\t\t\tcurrentRowBottom += this.headerHeight\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...section,\n\t\t\t\t\t\trows: section.rows.reduce((visibleRows, row) => {\n\t\t\t\t\t\t\tcurrentRowTop = currentRowBottom\n\t\t\t\t\t\t\tcurrentRowBottom += row.height\n\n\t\t\t\t\t\t\tlet distance = 0\n\n\t\t\t\t\t\t\tif (currentRowBottom < containerTop) {\n\t\t\t\t\t\t\t\tdistance = (containerTop - currentRowBottom) / containerHeight\n\t\t\t\t\t\t\t} else if (currentRowTop > containerBottom) {\n\t\t\t\t\t\t\t\tdistance = (currentRowTop - containerBottom) / containerHeight\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (distance > this.renderDistance) {\n\t\t\t\t\t\t\t\treturn visibleRows\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t...visibleRows,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t...row,\n\t\t\t\t\t\t\t\t\tdistance,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}, [] as VisibleRow[]),\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.filter((section) => section.rows.length > 0)\n\n\t\t\t// To allow vue to recycle the DOM elements instead of adding and deleting new ones,\n\t\t\t// we assign a random key to each items. When a item removed, we recycle its key for new items,\n\t\t\t// so vue can replace the content of removed DOM elements with the content of new items, but keep the other DOM elements untouched.\n\t\t\tconst visibleItems = visibleSections\n\t\t\t\t.flatMap(({ rows }) => rows)\n\t\t\t\t.flatMap(({ items }) => items)\n\n\t\t\tconst rowIdToKeyMap = this._rowIdToKeyMap as { [key: string]: string }\n\n\t\t\tvisibleItems.forEach((item) => (item.key = rowIdToKeyMap[item.id]))\n\n\t\t\tconst usedTokens = visibleItems\n\t\t\t\t.map(({ key }) => key)\n\t\t\t\t.filter((key) => key !== undefined)\n\n\t\t\tconst unusedTokens = Object.values(rowIdToKeyMap).filter((key) => !usedTokens.includes(key))\n\n\t\t\tvisibleItems\n\t\t\t\t.filter(({ key }) => key === undefined)\n\t\t\t\t.forEach((item) => (item.key = unusedTokens.pop() ?? Math.random().toString(36).substr(2)))\n\n\t\t\t// this._rowIdToKeyMap is created in the beforeCreate hook, so value changes are not tracked.\n\t\t\t// Therefore, we wont trigger the computation of visibleSections again if we alter the value of this._rowIdToKeyMap.\n\t\t\t// eslint-disable-next-line vue/no-side-effects-in-computed-properties\n\t\t\tthis._rowIdToKeyMap = visibleItems.reduce((finalMapping, { id, key }) => ({ ...finalMapping, [`${id}`]: key }), {})\n\n\t\t\treturn visibleSections\n\t\t},\n\n\t\t/**\n\t\t * Total height of all the rows + some room for the loader.\n\t\t */\n\t\ttotalHeight(): number {\n\t\t\tconst loaderHeight = 0\n\n\t\t\treturn this.sections\n\t\t\t\t.map((section) => this.headerHeight + section.height)\n\t\t\t\t.reduce((totalHeight, sectionHeight) => totalHeight + sectionHeight, 0) + loaderHeight\n\t\t},\n\n\t\tpaddingTop(): number {\n\t\t\tif (this.visibleSections.length === 0) {\n\t\t\t\treturn 0\n\t\t\t}\n\n\t\t\tlet paddingTop = 0\n\n\t\t\tfor (const section of this.sections) {\n\t\t\t\tif (section.key !== this.visibleSections[0].rows[0].sectionKey) {\n\t\t\t\t\tpaddingTop += this.headerHeight + section.height\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tfor (const row of section.rows) {\n\t\t\t\t\tif (row.key === this.visibleSections[0].rows[0].key) {\n\t\t\t\t\t\treturn paddingTop\n\t\t\t\t\t}\n\n\t\t\t\t\tpaddingTop += row.height\n\t\t\t\t}\n\n\t\t\t\tpaddingTop += this.headerHeight\n\t\t\t}\n\n\t\t\treturn paddingTop\n\t\t},\n\n\t\t/**\n\t\t * padding-top is used to replace not included item in the container.\n\t\t */\n\t\trowsContainerStyle(): { height: string, paddingTop: string } {\n\t\t\treturn {\n\t\t\t\theight: `${this.totalHeight}px`,\n\t\t\t\tpaddingTop: `${this.paddingTop}px`,\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Whether the user is near the bottom.\n\t\t * If true, then the need-content event will be emitted.\n\t\t */\n\t\tisNearBottom(): boolean {\n\t\t\tconst buffer = this.containerHeight * this.bottomBufferRatio\n\t\t\treturn this.scrollPosition + this.containerHeight >= this.totalHeight - buffer\n\t\t},\n\n\t\tcontainer() {\n\t\t\tlogger.debug('[VirtualScrolling] Computing container')\n\t\t\tif (this.containerElement !== null) {\n\t\t\t\treturn this.containerElement\n\t\t\t} else if (this.useWindow) {\n\t\t\t\treturn window\n\t\t\t} else {\n\t\t\t\treturn this.$refs.container as Element\n\t\t\t}\n\t\t},\n\t},\n\n\twatch: {\n\t\tisNearBottom(value) {\n\t\t\tlogger.debug('[VirtualScrolling] isNearBottom changed', { value })\n\t\t\tif (value) {\n\t\t\t\tthis.$emit('need-content')\n\t\t\t}\n\t\t},\n\n\t\tvisibleSections() {\n\t\t\t// Re-emit need-content when rows is updated and isNearBottom is still true.\n\t\t\t// If the height of added rows is under `bottomBufferRatio`, `isNearBottom` will still be true so we need more content.\n\t\t\tif (this.isNearBottom) {\n\t\t\t\tthis.$emit('need-content')\n\t\t\t}\n\t\t},\n\n\t\tscrollToKey(key) {\n\t\t\tlet currentRowTopDistanceFromTop = 0\n\n\t\t\tfor (const section of this.sections) {\n\t\t\t\tif (section.key !== key) {\n\t\t\t\t\tcurrentRowTopDistanceFromTop += this.headerHeight + section.height\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tlogger.debug('[VirtualScrolling] Scrolling to', { currentRowTopDistanceFromTop })\n\t\t\tthis.container.scrollTo({ top: currentRowTopDistanceFromTop, behavior: 'smooth' })\n\t\t},\n\t},\n\n\tbeforeCreate() {\n\t\tthis._rowIdToKeyMap = {}\n\t},\n\n\tmounted() {\n\t\tthis.resizeObserver = new ResizeObserver((entries) => {\n\t\t\tfor (const entry of entries) {\n\t\t\t\tconst cr = entry.contentRect\n\t\t\t\tif (entry.target === this.container) {\n\t\t\t\t\tthis.containerHeight = cr.height\n\t\t\t\t}\n\t\t\t\tif (entry.target.classList.contains('vs-rows-container')) {\n\t\t\t\t\tthis.rowsContainerHeight = cr.height\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tif (this.useWindow) {\n\t\t\twindow.addEventListener('resize', this.updateContainerSize, { passive: true })\n\t\t\tthis.containerHeight = window.innerHeight\n\t\t} else {\n\t\t\tthis.resizeObserver.observe(this.container as HTMLElement | Element)\n\t\t}\n\n\t\tthis.resizeObserver.observe(this.$refs.rowsContainer as Element)\n\t\tthis.container.addEventListener('scroll', this.updateScrollPosition, { passive: true })\n\t},\n\n\tbeforeDestroy() {\n\t\tif (this.useWindow) {\n\t\t\twindow.removeEventListener('resize', this.updateContainerSize)\n\t\t}\n\n\t\tthis.resizeObserver?.disconnect()\n\t\tthis.container.removeEventListener('scroll', this.updateScrollPosition)\n\t},\n\n\tmethods: {\n\t\tupdateScrollPosition() {\n\t\t\tthis._onScrollHandle ??= requestAnimationFrame(() => {\n\t\t\t\tthis._onScrollHandle = null\n\t\t\t\tif (this.useWindow) {\n\t\t\t\t\tthis.scrollPosition = (this.container as Window).scrollY\n\t\t\t\t} else {\n\t\t\t\t\tthis.scrollPosition = (this.container as HTMLElement | Element).scrollTop\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\tupdateContainerSize() {\n\t\t\tthis.containerHeight = window.innerHeight\n\t\t},\n\t},\n})\n</script>\n\n<style scoped lang=\"scss\">\n.vs-container {\n\toverflow-y: scroll;\n\theight: 100%;\n}\n\n.vs-rows-container {\n\tbox-sizing: border-box;\n\twill-change: scroll-position, padding;\n\tcontain: layout paint style;\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'\nimport { generateRemoteUrl } from '@nextcloud/router'\nimport { createClient } from 'webdav'\n\n// init webdav client\nconst rootPath = 'dav'\nconst remote = generateRemoteUrl(rootPath)\nconst client = createClient(remote)\n\n// set CSRF token header\n/**\n *\n * @param token\n */\nfunction setHeaders(token) {\n\tclient.setHeaders({\n\t\t// Add this so the server knows it is an request from the browser\n\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t// Inject user auth\n\t\trequesttoken: token ?? '',\n\t})\n}\n\n// refresh headers when request token changes\nonRequestTokenUpdate(setHeaders)\nsetHeaders(getRequestToken())\n\nexport default client\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default `<?xml version=\"1.0\"?>\n<d:propfind xmlns:d=\"DAV:\"\n\txmlns:oc=\"http://owncloud.org/ns\"\n\txmlns:nc=\"http://nextcloud.org/ns\"\n\txmlns:ocs=\"http://open-collaboration-services.org/ns\">\n\t<d:prop>\n\t\t<d:getcontentlength />\n\t\t<d:getcontenttype />\n\t\t<d:getlastmodified />\n\t\t<d:getetag />\n\t\t<nc:version-label />\n\t\t<nc:version-author />\n\t\t<nc:has-preview />\n\t</d:prop>\n</d:propfind>`\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable jsdoc/require-jsdoc */\n/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport type { FileStat, ResponseDataDetailed } from 'webdav'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport moment from '@nextcloud/moment'\nimport { encodePath, joinPaths } from '@nextcloud/paths'\nimport { generateRemoteUrl, generateUrl } from '@nextcloud/router'\nimport client from '../utils/davClient.ts'\nimport davRequest from '../utils/davRequest.ts'\nimport logger from '../utils/logger.ts'\n\nexport interface Version {\n\tfileId: string // The id of the file associated to the version.\n\tlabel: string // 'Current version' or ''\n\tauthor: string | null // UID for the author of the version\n\tauthorName: string | null // Display name of the author\n\tfilename: string // File name relative to the version DAV endpoint\n\tbasename: string // A base name generated from the mtime\n\tmime: string // Empty for the current version, else the actual mime type of the version\n\tetag: string // Empty for the current version, else the actual mime type of the version\n\tsize: string // Human readable size\n\ttype: string // 'file'\n\tmtime: number // Version creation date as a timestamp\n\tpermissions: string // Only readable: 'R'\n\tpreviewUrl: string // Preview URL of the version\n\turl: string // Download URL of the version\n\tsource: string // The WebDAV endpoint of the resource\n\tfileVersion: string | null // The version id, null for the current version\n}\n\nexport async function fetchVersions(fileInfo: any): Promise<Version[]> {\n\tconst path = `/versions/${getCurrentUser()?.uid}/versions/${fileInfo.id}`\n\n\ttry {\n\t\tconst response = await client.getDirectoryContents(path, {\n\t\t\tdata: davRequest,\n\t\t\tdetails: true,\n\t\t}) as ResponseDataDetailed<FileStat[]>\n\n\t\tconst versions = response.data\n\t\t\t// Filter out root\n\t\t\t.filter(({ mime }) => mime !== '')\n\t\t\t.map((version) => formatVersion(version, fileInfo))\n\n\t\tconst authorIds = new Set(versions.map((version) => String(version.author)))\n\t\tconst authors = await axios.post(generateUrl('/displaynames'), { users: [...authorIds] })\n\n\t\tfor (const version of versions) {\n\t\t\tconst author = authors.data.users[version.author ?? '']\n\t\t\tif (author) {\n\t\t\t\tversion.authorName = author\n\t\t\t}\n\t\t}\n\n\t\treturn versions\n\t} catch (exception) {\n\t\tlogger.error('Could not fetch version', { exception })\n\t\tthrow exception\n\t}\n}\n\n/**\n * Restore the given version\n */\nexport async function restoreVersion(version: Version) {\n\ttry {\n\t\tlogger.debug('Restoring version', { url: version.url })\n\t\tawait client.moveFile(\n\t\t\t`/versions/${getCurrentUser()?.uid}/versions/${version.fileId}/${version.fileVersion}`,\n\t\t\t`/versions/${getCurrentUser()?.uid}/restore/target`,\n\t\t)\n\t} catch (exception) {\n\t\tlogger.error('Could not restore version', { exception })\n\t\tthrow exception\n\t}\n}\n\n/**\n * Format version\n */\nfunction formatVersion(version: any, fileInfo: any): Version {\n\tconst mtime = moment(version.lastmod).unix() * 1000\n\tlet previewUrl = ''\n\n\tif (mtime === fileInfo.mtime) { // Version is the current one\n\t\tpreviewUrl = generateUrl('/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0&forceIcon=1&mimeFallback=1', {\n\t\t\tfileId: fileInfo.id,\n\t\t\tfileEtag: fileInfo.etag,\n\t\t})\n\t} else {\n\t\tpreviewUrl = generateUrl('/apps/files_versions/preview?file={file}&version={fileVersion}&mimeFallback=1', {\n\t\t\tfile: joinPaths(fileInfo.path, fileInfo.name),\n\t\t\tfileVersion: version.basename,\n\t\t})\n\t}\n\n\treturn {\n\t\tfileId: fileInfo.id,\n\t\t// If version-label is defined make sure it is a string (prevent issue if the label is a number an PHP returns a number then)\n\t\tlabel: version.props['version-label'] ? String(version.props['version-label']) : '',\n\t\tauthor: version.props['version-author'] ? String(version.props['version-author']) : null,\n\t\tauthorName: null,\n\t\tfilename: version.filename,\n\t\tbasename: moment(mtime).format('LLL'),\n\t\tmime: version.mime,\n\t\tetag: `${version.props.getetag}`,\n\t\tsize: version.size,\n\t\ttype: version.type,\n\t\tmtime,\n\t\tpermissions: 'R',\n\t\tpreviewUrl,\n\t\turl: joinPaths('/remote.php/dav', version.filename),\n\t\tsource: generateRemoteUrl('dav') + encodePath(version.filename),\n\t\tfileVersion: version.basename,\n\t}\n}\n\nexport async function setVersionLabel(version: Version, newLabel: string) {\n\treturn await client.customRequest(\n\t\tversion.filename,\n\t\t{\n\t\t\tmethod: 'PROPPATCH',\n\t\t\tdata: `<?xml version=\"1.0\"?>\n\t\t\t\t\t<d:propertyupdate xmlns:d=\"DAV:\"\n\t\t\t\t\t\txmlns:oc=\"http://owncloud.org/ns\"\n\t\t\t\t\t\txmlns:nc=\"http://nextcloud.org/ns\"\n\t\t\t\t\t\txmlns:ocs=\"http://open-collaboration-services.org/ns\">\n\t\t\t\t\t<d:set>\n\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t<nc:version-label>${newLabel}</nc:version-label>\n\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t</d:set>\n\t\t\t\t\t</d:propertyupdate>`,\n\t\t},\n\t)\n}\n\nexport async function deleteVersion(version: Version) {\n\tawait client.deleteFile(version.filename)\n}\n","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div v-if=\"fileInfo !== null\" class=\"versions-tab__container\">\n\t\t<VirtualScrolling\n\t\t\t:sections=\"sections\"\n\t\t\t:header-height=\"0\">\n\t\t\t<template #default=\"{ visibleSections }\">\n\t\t\t\t<ul :aria-label=\"t('files_versions', 'File versions')\" data-files-versions-versions-list>\n\t\t\t\t\t<template v-if=\"visibleSections.length === 1\">\n\t\t\t\t\t\t<VersionEntry\n\t\t\t\t\t\t\tv-for=\"(row) of visibleSections[0].rows\"\n\t\t\t\t\t\t\t:key=\"row.items[0].version.mtime\"\n\t\t\t\t\t\t\t:can-view=\"canView\"\n\t\t\t\t\t\t\t:can-compare=\"canCompare\"\n\t\t\t\t\t\t\t:load-preview=\"isActive\"\n\t\t\t\t\t\t\t:version=\"row.items[0].version\"\n\t\t\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t\t\t:is-current=\"row.items[0].version.mtime === fileInfo.mtime\"\n\t\t\t\t\t\t\t:is-first-version=\"row.items[0].version.mtime === initialVersionMtime\"\n\t\t\t\t\t\t\t@click=\"openVersion\"\n\t\t\t\t\t\t\t@compare=\"compareVersion\"\n\t\t\t\t\t\t\t@restore=\"handleRestore\"\n\t\t\t\t\t\t\t@label-update-request=\"handleLabelUpdateRequest(row.items[0].version)\"\n\t\t\t\t\t\t\t@delete=\"handleDelete\" />\n\t\t\t\t\t</template>\n\t\t\t\t</ul>\n\t\t\t</template>\n\t\t\t<template #loader>\n\t\t\t\t<NcLoadingIcon v-if=\"loading\" class=\"files-list-viewer__loader\" />\n\t\t\t</template>\n\t\t</VirtualScrolling>\n\t\t<VersionLabelDialog\n\t\t\tv-if=\"editedVersion\"\n\t\t\tv-model:open=\"showVersionLabelForm\"\n\t\t\t:label=\"editedVersion.label\"\n\t\t\t@update:label=\"handleLabelUpdate\" />\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\nimport type { LegacyFileInfo } from '../../../files/src/services/FileInfo.ts'\nimport type { Version } from '../utils/versions.ts'\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { t } from '@nextcloud/l10n'\nimport { useIsMobile } from '@nextcloud/vue/composables/useIsMobile'\nimport path from 'path'\nimport { computed, onBeforeUnmount, onMounted, ref } from 'vue'\nimport NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'\nimport VersionEntry from '../components/VersionEntry.vue'\nimport VersionLabelDialog from '../components/VersionLabelDialog.vue'\nimport VirtualScrolling from '../components/VirtualScrolling.vue'\nimport logger from '../utils/logger.ts'\nimport { deleteVersion, fetchVersions, restoreVersion, setVersionLabel } from '../utils/versions.ts'\n\nconst isMobile = useIsMobile()\n\nconst fileInfo = ref<LegacyFileInfo | null>(null)\nconst isActive = ref<boolean>(false)\nconst versions = ref<Version[]>([])\nconst loading = ref(false)\nconst showVersionLabelForm = ref(false)\nconst editedVersion = ref<Version | null>(null)\n\n/**\n * Order versions by mtime.\n * Put the current version at the top.\n */\nconst orderedVersions = computed(() => {\n\treturn [...versions.value].sort((a, b) => {\n\t\tif (fileInfo.value === null) {\n\t\t\treturn 0\n\t\t}\n\n\t\tif (a.mtime === fileInfo.value.mtime) {\n\t\t\treturn -1\n\t\t} else if (b.mtime === fileInfo.value.mtime) {\n\t\t\treturn 1\n\t\t} else {\n\t\t\treturn b.mtime - a.mtime\n\t\t}\n\t})\n})\n\nconst sections = computed(() => {\n\tconst rows = orderedVersions.value.map((version) => ({ key: version.mtime.toString(), height: 68, sectionKey: 'versions', items: [{ id: version.mtime.toString(), version }] }))\n\treturn [{ key: 'versions', rows, height: 68 * orderedVersions.value.length }]\n})\n\n/**\n * Return the mtime of the first version to display \"Initial version\" label\n */\nconst initialVersionMtime = computed(() => {\n\treturn versions.value\n\t\t.map((version) => version.mtime)\n\t\t.reduce((a, b) => Math.min(a, b))\n})\n\nconst viewerFileInfo = computed(() => {\n\tif (fileInfo.value === null) {\n\t\treturn null\n\t}\n\n\t// We need to remap bitmask to dav permissions as the file info we have is converted through client.js\n\tlet davPermissions = ''\n\tif (fileInfo.value.permissions & 1) {\n\t\tdavPermissions += 'R'\n\t}\n\tif (fileInfo.value.permissions & 2) {\n\t\tdavPermissions += 'W'\n\t}\n\tif (fileInfo.value.permissions & 8) {\n\t\tdavPermissions += 'D'\n\t}\n\treturn {\n\t\t...fileInfo.value,\n\t\tmime: fileInfo.value.mimetype,\n\t\tbasename: fileInfo.value.name,\n\t\tfilename: fileInfo.value.path + '/' + fileInfo.value.name,\n\t\tpermissions: davPermissions,\n\t\tfileid: fileInfo.value.id,\n\t}\n})\n\nconst canView = computed(() => {\n\tif (fileInfo.value === null) {\n\t\treturn false\n\t}\n\n\treturn window.OCA.Viewer?.mimetypesCompare?.includes(fileInfo.value.mimetype)\n})\n\nconst canCompare = computed(() => {\n\treturn !isMobile.value\n})\n\nonMounted(() => {\n\tsubscribe('files_versions:restore:restored', fetchVersions)\n})\n\nonBeforeUnmount(() => {\n\tunsubscribe('files_versions:restore:restored', fetchVersions)\n})\n\ndefineExpose({\n\t/**\n\t * Update current fileInfo and fetch new data\n\t *\n\t * @param _fileInfo the current file FileInfo\n\t */\n\tasync update(_fileInfo: LegacyFileInfo) {\n\t\tfileInfo.value = _fileInfo\n\t\tresetState()\n\t\tinternalFetchVersions()\n\t},\n\n\t/**\n\t * @param _isActive whether the tab is active\n\t */\n\tasync setIsActive(_isActive: boolean) {\n\t\tisActive.value = _isActive\n\t},\n})\n\n/**\n * Get the existing versions infos\n */\nasync function internalFetchVersions() {\n\ttry {\n\t\tloading.value = true\n\t\tversions.value = await fetchVersions(fileInfo.value)\n\t} finally {\n\t\tloading.value = false\n\t}\n}\n\n/**\n * Handle restored event from Version.vue\n *\n * @param version The version to restore\n */\nasync function handleRestore(version: Version) {\n\t// Update local copy of fileInfo as rendering depends on it.\n\tconst oldFileInfo = fileInfo.value\n\tfileInfo.value = {\n\t\t...fileInfo.value,\n\t\tsize: version.size,\n\t\tmtime: version.mtime,\n\t}\n\n\tconst restoreStartedEventState = {\n\t\tpreventDefault: false,\n\t\tfileInfo: fileInfo.value,\n\t\tversion,\n\t}\n\temit('files_versions:restore:requested', restoreStartedEventState)\n\tif (restoreStartedEventState.preventDefault) {\n\t\treturn\n\t}\n\n\ttry {\n\t\tawait restoreVersion(version)\n\t\tif (version.label) {\n\t\t\tshowSuccess(t('files_versions', `${version.label} restored`))\n\t\t} else if (version.mtime === initialVersionMtime.value) {\n\t\t\tshowSuccess(t('files_versions', 'Initial version restored'))\n\t\t} else {\n\t\t\tshowSuccess(t('files_versions', 'Version restored'))\n\t\t}\n\t\temit('files_versions:restore:restored', version)\n\t} catch {\n\t\tfileInfo.value = oldFileInfo\n\t\tshowError(t('files_versions', 'Could not restore version'))\n\t\temit('files_versions:restore:failed', version)\n\t}\n}\n\n/**\n * Handle label-updated event from Version.vue\n *\n * @param version The version to update\n */\nfunction handleLabelUpdateRequest(version: Version) {\n\tshowVersionLabelForm.value = true\n\teditedVersion.value = version\n}\n\n/**\n * Handle label-updated event from Version.vue\n *\n * @param newLabel The new label\n */\nasync function handleLabelUpdate(newLabel: string) {\n\tif (editedVersion.value === null) {\n\t\tthrow new Error('editedVersion should be set at that point')\n\t}\n\n\tconst oldLabel = editedVersion.value.label\n\teditedVersion.value.label = newLabel\n\tshowVersionLabelForm.value = false\n\n\ttry {\n\t\tawait setVersionLabel(editedVersion.value, newLabel)\n\t\teditedVersion.value = null\n\t} catch (exception) {\n\t\teditedVersion.value!.label = oldLabel\n\t\tshowError(t('files_versions', 'Could not set version label'))\n\t\tlogger.error('Could not set version label', { exception })\n\t}\n}\n\n/**\n * Handle deleted event from Version.vue\n *\n * @param version The version to delete\n */\nasync function handleDelete(version: Version) {\n\tconst index = versions.value.indexOf(version)\n\tversions.value.splice(index, 1)\n\n\ttry {\n\t\tawait deleteVersion(version)\n\t} catch {\n\t\tversions.value.push(version)\n\t\tshowError(t('files_versions', 'Could not delete version'))\n\t}\n}\n\n/**\n * Reset the current view to its default state\n */\nfunction resetState() {\n\tversions.value = []\n}\n\nfunction openVersion({ version }: { version: Version }) {\n\tif (fileInfo.value === null) {\n\t\treturn\n\t}\n\n\t// Open current file view instead of read only\n\tif (version.mtime === fileInfo.value.mtime) {\n\t\twindow.OCA.Viewer.open({ fileInfo: viewerFileInfo.value })\n\t\treturn\n\t}\n\n\twindow.OCA.Viewer.open({\n\t\tfileInfo: {\n\t\t\t...version,\n\t\t\t// Versions previews are too small for our use case, so we override previewUrl\n\t\t\t// to either point to the original file or original version.\n\t\t\tfilename: version.mtime === fileInfo.value.mtime ? path.join('files', getCurrentUser()?.uid ?? '', fileInfo.value.path, fileInfo.value.name) : version.filename,\n\t\t\tpreviewUrl: undefined,\n\t\t},\n\t\tenableSidebar: false,\n\t})\n}\n\nfunction compareVersion({ version }: { version: Version }) {\n\tconst _versions = versions.value.map((version) => ({ ...version, previewUrl: undefined }))\n\n\twindow.OCA.Viewer.compare(viewerFileInfo.value, _versions.find((v) => v.source === version.source))\n}\n</script>\n\n<style lang=\"scss\">\n.versions-tab__container {\n\theight: 100%;\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { App, ComponentPublicInstance } from 'vue'\n\nimport BackupRestore from '@mdi/svg/svg/backup-restore.svg?raw'\nimport { t } from '@nextcloud/l10n'\nimport { createApp } from 'vue'\nimport FilesVersionsSidebarTab from './views/FilesVersionsSidebarTab.vue'\n\n// Init FilesVersions tab component\nlet filesVersionsTabApp: App<Element> | null = null\nlet filesVersionsTabInstance: ComponentPublicInstance<typeof FilesVersionsSidebarTab> | null = null\n\nwindow.addEventListener('DOMContentLoaded', function() {\n\tif (window.OCA.Files?.Sidebar === undefined) {\n\t\treturn\n\t}\n\n\twindow.OCA.Files.Sidebar.registerTab(new window.OCA.Files.Sidebar.Tab({\n\t\tid: 'files_versions',\n\t\tname: t('files_versions', 'Versions'),\n\t\ticonSvg: BackupRestore,\n\n\t\tasync mount(el, fileInfo) {\n\t\t\t// destroy previous instance if available\n\t\t\tif (filesVersionsTabApp) {\n\t\t\t\tfilesVersionsTabApp.unmount()\n\t\t\t}\n\t\t\tfilesVersionsTabApp = createApp(FilesVersionsSidebarTab)\n\t\t\tfilesVersionsTabInstance = filesVersionsTabApp.mount(el)\n\t\t\tfilesVersionsTabInstance.update(fileInfo)\n\t\t},\n\t\tupdate(fileInfo) {\n\t\t\tfilesVersionsTabInstance!.update(fileInfo)\n\t\t},\n\t\tsetIsActive(isActive) {\n\t\t\tfilesVersionsTabInstance?.setIsActive(isActive)\n\t\t},\n\t\tdestroy() {\n\t\t\tfilesVersionsTabApp?.unmount()\n\t\t\tfilesVersionsTabApp = null\n\t\t},\n\t\tenabled(fileInfo) {\n\t\t\treturn !(fileInfo?.isDirectory() ?? true)\n\t\t},\n\t}))\n})\n"],"names":["_sfc_main","defineComponent","_hoisted_1","__props","props","humanizedCount","computed","getCanonicalLocale","originalCountAsTitleIfNeeded","countAsString","_ctx","_cache","openBlock","createElementBlock","normalizeClass","toDisplayString","NcCounterBubble","_export_sfc","timeOptions","relativeTimeOptions","title","useFormatTime","toRef","relativeTime","useFormatRelativeTime","formattedTime","unref","NcActions","_sfc_main$1","value","newValue","event","navigate","routerLinkHref","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_sfc_render","$props","$setup","$data","$options","_component_NcCounterBubble","resolveComponent","_component_NcActions","createBlock","resolveDynamicComponent","normalizeProps","guardReactiveProps","withCtx","isActive","createElementVNode","mergeProps","args","$event","withKeys","renderSlot","createTextVNode","createCommentVNode","withDirectives","vShow","createVNode","createSlots","NcListItem","encodePath","path","joinPaths","nonEmptyArgs","arg","lastArg","leadingSlash","trailingSlash","sections","acc","section","first","BackupRestore$1","assertPath","normalizeStringPosix","allowAboveRoot","res","lastSegmentLength","lastSlash","dots","code","i","lastSlashIndex","_format","sep","pathObject","dir","base","posix","resolvedPath","resolvedAbsolute","cwd","process","isAbsolute","trailingSeparator","joined","from","to","fromStart","fromEnd","fromLen","toStart","toEnd","toLen","length","lastCommonSep","fromCode","toCode","out","hasRoot","end","matchedSlash","ext","start","extIdx","firstNonSlashEnd","startDot","startPart","preDotState","ret","pathBrowserify","loadState","app","key","fallback","elem","isPublicShare","getSharingToken","_defineProperty","obj","_classPrivateFieldInitSpec","privateMap","_checkPrivateRedeclaration","privateCollection","_classPrivateFieldGet","receiver","descriptor","_classExtractFieldDescriptor","_classApplyDescriptorGet","_classPrivateFieldSet","_classApplyDescriptorSet","action","toStringTag","_internals","_promise","CancelablePromiseInternal","_ref","executor","internals","defaultInternals","promise","resolve","reject","onCancel","onfulfilled","onrejected","makeCancelable","createCallback","onfinally","runWhenCanceled","callback","callbacks","err","CancelablePromise","iterable","makeAllCancelable","cancelable","reason","isCancelablePromise","onResult","result","resolvable","getLoggerBuilder","Permission","Permission2","getRootPath","getCurrentUser","getRemoteURL","url","generateRemoteUrl","debug_1","hasRequiredDebug","requireDebug","define_process_env_default","constants","hasRequiredConstants","requireConstants","SEMVER_SPEC_VERSION","MAX_LENGTH","MAX_SAFE_INTEGER","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","re","hasRequiredRe","requireRe","module","exports","debug","re2","safeRe","src","t2","R","LETTERDASHNUMBER","safeRegexReplacements","makeSafeRegex","token","max","createToken","name","isGlobal","safe","index","parseOptions_1","hasRequiredParseOptions","requireParseOptions","looseOption","emptyOpts","options","identifiers","hasRequiredIdentifiers","requireIdentifiers","numeric","compareIdentifiers","a2","b2","anum","bnum","semver","hasRequiredSemver","requireSemver","parseOptions","SemVer","version","m2","id","num","other","i2","release","identifier","identifierBase","prerelease","parse_1","hasRequiredParse","requireParse","throwErrors","er","valid_1","hasRequiredValid","requireValid","parse","v","major_1","hasRequiredMajor","requireMajor","loose","sax$1","hasRequiredSax","requireSax","sax2","strict","opt","SAXParser","SAXStream","createStream","buffers","parser","clearBuffers","S","rootNS","emit2","o","F2","newf","checkBufferLength","maxAllowed","maxActual","l2","len","closeText","emitNode","error","flushBuffers","write","Stream","streamWraps","ev","me","h2","data","Buffer","SD","require$$1","chunk","handler","CDATA","DOCTYPE","XML_NAMESPACE","XMLNS_NAMESPACE","nameStart","nameBody","entityStart","entityBody","isWhitespace","c2","isQuote","isAttribEnd","isMatch","regex","notMatch","e2","s3","s2","nodeType","textopts","text","strictFail","message","newTag","parent","tag","qname","attribute","qualName","prefix","local","attrib","qn","openTag","selfClosing","p2","nv","uri","closeTag","tagName","closeTo","close","x","n2","parseEntity","entity","entityLC","numStr","beginWhiteSpace","charAt","starti","pad","returnState","buffer","parsedEntity","stringFromCharCode","floor","fromCodePoint","MAX_SIZE","codeUnits","highSurrogate","lowSurrogate","codePoint","humanList","humanListBinary","formatFileSize","size","skipSmallSizes","binaryPrefixes","base1000","order","readableFormat","relativeSize","hookCallback","hooks","setHookCallback","isArray","input","isObject","hasOwnProp","a","b","isObjectEmpty","k","isUndefined","isNumber","isDate","map","arr","fn","arrLen","extend","createUTC","format","locale","createLocalOrUTC","defaultParsingFlags","getParsingFlags","m","some","fun","isValid","flags","parsedParts","isNowValid","createInvalid","momentProperties","updateInProgress","copyConfig","prop","val","momentPropertiesLen","Moment","config","isMoment","warn","msg","deprecate","firstTime","argLen","deprecations","deprecateSimple","isFunction","set","mergeConfigs","parentConfig","childConfig","Locale","keys","defaultCalendar","calendar","mom","now","output","zeroFill","number","targetLength","forceSign","absNumber","zerosToFill","sign","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","func","removeFormattingTokens","makeFormatFunction","array","formatMoment","expandFormat","replaceLongDateFormatTokens","defaultLongDateFormat","longDateFormat","formatUpper","tok","defaultInvalidDate","invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","defaultRelativeTime","withoutSuffix","string","isFuture","pastFuture","diff","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","getPrioritizedUnits","unitsObj","u","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","match1to2NoLeadingZero","match1to2HasZero","regexes","addRegexToken","strictRegex","isStrict","localeData","getParseRegexForToken","unescapeFormat","s","regexEscape","matched","p1","p3","p4","absFloor","toInt","argumentForCoercion","coercedNumber","tokens","addParseToken","tokenLen","addWeekParseToken","addTimeToArrayFromToken","isLeapYear","year","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","y","daysInYear","getSetYear","makeGetSet","getIsLeapYear","unit","keepTime","set$1","get","d","isUTC","month","date","stringGet","stringSet","prioritized","prioritizedLen","mod","n","indexOf","daysInMonth","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","localeMonthsShort","handleStrictParse","monthName","ii","llc","localeMonthsParse","setMonth","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","shortP","longP","createDate","h","M","ms","createUTCDate","firstWeekOffset","dow","doy","fwd","fwdlw","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","weekdays","localeWeekdaysShort","localeWeekdaysMin","handleStrictParse$1","weekdayName","localeWeekdaysParse","getSetDayOfWeek","day","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","weekdaysShortRegex","weekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","kFormat","meridiem","lowercase","matchMeridiem","kInput","pos","pos1","pos2","localeIsPM","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","hours","minutes","isLower","baseConfig","locales","localeFamilies","globalLocale","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","next","split","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","getSetGlobalLocale","values","getLocale","defineLocale","updateLocale","tmpLocale","listLocales","checkOverflow","overflow","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","rfc2822","obsOffsets","configFromISO","l","match","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","defaults","c","currentDateArray","nowValue","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","w","weekYear","temp","weekdayOverflow","curWeek","createLocal","skipped","stringLength","totalParsedInputLength","era","meridiemFixWrap","hour","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","configFromObject","dayOrDate","createFromConfig","prepareConfig","configFromInput","prototypeMin","prototypeMax","pickBy","moments","min","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","months","weeks","days","seconds","milliseconds","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","offsetFromString","chunkOffset","matcher","matches","parts","cloneWithOffset","model","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","createAdder","direction","period","dur","tmp","isAdding","updateOffset","add","subtract","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","properties","property","propertyLen","arrayTest","dataTypeTest","item","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","clone","isAfter","localInput","isBefore","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","toString","toISOString","keepOffset","utc","inspect","zone","datetime","suffix","inputString","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOf","startOfDate","endOf","valueOf","unix","toDate","toArray","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","localeEras","eras","localeErasParse","eraName","abbr","narrow","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","erasAbbrRegex","erasNarrowRegex","abbrPieces","namePieces","narrowPieces","erasName","erasAbbr","erasNarrow","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","getSetMillisecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","preParsePostFormat","proto$1","get$1","field","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","abs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","valueOf$1","clone$1","get$2","makeGetter","round","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","humanize","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","total","totalSign","ymSign","daysSign","hmsSign","proto$2","FUNC_ERROR_TEXT","HASH_UNDEFINED","funcTag","genTag","symbolTag","reIsDeepProp","reIsPlainProp","reLeadingDot","rePropName","reRegExpChar","reEscapeChar","reIsHostCtor","freeGlobal","global","freeSelf","root","getValue","object","isHostObject","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","uid","funcToString","hasOwnProperty","objectToString","reIsNative","Symbol","splice","Map","getNative","nativeCreate","symbolProto","symbolToString","Hash","entries","entry","hashClear","hashDelete","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","lastIndex","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","eq","baseGet","isKey","castPath","toKey","baseIsNative","isMasked","pattern","toSource","baseToString","isSymbol","stringToPath","isKeyable","type","memoize","quote","resolver","memoized","cache","isObjectLike","defaultValue","lodash_get","plurals","require$$0","gettext","Gettext","eventName","listener","eventData","domain","translations","msgid","msgidPlural","count","msgctxt","defaultTranslation","translation","pluralsFunc","check","it","globalThis_1","this","fails","exec","descriptors","functionBindNative","test","NATIVE_BIND","call","functionCall","$propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","objectPropertyIsEnumerable","V","createPropertyDescriptor","bitmap","FunctionPrototype","uncurryThisWithBind","functionUncurryThis","uncurryThis","stringSlice","classofRaw","classof","require$$2","$Object","indexedObject","isNullOrUndefined","$TypeError","requireObjectCoercible","IndexedObject","toIndexedObject","documentAll","isCallable","argument","globalThis","aFunction","getBuiltIn","namespace","method","objectIsPrototypeOf","navigator","userAgent","environmentUserAgent","Deno","versions","v8","environmentV8Version","V8_VERSION","$String","symbolConstructorDetection","symbol","NATIVE_SYMBOL","useSymbolAsUid","isPrototypeOf","USE_SYMBOL_AS_UID","require$$3","$Symbol","tryToString","aCallable","getMethod","P","ordinaryToPrimitive","pref","isPure","defineProperty","defineGlobalProperty","IS_PURE","SHARED","store","sharedStoreModule","shared","hasOwnProperty_1","postfix","hasOwn","require$$4","require$$5","WellKnownSymbolsStore","createWellKnownSymbol","wellKnownSymbol","TO_PRIMITIVE","toPrimitive","exoticToPrim","toPropertyKey","document","EXISTS","documentCreateElement","DESCRIPTORS","createElement","ie8DomDefine","propertyIsEnumerableModule","require$$6","IE8_DOM_DEFINE","require$$7","$getOwnPropertyDescriptor","objectGetOwnPropertyDescriptor","O","v8PrototypeDefineBug","anObject","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","objectDefineProperty","Attributes","current","definePropertyModule","createNonEnumerableProperty","getDescriptor","PROPER","functionName","functionToString","inspectSource","WeakMap","weakMapBasicDetection","sharedKey","hiddenKeys","NATIVE_WEAK_MAP","OBJECT_ALREADY_INITIALIZED","TypeError","has","enforce","getterFor","TYPE","state","metadata","STATE","internalState","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","replace","join","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","defineBuiltIn","simple","ceil","mathTrunc","trunc","toIntegerOrInfinity","toAbsoluteIndex","integer","toLength","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","push","objectKeysInternal","enumBugKeys","internalObjectKeys","objectGetOwnPropertyNames","objectGetOwnPropertySymbols","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","concat","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptorModule","copyConstructorProperties","target","source","exceptions","replacement","isForced","feature","detection","normalize","POLYFILL","NATIVE","isForced_1","_export","TARGET","GLOBAL","STATIC","FORCED","targetProperty","sourceProperty","$","TO_STRING_TAG","toStringTagSupport","TO_STRING_TAG_SUPPORT","CORRECT_ARGUMENTS","tryGet","regexpFlags","$RegExp","UNSUPPORTED_Y","MISSED_STICKY","BROKEN_CARET","regexpStickyHelpers","objectKeys","objectDefineProperties","Properties","html","definePropertiesModule","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","NullProtoObject","objectCreate","regexpUnsupportedDotAll","regexpUnsupportedNcg","stickyHelpers","create","UNSUPPORTED_DOT_ALL","require$$8","UNSUPPORTED_NCG","require$$9","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","NPCG_INCLUDED","PATCH","str","raw","reCopy","group","groups","sticky","charsAdded","strCopy","regexpExec","apply","functionApply","SPECIES","RegExpPrototype","fixRegexpWellKnownSymbolLogic","KEY","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","methods","nativeMethod","regexp","arg2","forceStringMethod","$exec","charCodeAt","CONVERT_TO_STRING","position","second","stringMultibyte","advanceStringIndex","unicode","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","getSubstitution","captures","namedCaptures","tailPos","symbols","ch","capture","f","RegExp","FLAGS_GETTER_IS_CORRECT","INDICES_SUPPORT","calls","expected","addGetter","chr","pairs","regexpFlagsDetection","regExpFlagsDetection","regExpFlagsGetterImplementation","regexpGetFlags","regexpExecAbstract","fixRegExpWellKnownSymbolLogic","require$$10","require$$11","require$$12","require$$13","require$$14","getRegExpFlags","require$$15","regExpExec","require$$16","require$$17","REPLACE","stringIndexOf","maybeToString","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","_","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","rx","functionalReplace","fullUnicode","results","matchStr","accumulatedResult","nextSourcePosition","replacerArgs","dist","getDayNames","getDayNamesMin","getDayNamesShort","getFirstDay","getLanguage","getMonthNames","getMonthNamesShort","translate","translatePlural","vars","textSingular","textPlural","e","t","r","_createElementBlock","_mergeProps","_createElementVNode","_openBlock","emit","__emit","hasPermission","permissions","permission","previewLoaded","ref","previewErrored","capabilities","humanReadableSize","versionLabel","label","versionAuthor","versionHumanExplicitDate","moment","downloadURL","getRootUrl","enableLabeling","enableDeletion","hasDeletePermissions","hasUpdatePermissions","isDownloadable","labelUpdate","restoreVersion","deleteVersion","nextTick","click","compareVersion","_createBlock","_unref","_createVNode","ImageOffOutline","NcAvatar","NcDateTime","NcActionButton","Pencil","_createTextVNode","FileCompare","BackupRestore","NcActionLink","Download","Delete","labelInput","useTemplateRef","internalLabel","dialogButtons","buttons","setVersionLabel","svgCheck","watchEffect","NcDialog","$emit","NcTextField","_toDisplayString","logger","containerHeight","containerTop","containerBottom","currentRowTop","currentRowBottom","visibleSections","visibleRows","row","distance","visibleItems","rows","items","rowIdToKeyMap","usedTokens","unusedTokens","finalMapping","totalHeight","sectionHeight","paddingTop","currentRowTopDistanceFromTop","cr","_normalizeStyle","_renderSlot","rootPath","remote","client","createClient","setHeaders","onRequestTokenUpdate","getRequestToken","davRequest","fetchVersions","fileInfo","mime","formatVersion","authorIds","authors","axios","generateUrl","author","exception","mtime","previewUrl","newLabel","isMobile","useIsMobile","loading","showVersionLabelForm","editedVersion","orderedVersions","initialVersionMtime","viewerFileInfo","davPermissions","canView","canCompare","onMounted","subscribe","onBeforeUnmount","unsubscribe","__expose","_fileInfo","resetState","internalFetchVersions","_isActive","handleRestore","oldFileInfo","restoreStartedEventState","showSuccess","showError","handleLabelUpdateRequest","handleLabelUpdate","oldLabel","handleDelete","openVersion","_versions","VirtualScrolling","_withCtx","_Fragment","_renderList","VersionEntry","NcLoadingIcon","VersionLabelDialog","filesVersionsTabApp","filesVersionsTabInstance","createApp","FilesVersionsSidebarTab"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109]}