{"version":3,"file":"application.js","mappings":"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","sources":["webpack:///webpack/runtime/create fake namespace object","webpack:///./app/javascript/controllers/contact/addon/group_controller.js","webpack:///./app/javascript/controllers/contact/addon/page_controller.js","webpack:///./app/javascript/controllers/example_controller.js","webpack:///./app/javascript/controllers/ss/form_clearer_controller.js","webpack:///./app/javascript/controllers/ss/isolate_radio_controller.js","webpack:///./app/javascript/controllers/ss/select_with_description_controller.js","webpack:///./app/javascript/controllers/ sync \\.js$","webpack:///./app/javascript/initializers/document_ready.js","webpack:///./node_modules/i18next-http-backend/esm/utils.js","webpack:///./node_modules/i18next-http-backend/esm/request.js","webpack:///./node_modules/i18next-http-backend/esm/index.js","webpack:///./app/javascript/initializers/i18next_initializer.js","webpack:///./app/javascript/initializers/jquery_ready.js","webpack:///./app/javascript/initializers/stimulus_initializer.js","webpack:///./node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","webpack:///./app/javascript/initializers/ sync \\.js$/","webpack:///./app/javascript/ss/initializer.js","webpack:///./node_modules/@hotwired/stimulus/dist/stimulus.js","webpack:///./node_modules/cross-fetch/dist/browser-ponyfill.js","webpack:///./node_modules/i18next-multiload-backend-adapter/dist/commonjs/index.js","webpack:///./node_modules/i18next-multiload-backend-adapter/dist/commonjs/utils.js","webpack:///./node_modules/i18next-multiload-backend-adapter/index.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/bn-bd.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/en-in.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/en-sg.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/es-mx.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/fil.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/moment/locale/gom-deva.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/oc-lnc.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/se.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/moment/locale/tk.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/moment/locale/zh-mo.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/i18next-http-backend/esm/getFetch.cjs","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/i18next/dist/esm/i18next.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/node module decorator","webpack:///./node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js","webpack:///./app/javascript/application.js"],"sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n initialize() {\n }\n\n connect() {\n const $table = $(this.element).find(\".contact-groups-table\");\n if ($table[0]) {\n this.bind();\n }\n }\n\n disconnect() {\n }\n\n bind() {\n this.element.addEventListener(\"click\", (ev) => {\n if (ev.target.classList.contains(\"btn-add\")) {\n this.addRow(ev)\n }\n if (ev.target.classList.contains(\"btn-delete\")) {\n this.deleteRow(ev)\n }\n })\n }\n\n addRow(_ev) {\n const template = this.element.querySelector(\"#new-contact-group-row\")\n const $newRow = $(template.innerHTML)\n\n const $table = $(this.element).find(\".contact-groups-table\")\n $table.find(\"tbody\").append($newRow)\n }\n\n deleteRow(ev) {\n const $tr = $(ev.target).closest(\"tr\")\n if ($tr.data(\"id\") !== \"new\") {\n $tr.remove()\n return\n }\n\n if ($tr.closest(\"table\").find(\"[data-id='new']\").length > 1) {\n $tr.remove()\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport i18next from 'i18next'\n\nconst CONTACT_ATTRIBUTES = [\n \"contact_charge\", \"contact_tel\", \"contact_fax\", \"contact_email\", \"contact_link_url\", \"contact_link_name\"\n]\n\nexport default class extends Controller {\n initialize() {\n }\n\n connect() {\n const $el = $(this.element)\n $el.find(\".ajax-box\").data(\"on-select\", ($item) => this.selectItem($item))\n $el.find(\"[name=\\\"item[contact_group_relation]\\\"]\").on(\"change\", (ev) => this.changeGroupRelation(ev))\n }\n\n disconnect() {\n }\n\n selectItem($item) {\n SS_SearchUI.defaultSelector($item)\n\n const $el = $(this.element)\n const $data = $item.closest(\"[data-id]\")\n\n const contactGroupRelation = $el.find(\"[name=\\\"item[contact_group_relation]\\\"]\").val()\n if (contactGroupRelation === \"unrelated\") {\n SS.notice(i18next.t(\"contact.notices.unchanged_contacts\"))\n return\n }\n\n const groupName = $data.data(\"contact-group-name\")\n $el.find('[name=\"item[contact_charge]\"]').val(groupName || '');\n\n const tel = $data.data(\"contact-tel\")\n $el.find('[name=\"item[contact_tel]\"]').val(tel || '');\n\n const fax = $data.data(\"contact-fax\")\n $el.find('[name=\"item[contact_fax]\"]').val(fax || '');\n\n const email = $data.data(\"contact-email\");\n $el.find('[name=\"item[contact_email]\"]').val(email || '');\n\n const linkUrl = $data.data(\"contact-link-url\");\n $el.find('[name=\"item[contact_link_url]\"]').val(linkUrl || '');\n\n const linkName = $data.data(\"contact-link-name\");\n $el.find('[name=\"item[contact_link_name]\"]').val(linkName || '');\n }\n\n changeGroupRelation(ev) {\n const $el = $(this.element)\n const disabled = ev.target.value === \"related\"\n\n CONTACT_ATTRIBUTES.forEach((item) => {\n $el.find(`[name=\"item[${item}]\"]`).prop(\"disabled\", disabled)\n })\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n initialize() {\n console.log(\"example#initialize\")\n }\n\n connect() {\n console.log(\"example#connect\")\n }\n\n disconnect() {\n console.log(\"example#disconnect\")\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nfunction isAncestor(parent, element) {\n while (element && element !== document.body && element !== document) {\n if (parent === element) {\n return true;\n }\n\n element = element.parentElement\n }\n\n return false\n}\n\nexport default class extends Controller {\n clear() {\n const form = this.element.closest(\"form\")\n Array.from(form.elements).forEach(element => {\n if (isAncestor(this.element, element)) {\n if ('type' in element && (element.type === \"radio\" || element.type === \"checkbox\" || element.type === \"button\" || element.type === \"submit\" || element.type === \"reset\")) {\n console.log(element)\n element.checked = false;\n } else {\n element.value = null\n }\n }\n })\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nconst instances = []\n\nexport default class extends Controller {\n static values = { targetName: String, radioName: String }\n\n connect() {\n if (!this.targetNameValue) {\n return\n }\n if (!this.radioNameValue) {\n return\n }\n\n this.targetElement = this.element.querySelector(`[name='${this.targetNameValue}']`)\n if (!this.targetElement) {\n return\n }\n\n this.radioElement = this.element.querySelector(`[name='${this.radioNameValue}']`)\n if (!this.radioElement) {\n return\n }\n\n this.radioElement.addEventListener(\"change\", () => {\n this.update()\n instances.forEach((e) => {\n if (e.radioNameValue === this.radioNameValue && e !== this) {\n e.update()\n }\n })\n });\n\n instances.push(this)\n this.update()\n }\n\n disconnect() {\n const found = instances.find((e) => e === this)\n if (found < 0) {\n return\n }\n\n instances.split(found, 1)\n }\n\n update() {\n if (this.radioElement.checked) {\n this.checked()\n } else {\n this.unchecked()\n }\n }\n\n checked() {\n if (!this.targetElement) {\n return\n }\n this.targetElement.value = this.radioElement.value\n }\n\n unchecked() {\n if (!this.targetElement) {\n return\n }\n this.targetElement.value = null\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n initialize() {\n }\n\n connect() {\n const selectElement = this.element.querySelector(\"select\")\n if (selectElement) {\n selectElement.addEventListener(\"change\", (ev) => this.updateDescription(selectElement))\n this.updateDescription(selectElement)\n }\n }\n\n disconnect() {\n }\n\n updateDescription(selectElement) {\n if (selectElement.selectedIndex < 0) {\n this.hideDescription(this.element.querySelector(\".description\"))\n return\n }\n\n const selectedOption = selectElement.options[selectElement.selectedIndex]\n if (!selectedOption) {\n this.hideDescription(this.element.querySelector(\".description\"))\n return\n }\n\n if (selectedOption.dataset.description) {\n this.showDescription(this.element.querySelector(\".description\"), selectedOption.dataset.description)\n } else {\n this.hideDescription(this.element.querySelector(\".description\"))\n }\n }\n\n showDescription(el, description) {\n el.classList.remove(\"hide\")\n el.textContent = description\n }\n\n hideDescription(el) {\n el.classList.add(\"hide\")\n el.textContent = \"\"\n }\n}\n","var map = {\n\t\"./contact/addon/group_controller.js\": 2532,\n\t\"./contact/addon/page_controller.js\": 2247,\n\t\"./example_controller.js\": 3324,\n\t\"./ss/form_clearer_controller.js\": 9878,\n\t\"./ss/isolate_radio_controller.js\": 3870,\n\t\"./ss/select_with_description_controller.js\": 3490\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 3857;","import Initializer from \"../ss/initializer\"\n\nexport default class extends Initializer {\n initialize() {\n return new Promise(resolve => {\n window.addEventListener('DOMContentLoaded', () => {\n resolve()\n })\n })\n }\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nexport function defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nexport function hasXMLHttpRequest() {\n return typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object';\n}\n\nfunction isPromise(maybePromise) {\n return !!maybePromise && typeof maybePromise.then === 'function';\n}\n\nexport function makePromise(maybePromise) {\n if (isPromise(maybePromise)) {\n return maybePromise;\n }\n return Promise.resolve(maybePromise);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport { defaults, hasXMLHttpRequest } from './utils.js';\nimport * as fetchNode from './getFetch.cjs';\nvar fetchApi;\nif (typeof fetch === 'function') {\n if (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch;\n } else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch;\n } else {\n fetchApi = fetch;\n }\n}\nvar XmlHttpRequestApi;\nif (hasXMLHttpRequest()) {\n if (typeof global !== 'undefined' && global.XMLHttpRequest) {\n XmlHttpRequestApi = global.XMLHttpRequest;\n } else if (typeof window !== 'undefined' && window.XMLHttpRequest) {\n XmlHttpRequestApi = window.XMLHttpRequest;\n }\n}\nvar ActiveXObjectApi;\nif (typeof ActiveXObject === 'function') {\n if (typeof global !== 'undefined' && global.ActiveXObject) {\n ActiveXObjectApi = global.ActiveXObject;\n } else if (typeof window !== 'undefined' && window.ActiveXObject) {\n ActiveXObjectApi = window.ActiveXObject;\n }\n}\nif (!fetchApi && fetchNode && !XmlHttpRequestApi && !ActiveXObjectApi) fetchApi = fetchNode.default || fetchNode;\nif (typeof fetchApi !== 'function') fetchApi = undefined;\nvar addQueryString = function addQueryString(url, params) {\n if (params && _typeof(params) === 'object') {\n var queryString = '';\n for (var paramName in params) {\n queryString += '&' + encodeURIComponent(paramName) + '=' + encodeURIComponent(params[paramName]);\n }\n if (!queryString) return url;\n url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);\n }\n return url;\n};\nvar fetchIt = function fetchIt(url, fetchOptions, callback) {\n fetchApi(url, fetchOptions).then(function (response) {\n if (!response.ok) return callback(response.statusText || 'Error', {\n status: response.status\n });\n response.text().then(function (data) {\n callback(null, {\n status: response.status,\n data: data\n });\n }).catch(callback);\n }).catch(callback);\n};\nvar omitFetchOptions = false;\n\nvar requestWithFetch = function requestWithFetch(options, url, payload, callback) {\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n var headers = defaults({}, typeof options.customHeaders === 'function' ? options.customHeaders() : options.customHeaders);\n if (payload) headers['Content-Type'] = 'application/json';\n var reqOptions = typeof options.requestOptions === 'function' ? options.requestOptions(payload) : options.requestOptions;\n var fetchOptions = defaults({\n method: payload ? 'POST' : 'GET',\n body: payload ? options.stringify(payload) : undefined,\n headers: headers\n }, omitFetchOptions ? {} : reqOptions);\n try {\n fetchIt(url, fetchOptions, callback);\n } catch (e) {\n if (!reqOptions || Object.keys(reqOptions).length === 0 || !e.message || e.message.indexOf('not implemented') < 0) {\n return callback(e);\n }\n try {\n Object.keys(reqOptions).forEach(function (opt) {\n delete fetchOptions[opt];\n });\n fetchIt(url, fetchOptions, callback);\n omitFetchOptions = true;\n } catch (err) {\n callback(err);\n }\n }\n};\n\nvar requestWithXmlHttpRequest = function requestWithXmlHttpRequest(options, url, payload, callback) {\n if (payload && _typeof(payload) === 'object') {\n payload = addQueryString('', payload).slice(1);\n }\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n try {\n var x;\n if (XmlHttpRequestApi) {\n x = new XmlHttpRequestApi();\n } else {\n x = new ActiveXObjectApi('MSXML2.XMLHTTP.3.0');\n }\n x.open(payload ? 'POST' : 'GET', url, 1);\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n x.withCredentials = !!options.withCredentials;\n if (payload) {\n x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n if (x.overrideMimeType) {\n x.overrideMimeType('application/json');\n }\n var h = options.customHeaders;\n h = typeof h === 'function' ? h() : h;\n if (h) {\n for (var i in h) {\n x.setRequestHeader(i, h[i]);\n }\n }\n x.onreadystatechange = function () {\n x.readyState > 3 && callback(x.status >= 400 ? x.statusText : null, {\n status: x.status,\n data: x.responseText\n });\n };\n x.send(payload);\n } catch (e) {\n console && console.log(e);\n }\n};\nvar request = function request(options, url, payload, callback) {\n if (typeof payload === 'function') {\n callback = payload;\n payload = undefined;\n }\n callback = callback || function () {};\n if (fetchApi) {\n return requestWithFetch(options, url, payload, callback);\n }\n if (hasXMLHttpRequest() || typeof ActiveXObject === 'function') {\n return requestWithXmlHttpRequest(options, url, payload, callback);\n }\n callback(new Error('No fetch and no xhr implementation found!'));\n};\nexport default request;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _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; }\nimport { defaults, makePromise } from './utils.js';\nimport request from './request.js';\nvar getDefaults = function getDefaults() {\n return {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n addPath: '/locales/add/{{lng}}/{{ns}}',\n allowMultiLoading: false,\n parse: function parse(data) {\n return JSON.parse(data);\n },\n stringify: JSON.stringify,\n parsePayload: function parsePayload(namespace, key, fallbackValue) {\n return _defineProperty({}, key, fallbackValue || '');\n },\n request: request,\n reloadInterval: typeof window !== 'undefined' ? false : 60 * 60 * 1000,\n customHeaders: {},\n queryStringParams: {},\n crossDomain: false,\n withCredentials: false,\n overrideMimeType: false,\n requestOptions: {\n mode: 'cors',\n credentials: 'same-origin',\n cache: 'default'\n }\n };\n};\nvar Backend = function () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n _classCallCheck(this, Backend);\n this.services = services;\n this.options = options;\n this.allOptions = allOptions;\n this.type = 'backend';\n this.init(services, options, allOptions);\n }\n _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var _this = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n this.allOptions = allOptions;\n if (this.services && this.options.reloadInterval) {\n setInterval(function () {\n return _this.reload();\n }, this.options.reloadInterval);\n }\n }\n }, {\n key: \"readMulti\",\n value: function readMulti(languages, namespaces, callback) {\n this._readAny(languages, languages, namespaces, namespaces, callback);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n this._readAny([language], language, [namespace], namespace, callback);\n }\n }, {\n key: \"_readAny\",\n value: function _readAny(languages, loadUrlLanguages, namespaces, loadUrlNamespaces, callback) {\n var _this2 = this;\n var loadPath = this.options.loadPath;\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath(languages, namespaces);\n }\n loadPath = makePromise(loadPath);\n loadPath.then(function (resolvedLoadPath) {\n if (!resolvedLoadPath) return callback(null, {});\n var url = _this2.services.interpolator.interpolate(resolvedLoadPath, {\n lng: languages.join('+'),\n ns: namespaces.join('+')\n });\n _this2.loadUrl(url, callback, loadUrlLanguages, loadUrlNamespaces);\n });\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(url, callback, languages, namespaces) {\n var _this3 = this;\n this.options.request(this.options, url, undefined, function (err, res) {\n if (res && (res.status >= 500 && res.status < 600 || !res.status)) return callback('failed loading ' + url + '; status code: ' + res.status, true);\n if (res && res.status >= 400 && res.status < 500) return callback('failed loading ' + url + '; status code: ' + res.status, false);\n if (!res && err && err.message && err.message.indexOf('Failed to fetch') > -1) return callback('failed loading ' + url + ': ' + err.message, true);\n if (err) return callback(err, false);\n var ret, parseErr;\n try {\n if (typeof res.data === 'string') {\n ret = _this3.options.parse(res.data, languages, namespaces);\n } else {\n ret = res.data;\n }\n } catch (e) {\n parseErr = 'failed parsing ' + url + ' to json';\n }\n if (parseErr) return callback(parseErr, false);\n callback(null, ret);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue, callback) {\n var _this4 = this;\n if (!this.options.addPath) return;\n if (typeof languages === 'string') languages = [languages];\n var payload = this.options.parsePayload(namespace, key, fallbackValue);\n var finished = 0;\n var dataArray = [];\n var resArray = [];\n languages.forEach(function (lng) {\n var addPath = _this4.options.addPath;\n if (typeof _this4.options.addPath === 'function') {\n addPath = _this4.options.addPath(lng, namespace);\n }\n var url = _this4.services.interpolator.interpolate(addPath, {\n lng: lng,\n ns: namespace\n });\n _this4.options.request(_this4.options, url, payload, function (data, res) {\n finished += 1;\n dataArray.push(data);\n resArray.push(res);\n if (finished === languages.length) {\n if (callback) callback(dataArray, resArray);\n }\n });\n });\n }\n }, {\n key: \"reload\",\n value: function reload() {\n var _this5 = this;\n var _this$services = this.services,\n backendConnector = _this$services.backendConnector,\n languageUtils = _this$services.languageUtils,\n logger = _this$services.logger;\n var currentLanguage = backendConnector.language;\n if (currentLanguage && currentLanguage.toLowerCase() === 'cimode') return;\n\n var toLoad = [];\n var append = function append(lng) {\n var lngs = languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n append(currentLanguage);\n if (this.allOptions.preload) this.allOptions.preload.forEach(function (l) {\n return append(l);\n });\n toLoad.forEach(function (lng) {\n _this5.allOptions.ns.forEach(function (ns) {\n backendConnector.read(lng, ns, 'read', null, null, function (err, data) {\n if (err) logger.warn(\"loading namespace \".concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) logger.log(\"loaded namespace \".concat(ns, \" for language \").concat(lng), data);\n backendConnector.loaded(\"\".concat(lng, \"|\").concat(ns), err, data);\n });\n });\n });\n }\n }]);\n return Backend;\n}();\nBackend.type = 'backend';\nexport default Backend;","import Initializer from \"../ss/initializer\"\nimport i18next from 'i18next'\nimport MultiLoad from 'i18next-multiload-backend-adapter'\nimport Http from 'i18next-http-backend'\nimport moment from \"moment/moment\"\n\nconst LOAD_PATH = '/.mypage/locales/default/{{lng}}/{{ns}}.json'\n\nfunction initializeI18nextViaRemote(resolve, reject) {\n i18next\n .use(MultiLoad)\n .init({\n backend: {\n backend: Http,\n backendOption: {\n loadPath: LOAD_PATH,\n //addPath: '/.mypage/locales/fallback/{{lng}}/{{ns}}.json',\n allowMultiLoading: true\n }\n },\n fallbackLng: AVAILABLE_LOCALES\n }, (err, _t) => {\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n}\n\nfunction initializeI18nextViaLocal(resolve, reject) {\n i18next.init({\n resources: I18NEXT_RESOURCES,\n fallbackLng: AVAILABLE_LOCALES\n }, (err, _t) => {\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n}\n\nexport default class extends Initializer {\n initialize() {\n return new Promise((resolve, reject) => {\n if (RAILS_ENV === \"production\") {\n initializeI18nextViaLocal(resolve, reject)\n } else {\n initializeI18nextViaRemote(resolve, reject)\n }\n })\n }\n\n afterInitialize() {\n i18next.changeLanguage(document.documentElement.lang || 'ja')\n moment.locale(document.documentElement.lang || 'ja');\n\n window.i18next = i18next\n window.moment = moment\n\n return Promise.resolve()\n }\n}\n","import Initializer from \"../ss/initializer\"\n\nexport default class extends Initializer {\n initialize() {\n if (\"jQuery\" in window) {\n if (jQuery.isReady) {\n return Promise.resolve()\n } else {\n return new Promise(resolve => {\n jQuery(() => {\n resolve()\n })\n })\n }\n } else {\n return Promise.resolve()\n }\n }\n}\n","import Initializer from \"../ss/initializer\"\nimport { Application } from \"@hotwired/stimulus\"\nimport { definitionsFromContext } from \"@hotwired/stimulus-webpack-helpers\"\n\nexport default class extends Initializer {\n initialize() {\n return Promise.resolve()\n }\n\n afterInitialize() {\n const application = new Application()\n const ret = application.start()\n const context = require.context(\"../controllers\", true, /\\.js$/)\n application.load(definitionsFromContext(context))\n\n ret.then(() => console.log(\"stimulus is started\"))\n\n return ret\n }\n}\n","/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","var map = {\n\t\"./document_ready.js\": 1887,\n\t\"./i18next_initializer.js\": 1687,\n\t\"./jquery_ready.js\": 9418,\n\t\"./stimulus_initializer.js\": 9298\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 70;","export default class Initializer {\n static #initialized = false\n static #initializers = []\n static #lazy\n\n static register(constructor) {\n Initializer.#initializers.push(constructor)\n }\n\n static load(context) {\n context.keys().forEach(key => {\n const module = context(key)\n const constructor = module.default\n if (typeof constructor == \"function\") {\n Initializer.register(constructor)\n } else {\n console.info(`${key}: there isn't constructor`)\n }\n })\n }\n\n static initialize() {\n if (Initializer.#initialized) {\n return Promise.resolve()\n }\n if (Initializer.#lazy) {\n return Initializer.#lazy\n }\n\n const instances = []\n Initializer.#initializers.forEach(constructor => {\n instances.push(new constructor())\n })\n\n const promises = []\n instances.forEach(instance => {\n promises.push(instance.initialize())\n })\n\n Initializer.#lazy = new Promise((resolve, reject) => {\n Promise.all(promises)\n .then(() => {\n promises.length = 0\n instances.forEach(instance => {\n promises.push(instance.afterInitialize())\n })\n return Promise.all(promises)\n })\n .then(() => {\n Initializer.#initialized = true\n resolve()\n })\n .catch(err => reject(err))\n })\n\n return Initializer.#lazy\n }\n\n static ready(handler) {\n Initializer.initialize().then(handler)\n }\n\n initialize() {\n return Promise.resolve()\n }\n\n afterInitialize() {\n return Promise.resolve()\n }\n}\n","/*\nStimulus 3.1.1\nCopyright © 2022 Basecamp, LLC\n */\nclass EventListener {\n constructor(eventTarget, eventName, eventOptions) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n connect() {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n }\n disconnect() {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n }\n bindingConnected(binding) {\n this.unorderedBindings.add(binding);\n }\n bindingDisconnected(binding) {\n this.unorderedBindings.delete(binding);\n }\n handleEvent(event) {\n const extendedEvent = extendEvent(event);\n for (const binding of this.bindings) {\n if (extendedEvent.immediatePropagationStopped) {\n break;\n }\n else {\n binding.handleEvent(extendedEvent);\n }\n }\n }\n hasBindings() {\n return this.unorderedBindings.size > 0;\n }\n get bindings() {\n return Array.from(this.unorderedBindings).sort((left, right) => {\n const leftIndex = left.index, rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n }\n}\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n }\n else {\n const { stopImmediatePropagation } = event;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation.call(this);\n },\n });\n }\n}\n\nclass Dispatcher {\n constructor(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach((eventListener) => eventListener.connect());\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach((eventListener) => eventListener.disconnect());\n }\n }\n get eventListeners() {\n return Array.from(this.eventListenerMaps.values()).reduce((listeners, map) => listeners.concat(Array.from(map.values())), []);\n }\n bindingConnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n }\n bindingDisconnected(binding, clearEventListeners = false) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n if (clearEventListeners)\n this.clearEventListenersForBinding(binding);\n }\n handleError(error, message, detail = {}) {\n this.application.handleError(error, `Error ${message}`, detail);\n }\n clearEventListenersForBinding(binding) {\n const eventListener = this.fetchEventListenerForBinding(binding);\n if (!eventListener.hasBindings()) {\n eventListener.disconnect();\n this.removeMappedEventListenerFor(binding);\n }\n }\n removeMappedEventListenerFor(binding) {\n const { eventTarget, eventName, eventOptions } = binding;\n const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n const cacheKey = this.cacheKey(eventName, eventOptions);\n eventListenerMap.delete(cacheKey);\n if (eventListenerMap.size == 0)\n this.eventListenerMaps.delete(eventTarget);\n }\n fetchEventListenerForBinding(binding) {\n const { eventTarget, eventName, eventOptions } = binding;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n }\n fetchEventListener(eventTarget, eventName, eventOptions) {\n const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n const cacheKey = this.cacheKey(eventName, eventOptions);\n let eventListener = eventListenerMap.get(cacheKey);\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n return eventListener;\n }\n createEventListener(eventTarget, eventName, eventOptions) {\n const eventListener = new EventListener(eventTarget, eventName, eventOptions);\n if (this.started) {\n eventListener.connect();\n }\n return eventListener;\n }\n fetchEventListenerMapForEventTarget(eventTarget) {\n let eventListenerMap = this.eventListenerMaps.get(eventTarget);\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n return eventListenerMap;\n }\n cacheKey(eventName, eventOptions) {\n const parts = [eventName];\n Object.keys(eventOptions)\n .sort()\n .forEach((key) => {\n parts.push(`${eventOptions[key] ? \"\" : \"!\"}${key}`);\n });\n return parts.join(\":\");\n }\n}\n\nconst defaultActionDescriptorFilters = {\n stop({ event, value }) {\n if (value)\n event.stopPropagation();\n return true;\n },\n prevent({ event, value }) {\n if (value)\n event.preventDefault();\n return true;\n },\n self({ event, value, element }) {\n if (value) {\n return element === event.target;\n }\n else {\n return true;\n }\n },\n};\nconst descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;\nfunction parseActionDescriptorString(descriptorString) {\n const source = descriptorString.trim();\n const matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n eventOptions: matches[9] ? parseEventOptions(matches[9]) : {},\n identifier: matches[5],\n methodName: matches[7],\n };\n}\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n }\n else if (eventTargetName == \"document\") {\n return document;\n }\n}\nfunction parseEventOptions(eventOptions) {\n return eventOptions\n .split(\":\")\n .reduce((options, token) => Object.assign(options, { [token.replace(/^!/, \"\")]: !/^!/.test(token) }), {});\n}\nfunction stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n }\n else if (eventTarget == document) {\n return \"document\";\n }\n}\n\nfunction camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, (_, char) => char.toUpperCase());\n}\nfunction capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, (_, char) => `-${char.toLowerCase()}`);\n}\nfunction tokenize(value) {\n return value.match(/[^\\s]+/g) || [];\n}\n\nclass Action {\n constructor(element, index, descriptor) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n static forToken(token) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content));\n }\n toString() {\n const eventNameSuffix = this.eventTargetName ? `@${this.eventTargetName}` : \"\";\n return `${this.eventName}${eventNameSuffix}->${this.identifier}#${this.methodName}`;\n }\n get params() {\n const params = {};\n const pattern = new RegExp(`^data-${this.identifier}-(.+)-param$`, \"i\");\n for (const { name, value } of Array.from(this.element.attributes)) {\n const match = name.match(pattern);\n const key = match && match[1];\n if (key) {\n params[camelize(key)] = typecast(value);\n }\n }\n return params;\n }\n get eventTargetName() {\n return stringifyEventTarget(this.eventTarget);\n }\n}\nconst defaultEventNames = {\n a: () => \"click\",\n button: () => \"click\",\n form: () => \"submit\",\n details: () => \"toggle\",\n input: (e) => (e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\"),\n select: () => \"change\",\n textarea: () => \"input\",\n};\nfunction getDefaultEventNameForElement(element) {\n const tagName = element.tagName.toLowerCase();\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\nfunction error(message) {\n throw new Error(message);\n}\nfunction typecast(value) {\n try {\n return JSON.parse(value);\n }\n catch (o_O) {\n return value;\n }\n}\n\nclass Binding {\n constructor(context, action) {\n this.context = context;\n this.action = action;\n }\n get index() {\n return this.action.index;\n }\n get eventTarget() {\n return this.action.eventTarget;\n }\n get eventOptions() {\n return this.action.eventOptions;\n }\n get identifier() {\n return this.context.identifier;\n }\n handleEvent(event) {\n if (this.willBeInvokedByEvent(event) && this.applyEventModifiers(event)) {\n this.invokeWithEvent(event);\n }\n }\n get eventName() {\n return this.action.eventName;\n }\n get method() {\n const method = this.controller[this.methodName];\n if (typeof method == \"function\") {\n return method;\n }\n throw new Error(`Action \"${this.action}\" references undefined method \"${this.methodName}\"`);\n }\n applyEventModifiers(event) {\n const { element } = this.action;\n const { actionDescriptorFilters } = this.context.application;\n let passes = true;\n for (const [name, value] of Object.entries(this.eventOptions)) {\n if (name in actionDescriptorFilters) {\n const filter = actionDescriptorFilters[name];\n passes = passes && filter({ name, value, event, element });\n }\n else {\n continue;\n }\n }\n return passes;\n }\n invokeWithEvent(event) {\n const { target, currentTarget } = event;\n try {\n const { params } = this.action;\n const actionEvent = Object.assign(event, { params });\n this.method.call(this.controller, actionEvent);\n this.context.logDebugActivity(this.methodName, { event, target, currentTarget, action: this.methodName });\n }\n catch (error) {\n const { identifier, controller, element, index } = this;\n const detail = { identifier, controller, element, index, event };\n this.context.handleError(error, `invoking action \"${this.action}\"`, detail);\n }\n }\n willBeInvokedByEvent(event) {\n const eventTarget = event.target;\n if (this.element === eventTarget) {\n return true;\n }\n else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n }\n else {\n return this.scope.containsElement(this.action.element);\n }\n }\n get controller() {\n return this.context.controller;\n }\n get methodName() {\n return this.action.methodName;\n }\n get element() {\n return this.scope.element;\n }\n get scope() {\n return this.context.scope;\n }\n}\n\nclass ElementObserver {\n constructor(element, delegate) {\n this.mutationObserverInit = { attributes: true, childList: true, subtree: true };\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.refresh();\n }\n }\n pause(callback) {\n if (this.started) {\n this.mutationObserver.disconnect();\n this.started = false;\n }\n callback();\n if (!this.started) {\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n refresh() {\n if (this.started) {\n const matches = new Set(this.matchElementsInTree());\n for (const element of Array.from(this.elements)) {\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n for (const element of Array.from(matches)) {\n this.addElement(element);\n }\n }\n }\n processMutations(mutations) {\n if (this.started) {\n for (const mutation of mutations) {\n this.processMutation(mutation);\n }\n }\n }\n processMutation(mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n }\n else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n }\n processAttributeChange(node, attributeName) {\n const element = node;\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n }\n else {\n this.removeElement(element);\n }\n }\n else if (this.matchElement(element)) {\n this.addElement(element);\n }\n }\n processRemovedNodes(nodes) {\n for (const node of Array.from(nodes)) {\n const element = this.elementFromNode(node);\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n }\n processAddedNodes(nodes) {\n for (const node of Array.from(nodes)) {\n const element = this.elementFromNode(node);\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }\n matchElement(element) {\n return this.delegate.matchElement(element);\n }\n matchElementsInTree(tree = this.element) {\n return this.delegate.matchElementsInTree(tree);\n }\n processTree(tree, processor) {\n for (const element of this.matchElementsInTree(tree)) {\n processor.call(this, element);\n }\n }\n elementFromNode(node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n }\n elementIsActive(element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n }\n else {\n return this.element.contains(element);\n }\n }\n addElement(element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n }\n removeElement(element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n }\n}\n\nclass AttributeObserver {\n constructor(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n get element() {\n return this.elementObserver.element;\n }\n get selector() {\n return `[${this.attributeName}]`;\n }\n start() {\n this.elementObserver.start();\n }\n pause(callback) {\n this.elementObserver.pause(callback);\n }\n stop() {\n this.elementObserver.stop();\n }\n refresh() {\n this.elementObserver.refresh();\n }\n get started() {\n return this.elementObserver.started;\n }\n matchElement(element) {\n return element.hasAttribute(this.attributeName);\n }\n matchElementsInTree(tree) {\n const match = this.matchElement(tree) ? [tree] : [];\n const matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n }\n elementMatched(element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n }\n elementUnmatched(element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n }\n elementAttributeChanged(element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n }\n}\n\nclass StringMapObserver {\n constructor(element, delegate) {\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, { attributes: true, attributeOldValue: true });\n this.refresh();\n }\n }\n stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n refresh() {\n if (this.started) {\n for (const attributeName of this.knownAttributeNames) {\n this.refreshAttribute(attributeName, null);\n }\n }\n }\n processMutations(mutations) {\n if (this.started) {\n for (const mutation of mutations) {\n this.processMutation(mutation);\n }\n }\n }\n processMutation(mutation) {\n const attributeName = mutation.attributeName;\n if (attributeName) {\n this.refreshAttribute(attributeName, mutation.oldValue);\n }\n }\n refreshAttribute(attributeName, oldValue) {\n const key = this.delegate.getStringMapKeyForAttribute(attributeName);\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n const value = this.element.getAttribute(attributeName);\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key, oldValue);\n }\n if (value == null) {\n const oldValue = this.stringMap.get(attributeName);\n this.stringMap.delete(attributeName);\n if (oldValue)\n this.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n else {\n this.stringMap.set(attributeName, value);\n }\n }\n }\n stringMapKeyAdded(key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n }\n stringMapValueChanged(value, key, oldValue) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key, oldValue);\n }\n }\n stringMapKeyRemoved(key, attributeName, oldValue) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n }\n get knownAttributeNames() {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n }\n get currentAttributeNames() {\n return Array.from(this.element.attributes).map((attribute) => attribute.name);\n }\n get recordedAttributeNames() {\n return Array.from(this.stringMap.keys());\n }\n}\n\nfunction add(map, key, value) {\n fetch(map, key).add(value);\n}\nfunction del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nfunction fetch(map, key) {\n let values = map.get(key);\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n return values;\n}\nfunction prune(map, key) {\n const values = map.get(key);\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}\n\nclass Multimap {\n constructor() {\n this.valuesByKey = new Map();\n }\n get keys() {\n return Array.from(this.valuesByKey.keys());\n }\n get values() {\n const sets = Array.from(this.valuesByKey.values());\n return sets.reduce((values, set) => values.concat(Array.from(set)), []);\n }\n get size() {\n const sets = Array.from(this.valuesByKey.values());\n return sets.reduce((size, set) => size + set.size, 0);\n }\n add(key, value) {\n add(this.valuesByKey, key, value);\n }\n delete(key, value) {\n del(this.valuesByKey, key, value);\n }\n has(key, value) {\n const values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n }\n hasKey(key) {\n return this.valuesByKey.has(key);\n }\n hasValue(value) {\n const sets = Array.from(this.valuesByKey.values());\n return sets.some((set) => set.has(value));\n }\n getValuesForKey(key) {\n const values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n }\n getKeysForValue(value) {\n return Array.from(this.valuesByKey)\n .filter(([_key, values]) => values.has(value))\n .map(([key, _values]) => key);\n }\n}\n\nclass IndexedMultimap extends Multimap {\n constructor() {\n super();\n this.keysByValue = new Map();\n }\n get values() {\n return Array.from(this.keysByValue.keys());\n }\n add(key, value) {\n super.add(key, value);\n add(this.keysByValue, value, key);\n }\n delete(key, value) {\n super.delete(key, value);\n del(this.keysByValue, value, key);\n }\n hasValue(value) {\n return this.keysByValue.has(value);\n }\n getKeysForValue(value) {\n const set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n }\n}\n\nclass TokenListObserver {\n constructor(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n get started() {\n return this.attributeObserver.started;\n }\n start() {\n this.attributeObserver.start();\n }\n pause(callback) {\n this.attributeObserver.pause(callback);\n }\n stop() {\n this.attributeObserver.stop();\n }\n refresh() {\n this.attributeObserver.refresh();\n }\n get element() {\n return this.attributeObserver.element;\n }\n get attributeName() {\n return this.attributeObserver.attributeName;\n }\n elementMatchedAttribute(element) {\n this.tokensMatched(this.readTokensForElement(element));\n }\n elementAttributeValueChanged(element) {\n const [unmatchedTokens, matchedTokens] = this.refreshTokensForElement(element);\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n }\n elementUnmatchedAttribute(element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n }\n tokensMatched(tokens) {\n tokens.forEach((token) => this.tokenMatched(token));\n }\n tokensUnmatched(tokens) {\n tokens.forEach((token) => this.tokenUnmatched(token));\n }\n tokenMatched(token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n }\n tokenUnmatched(token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n }\n refreshTokensForElement(element) {\n const previousTokens = this.tokensByElement.getValuesForKey(element);\n const currentTokens = this.readTokensForElement(element);\n const firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(([previousToken, currentToken]) => !tokensAreEqual(previousToken, currentToken));\n if (firstDifferingIndex == -1) {\n return [[], []];\n }\n else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n }\n readTokensForElement(element) {\n const attributeName = this.attributeName;\n const tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n }\n}\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString\n .trim()\n .split(/\\s+/)\n .filter((content) => content.length)\n .map((content, index) => ({ element, attributeName, content, index }));\n}\nfunction zip(left, right) {\n const length = Math.max(left.length, right.length);\n return Array.from({ length }, (_, index) => [left[index], right[index]]);\n}\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}\n\nclass ValueListObserver {\n constructor(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n get started() {\n return this.tokenListObserver.started;\n }\n start() {\n this.tokenListObserver.start();\n }\n stop() {\n this.tokenListObserver.stop();\n }\n refresh() {\n this.tokenListObserver.refresh();\n }\n get element() {\n return this.tokenListObserver.element;\n }\n get attributeName() {\n return this.tokenListObserver.attributeName;\n }\n tokenMatched(token) {\n const { element } = token;\n const { value } = this.fetchParseResultForToken(token);\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n }\n tokenUnmatched(token) {\n const { element } = token;\n const { value } = this.fetchParseResultForToken(token);\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n }\n fetchParseResultForToken(token) {\n let parseResult = this.parseResultsByToken.get(token);\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n return parseResult;\n }\n fetchValuesByTokenForElement(element) {\n let valuesByToken = this.valuesByTokenByElement.get(element);\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n return valuesByToken;\n }\n parseToken(token) {\n try {\n const value = this.delegate.parseValueForToken(token);\n return { value };\n }\n catch (error) {\n return { error };\n }\n }\n}\n\nclass BindingObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n start() {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n }\n stop() {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n }\n get element() {\n return this.context.element;\n }\n get identifier() {\n return this.context.identifier;\n }\n get actionAttribute() {\n return this.schema.actionAttribute;\n }\n get schema() {\n return this.context.schema;\n }\n get bindings() {\n return Array.from(this.bindingsByAction.values());\n }\n connectAction(action) {\n const binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n }\n disconnectAction(action) {\n const binding = this.bindingsByAction.get(action);\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n }\n disconnectAllActions() {\n this.bindings.forEach((binding) => this.delegate.bindingDisconnected(binding, true));\n this.bindingsByAction.clear();\n }\n parseValueForToken(token) {\n const action = Action.forToken(token);\n if (action.identifier == this.identifier) {\n return action;\n }\n }\n elementMatchedValue(element, action) {\n this.connectAction(action);\n }\n elementUnmatchedValue(element, action) {\n this.disconnectAction(action);\n }\n}\n\nclass ValueObserver {\n constructor(context, receiver) {\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n }\n start() {\n this.stringMapObserver.start();\n this.invokeChangedCallbacksForDefaultValues();\n }\n stop() {\n this.stringMapObserver.stop();\n }\n get element() {\n return this.context.element;\n }\n get controller() {\n return this.context.controller;\n }\n getStringMapKeyForAttribute(attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n }\n stringMapKeyAdded(key, attributeName) {\n const descriptor = this.valueDescriptorMap[attributeName];\n if (!this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), descriptor.writer(descriptor.defaultValue));\n }\n }\n stringMapValueChanged(value, name, oldValue) {\n const descriptor = this.valueDescriptorNameMap[name];\n if (value === null)\n return;\n if (oldValue === null) {\n oldValue = descriptor.writer(descriptor.defaultValue);\n }\n this.invokeChangedCallback(name, value, oldValue);\n }\n stringMapKeyRemoved(key, attributeName, oldValue) {\n const descriptor = this.valueDescriptorNameMap[key];\n if (this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), oldValue);\n }\n else {\n this.invokeChangedCallback(key, descriptor.writer(descriptor.defaultValue), oldValue);\n }\n }\n invokeChangedCallbacksForDefaultValues() {\n for (const { key, name, defaultValue, writer } of this.valueDescriptors) {\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallback(name, writer(defaultValue), undefined);\n }\n }\n }\n invokeChangedCallback(name, rawValue, rawOldValue) {\n const changedMethodName = `${name}Changed`;\n const changedMethod = this.receiver[changedMethodName];\n if (typeof changedMethod == \"function\") {\n const descriptor = this.valueDescriptorNameMap[name];\n try {\n const value = descriptor.reader(rawValue);\n let oldValue = rawOldValue;\n if (rawOldValue) {\n oldValue = descriptor.reader(rawOldValue);\n }\n changedMethod.call(this.receiver, value, oldValue);\n }\n catch (error) {\n if (error instanceof TypeError) {\n error.message = `Stimulus Value \"${this.context.identifier}.${descriptor.name}\" - ${error.message}`;\n }\n throw error;\n }\n }\n }\n get valueDescriptors() {\n const { valueDescriptorMap } = this;\n return Object.keys(valueDescriptorMap).map((key) => valueDescriptorMap[key]);\n }\n get valueDescriptorNameMap() {\n const descriptors = {};\n Object.keys(this.valueDescriptorMap).forEach((key) => {\n const descriptor = this.valueDescriptorMap[key];\n descriptors[descriptor.name] = descriptor;\n });\n return descriptors;\n }\n hasValue(attributeName) {\n const descriptor = this.valueDescriptorNameMap[attributeName];\n const hasMethodName = `has${capitalize(descriptor.name)}`;\n return this.receiver[hasMethodName];\n }\n}\n\nclass TargetObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.targetsByName = new Multimap();\n }\n start() {\n if (!this.tokenListObserver) {\n this.tokenListObserver = new TokenListObserver(this.element, this.attributeName, this);\n this.tokenListObserver.start();\n }\n }\n stop() {\n if (this.tokenListObserver) {\n this.disconnectAllTargets();\n this.tokenListObserver.stop();\n delete this.tokenListObserver;\n }\n }\n tokenMatched({ element, content: name }) {\n if (this.scope.containsElement(element)) {\n this.connectTarget(element, name);\n }\n }\n tokenUnmatched({ element, content: name }) {\n this.disconnectTarget(element, name);\n }\n connectTarget(element, name) {\n var _a;\n if (!this.targetsByName.has(name, element)) {\n this.targetsByName.add(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetConnected(element, name));\n }\n }\n disconnectTarget(element, name) {\n var _a;\n if (this.targetsByName.has(name, element)) {\n this.targetsByName.delete(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetDisconnected(element, name));\n }\n }\n disconnectAllTargets() {\n for (const name of this.targetsByName.keys) {\n for (const element of this.targetsByName.getValuesForKey(name)) {\n this.disconnectTarget(element, name);\n }\n }\n }\n get attributeName() {\n return `data-${this.context.identifier}-target`;\n }\n get element() {\n return this.context.element;\n }\n get scope() {\n return this.context.scope;\n }\n}\n\nclass Context {\n constructor(module, scope) {\n this.logDebugActivity = (functionName, detail = {}) => {\n const { identifier, controller, element } = this;\n detail = Object.assign({ identifier, controller, element }, detail);\n this.application.logDebugActivity(this.identifier, functionName, detail);\n };\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n this.targetObserver = new TargetObserver(this, this);\n try {\n this.controller.initialize();\n this.logDebugActivity(\"initialize\");\n }\n catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n connect() {\n this.bindingObserver.start();\n this.valueObserver.start();\n this.targetObserver.start();\n try {\n this.controller.connect();\n this.logDebugActivity(\"connect\");\n }\n catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n }\n disconnect() {\n try {\n this.controller.disconnect();\n this.logDebugActivity(\"disconnect\");\n }\n catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n this.targetObserver.stop();\n this.valueObserver.stop();\n this.bindingObserver.stop();\n }\n get application() {\n return this.module.application;\n }\n get identifier() {\n return this.module.identifier;\n }\n get schema() {\n return this.application.schema;\n }\n get dispatcher() {\n return this.application.dispatcher;\n }\n get element() {\n return this.scope.element;\n }\n get parentElement() {\n return this.element.parentElement;\n }\n handleError(error, message, detail = {}) {\n const { identifier, controller, element } = this;\n detail = Object.assign({ identifier, controller, element }, detail);\n this.application.handleError(error, `Error ${message}`, detail);\n }\n targetConnected(element, name) {\n this.invokeControllerMethod(`${name}TargetConnected`, element);\n }\n targetDisconnected(element, name) {\n this.invokeControllerMethod(`${name}TargetDisconnected`, element);\n }\n invokeControllerMethod(methodName, ...args) {\n const controller = this.controller;\n if (typeof controller[methodName] == \"function\") {\n controller[methodName](...args);\n }\n }\n}\n\nfunction readInheritableStaticArrayValues(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce((values, constructor) => {\n getOwnStaticArrayValues(constructor, propertyName).forEach((name) => values.add(name));\n return values;\n }, new Set()));\n}\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce((pairs, constructor) => {\n pairs.push(...getOwnStaticObjectPairs(constructor, propertyName));\n return pairs;\n }, []);\n}\nfunction getAncestorsForConstructor(constructor) {\n const ancestors = [];\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n return ancestors.reverse();\n}\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n const definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n const definition = constructor[propertyName];\n return definition ? Object.keys(definition).map((key) => [key, definition[key]]) : [];\n}\n\nfunction bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\nfunction shadow(constructor, properties) {\n const shadowConstructor = extend(constructor);\n const shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\nfunction getBlessedProperties(constructor) {\n const blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce((blessedProperties, blessing) => {\n const properties = blessing(constructor);\n for (const key in properties) {\n const descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n return blessedProperties;\n }, {});\n}\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce((shadowProperties, key) => {\n const descriptor = getShadowedDescriptor(prototype, properties, key);\n if (descriptor) {\n Object.assign(shadowProperties, { [key]: descriptor });\n }\n return shadowProperties;\n }, {});\n}\nfunction getShadowedDescriptor(prototype, properties, key) {\n const shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n const shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n if (!shadowedByValue) {\n const descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n return descriptor;\n }\n}\nconst getOwnKeys = (() => {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return (object) => [...Object.getOwnPropertyNames(object), ...Object.getOwnPropertySymbols(object)];\n }\n else {\n return Object.getOwnPropertyNames;\n }\n})();\nconst extend = (() => {\n function extendWithReflect(constructor) {\n function extended() {\n return Reflect.construct(constructor, arguments, new.target);\n }\n extended.prototype = Object.create(constructor.prototype, {\n constructor: { value: extended },\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n function testReflectExtension() {\n const a = function () {\n this.a.call(this);\n };\n const b = extendWithReflect(a);\n b.prototype.a = function () { };\n return new b();\n }\n try {\n testReflectExtension();\n return extendWithReflect;\n }\n catch (error) {\n return (constructor) => class extended extends constructor {\n };\n }\n})();\n\nfunction blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor),\n };\n}\n\nclass Module {\n constructor(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n get identifier() {\n return this.definition.identifier;\n }\n get controllerConstructor() {\n return this.definition.controllerConstructor;\n }\n get contexts() {\n return Array.from(this.connectedContexts);\n }\n connectContextForScope(scope) {\n const context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n }\n disconnectContextForScope(scope) {\n const context = this.contextsByScope.get(scope);\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n }\n fetchContextForScope(scope) {\n let context = this.contextsByScope.get(scope);\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n return context;\n }\n}\n\nclass ClassMap {\n constructor(scope) {\n this.scope = scope;\n }\n has(name) {\n return this.data.has(this.getDataKey(name));\n }\n get(name) {\n return this.getAll(name)[0];\n }\n getAll(name) {\n const tokenString = this.data.get(this.getDataKey(name)) || \"\";\n return tokenize(tokenString);\n }\n getAttributeName(name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n }\n getDataKey(name) {\n return `${name}-class`;\n }\n get data() {\n return this.scope.data;\n }\n}\n\nclass DataMap {\n constructor(scope) {\n this.scope = scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get(key) {\n const name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n }\n set(key, value) {\n const name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n }\n has(key) {\n const name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n }\n delete(key) {\n if (this.has(key)) {\n const name = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name);\n return true;\n }\n else {\n return false;\n }\n }\n getAttributeNameForKey(key) {\n return `data-${this.identifier}-${dasherize(key)}`;\n }\n}\n\nclass Guide {\n constructor(logger) {\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n warn(object, key, message) {\n let warnedKeys = this.warnedKeysByObject.get(object);\n if (!warnedKeys) {\n warnedKeys = new Set();\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n }\n}\n\nfunction attributeValueContainsToken(attributeName, token) {\n return `[${attributeName}~=\"${token}\"]`;\n}\n\nclass TargetSet {\n constructor(scope) {\n this.scope = scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get schema() {\n return this.scope.schema;\n }\n has(targetName) {\n return this.find(targetName) != null;\n }\n find(...targetNames) {\n return targetNames.reduce((target, targetName) => target || this.findTarget(targetName) || this.findLegacyTarget(targetName), undefined);\n }\n findAll(...targetNames) {\n return targetNames.reduce((targets, targetName) => [\n ...targets,\n ...this.findAllTargets(targetName),\n ...this.findAllLegacyTargets(targetName),\n ], []);\n }\n findTarget(targetName) {\n const selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n }\n findAllTargets(targetName) {\n const selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n }\n getSelectorForTargetName(targetName) {\n const attributeName = this.schema.targetAttributeForScope(this.identifier);\n return attributeValueContainsToken(attributeName, targetName);\n }\n findLegacyTarget(targetName) {\n const selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n }\n findAllLegacyTargets(targetName) {\n const selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map((element) => this.deprecate(element, targetName));\n }\n getLegacySelectorForTargetName(targetName) {\n const targetDescriptor = `${this.identifier}.${targetName}`;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n }\n deprecate(element, targetName) {\n if (element) {\n const { identifier } = this;\n const attributeName = this.schema.targetAttribute;\n const revisedAttributeName = this.schema.targetAttributeForScope(identifier);\n this.guide.warn(element, `target:${targetName}`, `Please replace ${attributeName}=\"${identifier}.${targetName}\" with ${revisedAttributeName}=\"${targetName}\". ` +\n `The ${attributeName} attribute is deprecated and will be removed in a future version of Stimulus.`);\n }\n return element;\n }\n get guide() {\n return this.scope.guide;\n }\n}\n\nclass Scope {\n constructor(schema, element, identifier, logger) {\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n this.containsElement = (element) => {\n return element.closest(this.controllerSelector) === this.element;\n };\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n }\n findElement(selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n }\n findAllElements(selector) {\n return [\n ...(this.element.matches(selector) ? [this.element] : []),\n ...this.queryElements(selector).filter(this.containsElement),\n ];\n }\n queryElements(selector) {\n return Array.from(this.element.querySelectorAll(selector));\n }\n get controllerSelector() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n }\n}\n\nclass ScopeObserver {\n constructor(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n start() {\n this.valueListObserver.start();\n }\n stop() {\n this.valueListObserver.stop();\n }\n get controllerAttribute() {\n return this.schema.controllerAttribute;\n }\n parseValueForToken(token) {\n const { element, content: identifier } = token;\n const scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n let scope = scopesByIdentifier.get(identifier);\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n return scope;\n }\n elementMatchedValue(element, value) {\n const referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n }\n elementUnmatchedValue(element, value) {\n const referenceCount = this.scopeReferenceCounts.get(value);\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n }\n fetchScopesByIdentifierForElement(element) {\n let scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n return scopesByIdentifier;\n }\n}\n\nclass Router {\n constructor(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n get element() {\n return this.application.element;\n }\n get schema() {\n return this.application.schema;\n }\n get logger() {\n return this.application.logger;\n }\n get controllerAttribute() {\n return this.schema.controllerAttribute;\n }\n get modules() {\n return Array.from(this.modulesByIdentifier.values());\n }\n get contexts() {\n return this.modules.reduce((contexts, module) => contexts.concat(module.contexts), []);\n }\n start() {\n this.scopeObserver.start();\n }\n stop() {\n this.scopeObserver.stop();\n }\n loadDefinition(definition) {\n this.unloadIdentifier(definition.identifier);\n const module = new Module(this.application, definition);\n this.connectModule(module);\n }\n unloadIdentifier(identifier) {\n const module = this.modulesByIdentifier.get(identifier);\n if (module) {\n this.disconnectModule(module);\n }\n }\n getContextForElementAndIdentifier(element, identifier) {\n const module = this.modulesByIdentifier.get(identifier);\n if (module) {\n return module.contexts.find((context) => context.element == element);\n }\n }\n handleError(error, message, detail) {\n this.application.handleError(error, message, detail);\n }\n createScopeForElementAndIdentifier(element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n }\n scopeConnected(scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n const module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.connectContextForScope(scope);\n }\n }\n scopeDisconnected(scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n const module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }\n connectModule(module) {\n this.modulesByIdentifier.set(module.identifier, module);\n const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach((scope) => module.connectContextForScope(scope));\n }\n disconnectModule(module) {\n this.modulesByIdentifier.delete(module.identifier);\n const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach((scope) => module.disconnectContextForScope(scope));\n }\n}\n\nconst defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\",\n targetAttributeForScope: (identifier) => `data-${identifier}-target`,\n};\n\nclass Application {\n constructor(element = document.documentElement, schema = defaultSchema) {\n this.logger = console;\n this.debug = false;\n this.logDebugActivity = (identifier, functionName, detail = {}) => {\n if (this.debug) {\n this.logFormattedMessage(identifier, functionName, detail);\n }\n };\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n this.actionDescriptorFilters = Object.assign({}, defaultActionDescriptorFilters);\n }\n static start(element, schema) {\n const application = new Application(element, schema);\n application.start();\n return application;\n }\n async start() {\n await domReady();\n this.logDebugActivity(\"application\", \"starting\");\n this.dispatcher.start();\n this.router.start();\n this.logDebugActivity(\"application\", \"start\");\n }\n stop() {\n this.logDebugActivity(\"application\", \"stopping\");\n this.dispatcher.stop();\n this.router.stop();\n this.logDebugActivity(\"application\", \"stop\");\n }\n register(identifier, controllerConstructor) {\n this.load({ identifier, controllerConstructor });\n }\n registerActionOption(name, filter) {\n this.actionDescriptorFilters[name] = filter;\n }\n load(head, ...rest) {\n const definitions = Array.isArray(head) ? head : [head, ...rest];\n definitions.forEach((definition) => {\n if (definition.controllerConstructor.shouldLoad) {\n this.router.loadDefinition(definition);\n }\n });\n }\n unload(head, ...rest) {\n const identifiers = Array.isArray(head) ? head : [head, ...rest];\n identifiers.forEach((identifier) => this.router.unloadIdentifier(identifier));\n }\n get controllers() {\n return this.router.contexts.map((context) => context.controller);\n }\n getControllerForElementAndIdentifier(element, identifier) {\n const context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }\n handleError(error, message, detail) {\n var _a;\n this.logger.error(`%s\\n\\n%o\\n\\n%o`, message, error, detail);\n (_a = window.onerror) === null || _a === void 0 ? void 0 : _a.call(window, message, \"\", 0, 0, error);\n }\n logFormattedMessage(identifier, functionName, detail = {}) {\n detail = Object.assign({ application: this }, detail);\n this.logger.groupCollapsed(`${identifier} #${functionName}`);\n this.logger.log(\"details:\", Object.assign({}, detail));\n this.logger.groupEnd();\n }\n}\nfunction domReady() {\n return new Promise((resolve) => {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => resolve());\n }\n else {\n resolve();\n }\n });\n}\n\nfunction ClassPropertiesBlessing(constructor) {\n const classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce((properties, classDefinition) => {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\nfunction propertiesForClassDefinition(key) {\n return {\n [`${key}Class`]: {\n get() {\n const { classes } = this;\n if (classes.has(key)) {\n return classes.get(key);\n }\n else {\n const attribute = classes.getAttributeName(key);\n throw new Error(`Missing attribute \"${attribute}\"`);\n }\n },\n },\n [`${key}Classes`]: {\n get() {\n return this.classes.getAll(key);\n },\n },\n [`has${capitalize(key)}Class`]: {\n get() {\n return this.classes.has(key);\n },\n },\n };\n}\n\nfunction TargetPropertiesBlessing(constructor) {\n const targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce((properties, targetDefinition) => {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\nfunction propertiesForTargetDefinition(name) {\n return {\n [`${name}Target`]: {\n get() {\n const target = this.targets.find(name);\n if (target) {\n return target;\n }\n else {\n throw new Error(`Missing target element \"${name}\" for \"${this.identifier}\" controller`);\n }\n },\n },\n [`${name}Targets`]: {\n get() {\n return this.targets.findAll(name);\n },\n },\n [`has${capitalize(name)}Target`]: {\n get() {\n return this.targets.has(name);\n },\n },\n };\n}\n\nfunction ValuePropertiesBlessing(constructor) {\n const valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n const propertyDescriptorMap = {\n valueDescriptorMap: {\n get() {\n return valueDefinitionPairs.reduce((result, valueDefinitionPair) => {\n const valueDescriptor = parseValueDefinitionPair(valueDefinitionPair, this.identifier);\n const attributeName = this.data.getAttributeNameForKey(valueDescriptor.key);\n return Object.assign(result, { [attributeName]: valueDescriptor });\n }, {});\n },\n },\n };\n return valueDefinitionPairs.reduce((properties, valueDefinitionPair) => {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\nfunction propertiesForValueDefinitionPair(valueDefinitionPair, controller) {\n const definition = parseValueDefinitionPair(valueDefinitionPair, controller);\n const { key, name, reader: read, writer: write } = definition;\n return {\n [name]: {\n get() {\n const value = this.data.get(key);\n if (value !== null) {\n return read(value);\n }\n else {\n return definition.defaultValue;\n }\n },\n set(value) {\n if (value === undefined) {\n this.data.delete(key);\n }\n else {\n this.data.set(key, write(value));\n }\n },\n },\n [`has${capitalize(name)}`]: {\n get() {\n return this.data.has(key) || definition.hasCustomDefaultValue;\n },\n },\n };\n}\nfunction parseValueDefinitionPair([token, typeDefinition], controller) {\n return valueDescriptorForTokenAndTypeDefinition({\n controller,\n token,\n typeDefinition,\n });\n}\nfunction parseValueTypeConstant(constant) {\n switch (constant) {\n case Array:\n return \"array\";\n case Boolean:\n return \"boolean\";\n case Number:\n return \"number\";\n case Object:\n return \"object\";\n case String:\n return \"string\";\n }\n}\nfunction parseValueTypeDefault(defaultValue) {\n switch (typeof defaultValue) {\n case \"boolean\":\n return \"boolean\";\n case \"number\":\n return \"number\";\n case \"string\":\n return \"string\";\n }\n if (Array.isArray(defaultValue))\n return \"array\";\n if (Object.prototype.toString.call(defaultValue) === \"[object Object]\")\n return \"object\";\n}\nfunction parseValueTypeObject(payload) {\n const typeFromObject = parseValueTypeConstant(payload.typeObject.type);\n if (!typeFromObject)\n return;\n const defaultValueType = parseValueTypeDefault(payload.typeObject.default);\n if (typeFromObject !== defaultValueType) {\n const propertyPath = payload.controller ? `${payload.controller}.${payload.token}` : payload.token;\n throw new Error(`The specified default value for the Stimulus Value \"${propertyPath}\" must match the defined type \"${typeFromObject}\". The provided default value of \"${payload.typeObject.default}\" is of type \"${defaultValueType}\".`);\n }\n return typeFromObject;\n}\nfunction parseValueTypeDefinition(payload) {\n const typeFromObject = parseValueTypeObject({\n controller: payload.controller,\n token: payload.token,\n typeObject: payload.typeDefinition,\n });\n const typeFromDefaultValue = parseValueTypeDefault(payload.typeDefinition);\n const typeFromConstant = parseValueTypeConstant(payload.typeDefinition);\n const type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n if (type)\n return type;\n const propertyPath = payload.controller ? `${payload.controller}.${payload.typeDefinition}` : payload.token;\n throw new Error(`Unknown value type \"${propertyPath}\" for \"${payload.token}\" value`);\n}\nfunction defaultValueForDefinition(typeDefinition) {\n const constant = parseValueTypeConstant(typeDefinition);\n if (constant)\n return defaultValuesByType[constant];\n const defaultValue = typeDefinition.default;\n if (defaultValue !== undefined)\n return defaultValue;\n return typeDefinition;\n}\nfunction valueDescriptorForTokenAndTypeDefinition(payload) {\n const key = `${dasherize(payload.token)}-value`;\n const type = parseValueTypeDefinition(payload);\n return {\n type,\n key,\n name: camelize(key),\n get defaultValue() {\n return defaultValueForDefinition(payload.typeDefinition);\n },\n get hasCustomDefaultValue() {\n return parseValueTypeDefault(payload.typeDefinition) !== undefined;\n },\n reader: readers[type],\n writer: writers[type] || writers.default,\n };\n}\nconst defaultValuesByType = {\n get array() {\n return [];\n },\n boolean: false,\n number: 0,\n get object() {\n return {};\n },\n string: \"\",\n};\nconst readers = {\n array(value) {\n const array = JSON.parse(value);\n if (!Array.isArray(array)) {\n throw new TypeError(`expected value of type \"array\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(array)}\"`);\n }\n return array;\n },\n boolean(value) {\n return !(value == \"0\" || String(value).toLowerCase() == \"false\");\n },\n number(value) {\n return Number(value);\n },\n object(value) {\n const object = JSON.parse(value);\n if (object === null || typeof object != \"object\" || Array.isArray(object)) {\n throw new TypeError(`expected value of type \"object\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(object)}\"`);\n }\n return object;\n },\n string(value) {\n return value;\n },\n};\nconst writers = {\n default: writeString,\n array: writeJSON,\n object: writeJSON,\n};\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\nfunction writeString(value) {\n return `${value}`;\n}\n\nclass Controller {\n constructor(context) {\n this.context = context;\n }\n static get shouldLoad() {\n return true;\n }\n get application() {\n return this.context.application;\n }\n get scope() {\n return this.context.scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get targets() {\n return this.scope.targets;\n }\n get classes() {\n return this.scope.classes;\n }\n get data() {\n return this.scope.data;\n }\n initialize() {\n }\n connect() {\n }\n disconnect() {\n }\n dispatch(eventName, { target = this.element, detail = {}, prefix = this.identifier, bubbles = true, cancelable = true } = {}) {\n const type = prefix ? `${prefix}:${eventName}` : eventName;\n const event = new CustomEvent(type, { detail, bubbles, cancelable });\n target.dispatchEvent(event);\n return event;\n }\n}\nController.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\nController.targets = [];\nController.values = {};\n\nexport { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, StringMapObserver, TokenListObserver, ValueListObserver, add, defaultSchema, del, fetch, prune };\n","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _utils = require('./utils.js');\n\nvar utils = _interopRequireWildcard(_utils);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction getDefaults() {\n return {\n debounceInterval: 50\n };\n}\n\nvar Backend = function () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Backend);\n\n this.type = 'backend';\n this.pending = [];\n\n this.init(services, options);\n }\n\n _createClass(Backend, [{\n key: 'init',\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nextOptions = arguments[2];\n\n this.services = services;\n this.options = utils.defaults(options, this.options || {}, getDefaults());\n\n this.debouncedLoad = utils.debounce(this.load, this.options.debounceInterval);\n\n if (this.options.backend) {\n this.backend = this.backend || utils.createClassOnDemand(this.options.backend);\n this.backend.init(services, this.options.backendOption, i18nextOptions);\n }\n if (this.backend && !this.backend.readMulti) throw new Error('The wrapped backend does not support the readMulti function.');\n }\n }, {\n key: 'read',\n value: function read(language, namespace, callback) {\n this.pending.push({\n language: language,\n namespace: namespace,\n callback: callback\n });\n\n this.debouncedLoad();\n }\n }, {\n key: 'load',\n value: function load() {\n if (!this.backend || !this.pending.length) return;\n\n // reset pending\n var loading = this.pending;\n this.pending = [];\n\n // get all languages and namespaces needed to be loaded\n var toLoad = loading.reduce(function (mem, item) {\n if (mem.languages.indexOf(item.language) < 0) mem.languages.push(item.language);\n if (mem.namespaces.indexOf(item.namespace) < 0) mem.namespaces.push(item.namespace);\n return mem;\n }, { languages: [], namespaces: [] });\n\n // load\n this.backend.readMulti(toLoad.languages, toLoad.namespaces, function (err, data) {\n if (err) return loading.forEach(function (item) {\n return item.callback(err, data);\n });\n\n loading.forEach(function (item) {\n var translations = data[item.language] && data[item.language][item.namespace];\n item.callback(null, translations || {}); // if no error and no translations for that lng-ns pair return empty object\n });\n });\n }\n }, {\n key: 'create',\n value: function create(languages, namespace, key, fallbackValue) {\n if (!this.backend || !this.backend.create) return;\n this.backend.create(languages, namespace, key, fallbackValue);\n }\n }]);\n\n return Backend;\n}();\n\nBackend.type = 'backend';\n\nexports.default = Backend;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.defaults = defaults;\nexports.extend = extend;\nexports.createClassOnDemand = createClassOnDemand;\nexports.debounce = debounce;\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\n\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\nfunction extend(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\nfunction createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n}\n\nfunction debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n};","module.exports = require('./dist/commonjs/index.js').default;\n","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانفي',\n 'فيفري',\n 'مارس',\n 'أفريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Libya) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays:\n 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone:\n 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort:\n 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone:\n 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n w: 'седмица',\n ww: '%d седмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bnBd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort:\n 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays:\n 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex =\n /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone:\n 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = {\n format: 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n standalone:\n 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(\n '_'\n ),\n },\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex =\n /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex:\n /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex:\n /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays:\n 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays:\n 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl:\n 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl:\n 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\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 relativeTime: {\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 M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\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 relativeTime: {\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 M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 return enCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\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 relativeTime: {\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 M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\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 relativeTime: {\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 M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\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 relativeTime: {\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 M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 return enIl;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\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 relativeTime: {\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 M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\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 relativeTime: {\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 M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\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 relativeTime: {\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 M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return esMx;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return es;\n\n})));\n","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort:\n 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays:\n 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort:\n 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰',\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort:\n 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast =\n 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort:\n 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays:\n 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\n","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays:\n 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsStrictRegex =\n /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort:\n 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone:\n 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone:\n 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '૧',\n 2: '૨',\n 3: '૩',\n 4: '૪',\n 5: '૫',\n 6: '૬',\n 7: '૭',\n 8: '૮',\n 9: '૯',\n 0: '૦',\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0',\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n '_'\n ),\n monthsShort:\n 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return gu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort:\n 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse:\n /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n },\n monthsParse = [\n /^जन/i,\n /^फ़र|फर/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सितं|सित/i,\n /^अक्टू/i,\n /^नव|नवं/i,\n /^दिसं|दिस/i,\n ],\n shortMonthsParse = [\n /^जन/i,\n /^फ़र/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सित/i,\n /^अक्टू/i,\n /^नव/i,\n /^दिस/i,\n ];\n\n var hi = moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n '_'\n ),\n standalone:\n 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n '_'\n ),\n },\n monthsShort:\n 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: shortMonthsParse,\n\n monthsRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsShortRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsStrictRegex:\n /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n monthsShortStrictRegex:\n /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return hi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone:\n 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort:\n 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings =\n 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone:\n 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays:\n 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays:\n 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n","//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone:\n 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\n isFormat: /(წინა|შემდეგ)/,\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(\n /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,\n function ($0, $1, $2) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n }\n );\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០',\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort:\n 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return km;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: '೭',\n 8: '೮',\n 9: '೯',\n 0: '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort:\n 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays:\n 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort:\n 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n var ky = moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ky;\n\n})));\n","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort:\n 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone:\n 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone:\n 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays:\n 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan : https://github.com/johnideal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort:\n 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort:\n 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n","//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n '_'\n ),\n monthsShort:\n '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n return mn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort:\n 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays:\n 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀',\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n","//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n w: 'en uke',\n ww: '%d uker',\n M: 'en måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort:\n 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nlBe;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone:\n 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort:\n 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative =\n 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective =\n 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n '_'\n ),\n monthsParse = [\n /^sty/i,\n /^lut/i,\n /^mar/i,\n /^kwi/i,\n /^maj/i,\n /^cze/i,\n /^lip/i,\n /^sie/i,\n /^wrz/i,\n /^paź/i,\n /^lis/i,\n /^gru/i,\n ];\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays:\n 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate,\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida',\n });\n\n return ptBr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort:\n 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone:\n 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone:\n 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone:\n 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex:\n /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex:\n /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделя',\n ww: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort:\n 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays:\n 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays:\n 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months =\n 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једног минута'],\n mm: ['минут', 'минута', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n d: ['један дан', 'једног дана'],\n dd: ['дан', 'дана', 'дана'],\n M: ['један месец', 'једног месеца'],\n MM: ['месец', 'месеца', 'месеци'],\n y: ['једну годину', 'једне године'],\n yy: ['годину', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'једна година';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n\n return number + ' ' + word;\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort:\n 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n d: ['jedan dan', 'jednog dana'],\n dd: ['dan', 'dana', 'dana'],\n M: ['jedan mesec', 'jednog meseca'],\n MM: ['mesec', 'meseca', 'meseci'],\n y: ['jednu godinu', 'jedne godine'],\n yy: ['godinu', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'jedna godina';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'godinu') {\n return number + ' godina';\n }\n\n return number + ' ' + word;\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays:\n 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays:\n 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort:\n 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays:\n 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort:\n 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n '_'\n ),\n standalone:\n 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort:\n 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort:\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort:\n 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n monthsShort:\n 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort:\n 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative:\n 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative:\n 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive:\n 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone:\n 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays:\n 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort:\n 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort:\n 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhTw;\n\n})));\n","var map = {\n\t\"./af\": 2786,\n\t\"./af.js\": 2786,\n\t\"./ar\": 867,\n\t\"./ar-dz\": 4130,\n\t\"./ar-dz.js\": 4130,\n\t\"./ar-kw\": 6135,\n\t\"./ar-kw.js\": 6135,\n\t\"./ar-ly\": 6440,\n\t\"./ar-ly.js\": 6440,\n\t\"./ar-ma\": 7702,\n\t\"./ar-ma.js\": 7702,\n\t\"./ar-sa\": 6040,\n\t\"./ar-sa.js\": 6040,\n\t\"./ar-tn\": 7100,\n\t\"./ar-tn.js\": 7100,\n\t\"./ar.js\": 867,\n\t\"./az\": 1083,\n\t\"./az.js\": 1083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 8338,\n\t\"./bg.js\": 8338,\n\t\"./bm\": 7438,\n\t\"./bm.js\": 7438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 6225,\n\t\"./bn-bd.js\": 6225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 1560,\n\t\"./bo.js\": 1560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 622,\n\t\"./bs.js\": 622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 877,\n\t\"./cv.js\": 877,\n\t\"./cy\": 7373,\n\t\"./cy.js\": 7373,\n\t\"./da\": 4780,\n\t\"./da.js\": 4780,\n\t\"./de\": 9740,\n\t\"./de-at\": 217,\n\t\"./de-at.js\": 217,\n\t\"./de-ch\": 894,\n\t\"./de-ch.js\": 894,\n\t\"./de.js\": 9740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 837,\n\t\"./el.js\": 837,\n\t\"./en-au\": 8348,\n\t\"./en-au.js\": 8348,\n\t\"./en-ca\": 7925,\n\t\"./en-ca.js\": 7925,\n\t\"./en-gb\": 2243,\n\t\"./en-gb.js\": 2243,\n\t\"./en-ie\": 6436,\n\t\"./en-ie.js\": 6436,\n\t\"./en-il\": 7207,\n\t\"./en-il.js\": 7207,\n\t\"./en-in\": 4175,\n\t\"./en-in.js\": 4175,\n\t\"./en-nz\": 6319,\n\t\"./en-nz.js\": 6319,\n\t\"./en-sg\": 1662,\n\t\"./en-sg.js\": 1662,\n\t\"./eo\": 2915,\n\t\"./eo.js\": 2915,\n\t\"./es\": 5655,\n\t\"./es-do\": 5251,\n\t\"./es-do.js\": 5251,\n\t\"./es-mx\": 6112,\n\t\"./es-mx.js\": 6112,\n\t\"./es-us\": 1146,\n\t\"./es-us.js\": 1146,\n\t\"./es.js\": 5655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 7763,\n\t\"./eu.js\": 7763,\n\t\"./fa\": 6959,\n\t\"./fa.js\": 6959,\n\t\"./fi\": 1897,\n\t\"./fi.js\": 1897,\n\t\"./fil\": 2549,\n\t\"./fil.js\": 2549,\n\t\"./fo\": 4694,\n\t\"./fo.js\": 4694,\n\t\"./fr\": 4470,\n\t\"./fr-ca\": 3049,\n\t\"./fr-ca.js\": 3049,\n\t\"./fr-ch\": 2330,\n\t\"./fr-ch.js\": 2330,\n\t\"./fr.js\": 4470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 9295,\n\t\"./ga.js\": 9295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 8794,\n\t\"./gl.js\": 8794,\n\t\"./gom-deva\": 7884,\n\t\"./gom-deva.js\": 7884,\n\t\"./gom-latn\": 3168,\n\t\"./gom-latn.js\": 3168,\n\t\"./gu\": 5349,\n\t\"./gu.js\": 5349,\n\t\"./he\": 4206,\n\t\"./he.js\": 4206,\n\t\"./hi\": 94,\n\t\"./hi.js\": 94,\n\t\"./hr\": 316,\n\t\"./hr.js\": 316,\n\t\"./hu\": 2138,\n\t\"./hu.js\": 2138,\n\t\"./hy-am\": 1423,\n\t\"./hy-am.js\": 1423,\n\t\"./id\": 9218,\n\t\"./id.js\": 9218,\n\t\"./is\": 135,\n\t\"./is.js\": 135,\n\t\"./it\": 626,\n\t\"./it-ch\": 150,\n\t\"./it-ch.js\": 150,\n\t\"./it.js\": 626,\n\t\"./ja\": 9183,\n\t\"./ja.js\": 9183,\n\t\"./jv\": 4286,\n\t\"./jv.js\": 4286,\n\t\"./ka\": 2105,\n\t\"./ka.js\": 2105,\n\t\"./kk\": 7772,\n\t\"./kk.js\": 7772,\n\t\"./km\": 8758,\n\t\"./km.js\": 8758,\n\t\"./kn\": 9282,\n\t\"./kn.js\": 9282,\n\t\"./ko\": 3730,\n\t\"./ko.js\": 3730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 3291,\n\t\"./ky.js\": 3291,\n\t\"./lb\": 6841,\n\t\"./lb.js\": 6841,\n\t\"./lo\": 5466,\n\t\"./lo.js\": 5466,\n\t\"./lt\": 7010,\n\t\"./lt.js\": 7010,\n\t\"./lv\": 7595,\n\t\"./lv.js\": 7595,\n\t\"./me\": 9861,\n\t\"./me.js\": 9861,\n\t\"./mi\": 5493,\n\t\"./mi.js\": 5493,\n\t\"./mk\": 5966,\n\t\"./mk.js\": 5966,\n\t\"./ml\": 7341,\n\t\"./ml.js\": 7341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 370,\n\t\"./mr.js\": 370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 1237,\n\t\"./ms-my.js\": 1237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 2126,\n\t\"./mt.js\": 2126,\n\t\"./my\": 6165,\n\t\"./my.js\": 6165,\n\t\"./nb\": 4924,\n\t\"./nb.js\": 4924,\n\t\"./ne\": 6744,\n\t\"./ne.js\": 6744,\n\t\"./nl\": 3901,\n\t\"./nl-be\": 9814,\n\t\"./nl-be.js\": 9814,\n\t\"./nl.js\": 3901,\n\t\"./nn\": 3877,\n\t\"./nn.js\": 3877,\n\t\"./oc-lnc\": 2135,\n\t\"./oc-lnc.js\": 2135,\n\t\"./pa-in\": 5858,\n\t\"./pa-in.js\": 5858,\n\t\"./pl\": 4495,\n\t\"./pl.js\": 4495,\n\t\"./pt\": 9520,\n\t\"./pt-br\": 7971,\n\t\"./pt-br.js\": 7971,\n\t\"./pt.js\": 9520,\n\t\"./ro\": 6459,\n\t\"./ro.js\": 6459,\n\t\"./ru\": 1793,\n\t\"./ru.js\": 1793,\n\t\"./sd\": 950,\n\t\"./sd.js\": 950,\n\t\"./se\": 490,\n\t\"./se.js\": 490,\n\t\"./si\": 124,\n\t\"./si.js\": 124,\n\t\"./sk\": 4249,\n\t\"./sk.js\": 4249,\n\t\"./sl\": 4985,\n\t\"./sl.js\": 4985,\n\t\"./sq\": 1104,\n\t\"./sq.js\": 1104,\n\t\"./sr\": 9131,\n\t\"./sr-cyrl\": 9915,\n\t\"./sr-cyrl.js\": 9915,\n\t\"./sr.js\": 9131,\n\t\"./ss\": 5893,\n\t\"./ss.js\": 5893,\n\t\"./sv\": 8760,\n\t\"./sv.js\": 8760,\n\t\"./sw\": 1172,\n\t\"./sw.js\": 1172,\n\t\"./ta\": 7333,\n\t\"./ta.js\": 7333,\n\t\"./te\": 3110,\n\t\"./te.js\": 3110,\n\t\"./tet\": 2095,\n\t\"./tet.js\": 2095,\n\t\"./tg\": 7321,\n\t\"./tg.js\": 7321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 9005,\n\t\"./tk.js\": 9005,\n\t\"./tl-ph\": 5768,\n\t\"./tl-ph.js\": 5768,\n\t\"./tlh\": 9444,\n\t\"./tlh.js\": 9444,\n\t\"./tr\": 2397,\n\t\"./tr.js\": 2397,\n\t\"./tzl\": 8254,\n\t\"./tzl.js\": 8254,\n\t\"./tzm\": 1106,\n\t\"./tzm-latn\": 699,\n\t\"./tzm-latn.js\": 699,\n\t\"./tzm.js\": 1106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 7691,\n\t\"./uk.js\": 7691,\n\t\"./ur\": 3795,\n\t\"./ur.js\": 3795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 588,\n\t\"./uz-latn.js\": 588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 5666,\n\t\"./vi.js\": 5666,\n\t\"./x-pseudo\": 4378,\n\t\"./x-pseudo.js\": 4378,\n\t\"./yo\": 5805,\n\t\"./yo.js\": 5805,\n\t\"./zh-cn\": 3839,\n\t\"./zh-cn.js\": 3839,\n\t\"./zh-hk\": 5726,\n\t\"./zh-hk.js\": 5726,\n\t\"./zh-mo\": 9807,\n\t\"./zh-mo.js\": 9807,\n\t\"./zh-tw\": 4152,\n\t\"./zh-tw.js\": 4152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 6700;","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","var fetchApi\nif (typeof fetch === 'function') {\n if (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch\n } else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch\n } else {\n fetchApi = fetch\n }\n}\n\nif (typeof require !== 'undefined' && (typeof window === 'undefined' || typeof window.document === 'undefined')) {\n var f = fetchApi || require('cross-fetch')\n if (f.default) f = f.default\n exports.default = f\n module.exports = exports.default\n}\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread(_objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }, {\n key: \"clone\",\n value: function clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n\n return matched;\n}\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n\n current = current[paths[i]];\n }\n\n return current;\n}\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n var _super = _createSuper(ResourceStore);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread$1(_objectSpread$1({}, pack), resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread$1(_objectSpread$1({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n var _super = _createSuper$1(Translator);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n\n if (key === undefined || key === null) {\n return false;\n }\n\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS || [];\n var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n\n if (returnDetails) {\n resolved.res = \"\".concat(namespace).concat(nsSeparator).concat(key);\n return resolved;\n }\n\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n\n if (returnDetails) {\n resolved.res = key;\n return resolved;\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n\n var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$2(_objectSpread$2({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n\n return r;\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread$2(_objectSpread$2({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread$2(_objectSpread$2({}, options), {}, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language, options).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? \"\".concat(namespace, \":\").concat(key) : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread$2(_objectSpread$2({}, options), {\n interpolation: _objectSpread$2(_objectSpread$2({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$2({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKeys = [key];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);\n var zeroSuffix = \"\".concat(_this4.options.pluralSeparator, \"zero\");\n\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n\n if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(code, {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (!rule) {\n return [];\n }\n\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this.options.prepend).concat(pluralCategory);\n });\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n\n return this.getSuffixRetroCompatible(rule, count);\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this2 = this;\n\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n }, {\n key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n\n return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: key\n })) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && options.hasOwnProperty(matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread$3({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n var matchedSingleQuotes = optionsString.match(/'/g);\n var matchedDoubleQuotes = optionsString.match(/\"/g);\n\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray(_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n\n var val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\n\nfunction createCachedFormatter(fn) {\n var cache = {};\n return function invokeFormatter(val, lng, options) {\n var key = lng + JSON.stringify(options);\n var formatter = cache[key];\n\n if (!formatter) {\n formatter = fn(lng, options);\n cache[key] = formatter;\n }\n\n return formatter(val);\n };\n}\n\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Formatter);\n\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.NumberFormat(lng, options);\n return function (val) {\n return formatter.format(val);\n };\n }),\n currency: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread$4(_objectSpread$4({}, options), {}, {\n style: 'currency'\n }));\n return function (val) {\n return formatter.format(val);\n };\n }),\n datetime: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.DateTimeFormat(lng, _objectSpread$4({}, options));\n return function (val) {\n return formatter.format(val);\n };\n }),\n relativetime: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.RelativeTimeFormat(lng, _objectSpread$4({}, options));\n return function (val) {\n return formatter.format(val, options.range || 'day');\n };\n }),\n list: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.ListFormat(lng, _objectSpread$4({}, options));\n return function (val) {\n return formatter.format(val);\n };\n })\n };\n this.init(options);\n }\n\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"addCached\",\n value: function addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng, options) {\n var _this = this;\n\n var formats = _format.split(this.formatSeparator);\n\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n\n if (_this.formats[formatName]) {\n var formatted = mem;\n\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this.formats[formatName](mem, l, _objectSpread$4(_objectSpread$4(_objectSpread$4({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n\n return mem;\n }, value);\n return result;\n }\n }]);\n\n return Formatter;\n}();\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n var _super = _createSuper$2(Connector);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.waitingReads = [];\n _this.maxParallelReads = options.maxParallelReads || 10;\n _this.readingCalls = 0;\n _this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n _this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n var toLoad = {};\n var pending = {};\n var toLoadLanguages = {};\n var toLoadNamespaces = {};\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending: pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = {};\n var loadedKeys = q.loaded[l];\n\n if (loadedKeys.length) {\n loadedKeys.forEach(function (ns) {\n if (loaded[l][ns] === undefined) loaded[l][ns] = true;\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng: lng,\n ns: ns,\n fcName: fcName,\n tried: tried,\n wait: wait,\n callback: callback\n });\n return;\n }\n\n this.readingCalls++;\n return this.backend[fcName](lng, ns, function (err, data) {\n _this3.readingCalls--;\n\n if (_this3.waitingReads.length > 0) {\n var next = _this3.waitingReads.shift();\n\n _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n\n if (err && data && tried < _this3.maxRetries) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread$5(_objectSpread$5({}, options), {}, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction noop() {}\n\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n var _super = _createSuper$3(I18n);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized(_this));\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n\n var defOpts = get();\n this.options = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, defOpts), this.options), transformOptions(options));\n\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread$6(_objectSpread$6({}, defOpts.interpolation), this.options.interpolation);\n }\n\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var formatter;\n\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n\n _this4.setResolvedLanguage(l);\n };\n\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n setLngProps(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread$6({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey = options.keyPrefix ? \"\".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;\n return _this5.t(resultKey, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, this.options), options), {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread$6({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\n_defineProperty(I18n, \"createInstance\", function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n});\n\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport default instance;\nexport { changeLanguage, createInstance, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","/*\nTurbo 7.2.4\nCopyright © 2022 37signals LLC\n */\n(function () {\n if (window.Reflect === undefined ||\n window.customElements === undefined ||\n window.customElements.polyfillWrapFlushCallback) {\n return;\n }\n const BuiltInHTMLElement = HTMLElement;\n const wrapperForTheName = {\n HTMLElement: function HTMLElement() {\n return Reflect.construct(BuiltInHTMLElement, [], this.constructor);\n },\n };\n window.HTMLElement = wrapperForTheName[\"HTMLElement\"];\n HTMLElement.prototype = BuiltInHTMLElement.prototype;\n HTMLElement.prototype.constructor = HTMLElement;\n Object.setPrototypeOf(HTMLElement, BuiltInHTMLElement);\n})();\n\n/**\n * The MIT License (MIT)\n * \n * Copyright (c) 2019 Javan Makhmali\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n(function(prototype) {\n if (typeof prototype.requestSubmit == \"function\") return\n\n prototype.requestSubmit = function(submitter) {\n if (submitter) {\n validateSubmitter(submitter, this);\n submitter.click();\n } else {\n submitter = document.createElement(\"input\");\n submitter.type = \"submit\";\n submitter.hidden = true;\n this.appendChild(submitter);\n submitter.click();\n this.removeChild(submitter);\n }\n };\n\n function validateSubmitter(submitter, form) {\n submitter instanceof HTMLElement || raise(TypeError, \"parameter 1 is not of type 'HTMLElement'\");\n submitter.type == \"submit\" || raise(TypeError, \"The specified element is not a submit button\");\n submitter.form == form || raise(DOMException, \"The specified element is not owned by this form element\", \"NotFoundError\");\n }\n\n function raise(errorConstructor, message, name) {\n throw new errorConstructor(\"Failed to execute 'requestSubmit' on 'HTMLFormElement': \" + message + \".\", name)\n }\n})(HTMLFormElement.prototype);\n\nconst submittersByForm = new WeakMap();\nfunction findSubmitterFromClickTarget(target) {\n const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;\n const candidate = element ? element.closest(\"input, button\") : null;\n return (candidate === null || candidate === void 0 ? void 0 : candidate.type) == \"submit\" ? candidate : null;\n}\nfunction clickCaptured(event) {\n const submitter = findSubmitterFromClickTarget(event.target);\n if (submitter && submitter.form) {\n submittersByForm.set(submitter.form, submitter);\n }\n}\n(function () {\n if (\"submitter\" in Event.prototype)\n return;\n let prototype;\n if (\"SubmitEvent\" in window && /Apple Computer/.test(navigator.vendor)) {\n prototype = window.SubmitEvent.prototype;\n }\n else if (\"SubmitEvent\" in window) {\n return;\n }\n else {\n prototype = window.Event.prototype;\n }\n addEventListener(\"click\", clickCaptured, true);\n Object.defineProperty(prototype, \"submitter\", {\n get() {\n if (this.type == \"submit\" && this.target instanceof HTMLFormElement) {\n return submittersByForm.get(this.target);\n }\n },\n });\n})();\n\nvar FrameLoadingStyle;\n(function (FrameLoadingStyle) {\n FrameLoadingStyle[\"eager\"] = \"eager\";\n FrameLoadingStyle[\"lazy\"] = \"lazy\";\n})(FrameLoadingStyle || (FrameLoadingStyle = {}));\nclass FrameElement extends HTMLElement {\n constructor() {\n super();\n this.loaded = Promise.resolve();\n this.delegate = new FrameElement.delegateConstructor(this);\n }\n static get observedAttributes() {\n return [\"disabled\", \"complete\", \"loading\", \"src\"];\n }\n connectedCallback() {\n this.delegate.connect();\n }\n disconnectedCallback() {\n this.delegate.disconnect();\n }\n reload() {\n return this.delegate.sourceURLReloaded();\n }\n attributeChangedCallback(name) {\n if (name == \"loading\") {\n this.delegate.loadingStyleChanged();\n }\n else if (name == \"complete\") {\n this.delegate.completeChanged();\n }\n else if (name == \"src\") {\n this.delegate.sourceURLChanged();\n }\n else {\n this.delegate.disabledChanged();\n }\n }\n get src() {\n return this.getAttribute(\"src\");\n }\n set src(value) {\n if (value) {\n this.setAttribute(\"src\", value);\n }\n else {\n this.removeAttribute(\"src\");\n }\n }\n get loading() {\n return frameLoadingStyleFromString(this.getAttribute(\"loading\") || \"\");\n }\n set loading(value) {\n if (value) {\n this.setAttribute(\"loading\", value);\n }\n else {\n this.removeAttribute(\"loading\");\n }\n }\n get disabled() {\n return this.hasAttribute(\"disabled\");\n }\n set disabled(value) {\n if (value) {\n this.setAttribute(\"disabled\", \"\");\n }\n else {\n this.removeAttribute(\"disabled\");\n }\n }\n get autoscroll() {\n return this.hasAttribute(\"autoscroll\");\n }\n set autoscroll(value) {\n if (value) {\n this.setAttribute(\"autoscroll\", \"\");\n }\n else {\n this.removeAttribute(\"autoscroll\");\n }\n }\n get complete() {\n return !this.delegate.isLoading;\n }\n get isActive() {\n return this.ownerDocument === document && !this.isPreview;\n }\n get isPreview() {\n var _a, _b;\n return (_b = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.documentElement) === null || _b === void 0 ? void 0 : _b.hasAttribute(\"data-turbo-preview\");\n }\n}\nfunction frameLoadingStyleFromString(style) {\n switch (style.toLowerCase()) {\n case \"lazy\":\n return FrameLoadingStyle.lazy;\n default:\n return FrameLoadingStyle.eager;\n }\n}\n\nfunction expandURL(locatable) {\n return new URL(locatable.toString(), document.baseURI);\n}\nfunction getAnchor(url) {\n let anchorMatch;\n if (url.hash) {\n return url.hash.slice(1);\n }\n else if ((anchorMatch = url.href.match(/#(.*)$/))) {\n return anchorMatch[1];\n }\n}\nfunction getAction(form, submitter) {\n const action = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formaction\")) || form.getAttribute(\"action\") || form.action;\n return expandURL(action);\n}\nfunction getExtension(url) {\n return (getLastPathComponent(url).match(/\\.[^.]*$/) || [])[0] || \"\";\n}\nfunction isHTML(url) {\n return !!getExtension(url).match(/^(?:|\\.(?:htm|html|xhtml|php))$/);\n}\nfunction isPrefixedBy(baseURL, url) {\n const prefix = getPrefix(url);\n return baseURL.href === expandURL(prefix).href || baseURL.href.startsWith(prefix);\n}\nfunction locationIsVisitable(location, rootLocation) {\n return isPrefixedBy(location, rootLocation) && isHTML(location);\n}\nfunction getRequestURL(url) {\n const anchor = getAnchor(url);\n return anchor != null ? url.href.slice(0, -(anchor.length + 1)) : url.href;\n}\nfunction toCacheKey(url) {\n return getRequestURL(url);\n}\nfunction urlsAreEqual(left, right) {\n return expandURL(left).href == expandURL(right).href;\n}\nfunction getPathComponents(url) {\n return url.pathname.split(\"/\").slice(1);\n}\nfunction getLastPathComponent(url) {\n return getPathComponents(url).slice(-1)[0];\n}\nfunction getPrefix(url) {\n return addTrailingSlash(url.origin + url.pathname);\n}\nfunction addTrailingSlash(value) {\n return value.endsWith(\"/\") ? value : value + \"/\";\n}\n\nclass FetchResponse {\n constructor(response) {\n this.response = response;\n }\n get succeeded() {\n return this.response.ok;\n }\n get failed() {\n return !this.succeeded;\n }\n get clientError() {\n return this.statusCode >= 400 && this.statusCode <= 499;\n }\n get serverError() {\n return this.statusCode >= 500 && this.statusCode <= 599;\n }\n get redirected() {\n return this.response.redirected;\n }\n get location() {\n return expandURL(this.response.url);\n }\n get isHTML() {\n return this.contentType && this.contentType.match(/^(?:text\\/([^\\s;,]+\\b)?html|application\\/xhtml\\+xml)\\b/);\n }\n get statusCode() {\n return this.response.status;\n }\n get contentType() {\n return this.header(\"Content-Type\");\n }\n get responseText() {\n return this.response.clone().text();\n }\n get responseHTML() {\n if (this.isHTML) {\n return this.response.clone().text();\n }\n else {\n return Promise.resolve(undefined);\n }\n }\n header(name) {\n return this.response.headers.get(name);\n }\n}\n\nfunction isAction(action) {\n return action == \"advance\" || action == \"replace\" || action == \"restore\";\n}\n\nfunction activateScriptElement(element) {\n if (element.getAttribute(\"data-turbo-eval\") == \"false\") {\n return element;\n }\n else {\n const createdScriptElement = document.createElement(\"script\");\n const cspNonce = getMetaContent(\"csp-nonce\");\n if (cspNonce) {\n createdScriptElement.nonce = cspNonce;\n }\n createdScriptElement.textContent = element.textContent;\n createdScriptElement.async = false;\n copyElementAttributes(createdScriptElement, element);\n return createdScriptElement;\n }\n}\nfunction copyElementAttributes(destinationElement, sourceElement) {\n for (const { name, value } of sourceElement.attributes) {\n destinationElement.setAttribute(name, value);\n }\n}\nfunction createDocumentFragment(html) {\n const template = document.createElement(\"template\");\n template.innerHTML = html;\n return template.content;\n}\nfunction dispatch(eventName, { target, cancelable, detail } = {}) {\n const event = new CustomEvent(eventName, {\n cancelable,\n bubbles: true,\n detail,\n });\n if (target && target.isConnected) {\n target.dispatchEvent(event);\n }\n else {\n document.documentElement.dispatchEvent(event);\n }\n return event;\n}\nfunction nextAnimationFrame() {\n return new Promise((resolve) => requestAnimationFrame(() => resolve()));\n}\nfunction nextEventLoopTick() {\n return new Promise((resolve) => setTimeout(() => resolve(), 0));\n}\nfunction nextMicrotask() {\n return Promise.resolve();\n}\nfunction parseHTMLDocument(html = \"\") {\n return new DOMParser().parseFromString(html, \"text/html\");\n}\nfunction unindent(strings, ...values) {\n const lines = interpolate(strings, values).replace(/^\\n/, \"\").split(\"\\n\");\n const match = lines[0].match(/^\\s+/);\n const indent = match ? match[0].length : 0;\n return lines.map((line) => line.slice(indent)).join(\"\\n\");\n}\nfunction interpolate(strings, values) {\n return strings.reduce((result, string, i) => {\n const value = values[i] == undefined ? \"\" : values[i];\n return result + string + value;\n }, \"\");\n}\nfunction uuid() {\n return Array.from({ length: 36 })\n .map((_, i) => {\n if (i == 8 || i == 13 || i == 18 || i == 23) {\n return \"-\";\n }\n else if (i == 14) {\n return \"4\";\n }\n else if (i == 19) {\n return (Math.floor(Math.random() * 4) + 8).toString(16);\n }\n else {\n return Math.floor(Math.random() * 15).toString(16);\n }\n })\n .join(\"\");\n}\nfunction getAttribute(attributeName, ...elements) {\n for (const value of elements.map((element) => element === null || element === void 0 ? void 0 : element.getAttribute(attributeName))) {\n if (typeof value == \"string\")\n return value;\n }\n return null;\n}\nfunction hasAttribute(attributeName, ...elements) {\n return elements.some((element) => element && element.hasAttribute(attributeName));\n}\nfunction markAsBusy(...elements) {\n for (const element of elements) {\n if (element.localName == \"turbo-frame\") {\n element.setAttribute(\"busy\", \"\");\n }\n element.setAttribute(\"aria-busy\", \"true\");\n }\n}\nfunction clearBusyState(...elements) {\n for (const element of elements) {\n if (element.localName == \"turbo-frame\") {\n element.removeAttribute(\"busy\");\n }\n element.removeAttribute(\"aria-busy\");\n }\n}\nfunction waitForLoad(element, timeoutInMilliseconds = 2000) {\n return new Promise((resolve) => {\n const onComplete = () => {\n element.removeEventListener(\"error\", onComplete);\n element.removeEventListener(\"load\", onComplete);\n resolve();\n };\n element.addEventListener(\"load\", onComplete, { once: true });\n element.addEventListener(\"error\", onComplete, { once: true });\n setTimeout(resolve, timeoutInMilliseconds);\n });\n}\nfunction getHistoryMethodForAction(action) {\n switch (action) {\n case \"replace\":\n return history.replaceState;\n case \"advance\":\n case \"restore\":\n return history.pushState;\n }\n}\nfunction getVisitAction(...elements) {\n const action = getAttribute(\"data-turbo-action\", ...elements);\n return isAction(action) ? action : null;\n}\nfunction getMetaElement(name) {\n return document.querySelector(`meta[name=\"${name}\"]`);\n}\nfunction getMetaContent(name) {\n const element = getMetaElement(name);\n return element && element.content;\n}\nfunction setMetaContent(name, content) {\n let element = getMetaElement(name);\n if (!element) {\n element = document.createElement(\"meta\");\n element.setAttribute(\"name\", name);\n document.head.appendChild(element);\n }\n element.setAttribute(\"content\", content);\n return element;\n}\n\nvar FetchMethod;\n(function (FetchMethod) {\n FetchMethod[FetchMethod[\"get\"] = 0] = \"get\";\n FetchMethod[FetchMethod[\"post\"] = 1] = \"post\";\n FetchMethod[FetchMethod[\"put\"] = 2] = \"put\";\n FetchMethod[FetchMethod[\"patch\"] = 3] = \"patch\";\n FetchMethod[FetchMethod[\"delete\"] = 4] = \"delete\";\n})(FetchMethod || (FetchMethod = {}));\nfunction fetchMethodFromString(method) {\n switch (method.toLowerCase()) {\n case \"get\":\n return FetchMethod.get;\n case \"post\":\n return FetchMethod.post;\n case \"put\":\n return FetchMethod.put;\n case \"patch\":\n return FetchMethod.patch;\n case \"delete\":\n return FetchMethod.delete;\n }\n}\nclass FetchRequest {\n constructor(delegate, method, location, body = new URLSearchParams(), target = null) {\n this.abortController = new AbortController();\n this.resolveRequestPromise = (_value) => { };\n this.delegate = delegate;\n this.method = method;\n this.headers = this.defaultHeaders;\n this.body = body;\n this.url = location;\n this.target = target;\n }\n get location() {\n return this.url;\n }\n get params() {\n return this.url.searchParams;\n }\n get entries() {\n return this.body ? Array.from(this.body.entries()) : [];\n }\n cancel() {\n this.abortController.abort();\n }\n async perform() {\n var _a, _b;\n const { fetchOptions } = this;\n (_b = (_a = this.delegate).prepareHeadersForRequest) === null || _b === void 0 ? void 0 : _b.call(_a, this.headers, this);\n await this.allowRequestToBeIntercepted(fetchOptions);\n try {\n this.delegate.requestStarted(this);\n const response = await fetch(this.url.href, fetchOptions);\n return await this.receive(response);\n }\n catch (error) {\n if (error.name !== \"AbortError\") {\n if (this.willDelegateErrorHandling(error)) {\n this.delegate.requestErrored(this, error);\n }\n throw error;\n }\n }\n finally {\n this.delegate.requestFinished(this);\n }\n }\n async receive(response) {\n const fetchResponse = new FetchResponse(response);\n const event = dispatch(\"turbo:before-fetch-response\", {\n cancelable: true,\n detail: { fetchResponse },\n target: this.target,\n });\n if (event.defaultPrevented) {\n this.delegate.requestPreventedHandlingResponse(this, fetchResponse);\n }\n else if (fetchResponse.succeeded) {\n this.delegate.requestSucceededWithResponse(this, fetchResponse);\n }\n else {\n this.delegate.requestFailedWithResponse(this, fetchResponse);\n }\n return fetchResponse;\n }\n get fetchOptions() {\n var _a;\n return {\n method: FetchMethod[this.method].toUpperCase(),\n credentials: \"same-origin\",\n headers: this.headers,\n redirect: \"follow\",\n body: this.isIdempotent ? null : this.body,\n signal: this.abortSignal,\n referrer: (_a = this.delegate.referrer) === null || _a === void 0 ? void 0 : _a.href,\n };\n }\n get defaultHeaders() {\n return {\n Accept: \"text/html, application/xhtml+xml\",\n };\n }\n get isIdempotent() {\n return this.method == FetchMethod.get;\n }\n get abortSignal() {\n return this.abortController.signal;\n }\n acceptResponseType(mimeType) {\n this.headers[\"Accept\"] = [mimeType, this.headers[\"Accept\"]].join(\", \");\n }\n async allowRequestToBeIntercepted(fetchOptions) {\n const requestInterception = new Promise((resolve) => (this.resolveRequestPromise = resolve));\n const event = dispatch(\"turbo:before-fetch-request\", {\n cancelable: true,\n detail: {\n fetchOptions,\n url: this.url,\n resume: this.resolveRequestPromise,\n },\n target: this.target,\n });\n if (event.defaultPrevented)\n await requestInterception;\n }\n willDelegateErrorHandling(error) {\n const event = dispatch(\"turbo:fetch-request-error\", {\n target: this.target,\n cancelable: true,\n detail: { request: this, error: error },\n });\n return !event.defaultPrevented;\n }\n}\n\nclass AppearanceObserver {\n constructor(delegate, element) {\n this.started = false;\n this.intersect = (entries) => {\n const lastEntry = entries.slice(-1)[0];\n if (lastEntry === null || lastEntry === void 0 ? void 0 : lastEntry.isIntersecting) {\n this.delegate.elementAppearedInViewport(this.element);\n }\n };\n this.delegate = delegate;\n this.element = element;\n this.intersectionObserver = new IntersectionObserver(this.intersect);\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.intersectionObserver.observe(this.element);\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n this.intersectionObserver.unobserve(this.element);\n }\n }\n}\n\nclass StreamMessage {\n constructor(fragment) {\n this.fragment = importStreamElements(fragment);\n }\n static wrap(message) {\n if (typeof message == \"string\") {\n return new this(createDocumentFragment(message));\n }\n else {\n return message;\n }\n }\n}\nStreamMessage.contentType = \"text/vnd.turbo-stream.html\";\nfunction importStreamElements(fragment) {\n for (const element of fragment.querySelectorAll(\"turbo-stream\")) {\n const streamElement = document.importNode(element, true);\n for (const inertScriptElement of streamElement.templateElement.content.querySelectorAll(\"script\")) {\n inertScriptElement.replaceWith(activateScriptElement(inertScriptElement));\n }\n element.replaceWith(streamElement);\n }\n return fragment;\n}\n\nvar FormSubmissionState;\n(function (FormSubmissionState) {\n FormSubmissionState[FormSubmissionState[\"initialized\"] = 0] = \"initialized\";\n FormSubmissionState[FormSubmissionState[\"requesting\"] = 1] = \"requesting\";\n FormSubmissionState[FormSubmissionState[\"waiting\"] = 2] = \"waiting\";\n FormSubmissionState[FormSubmissionState[\"receiving\"] = 3] = \"receiving\";\n FormSubmissionState[FormSubmissionState[\"stopping\"] = 4] = \"stopping\";\n FormSubmissionState[FormSubmissionState[\"stopped\"] = 5] = \"stopped\";\n})(FormSubmissionState || (FormSubmissionState = {}));\nvar FormEnctype;\n(function (FormEnctype) {\n FormEnctype[\"urlEncoded\"] = \"application/x-www-form-urlencoded\";\n FormEnctype[\"multipart\"] = \"multipart/form-data\";\n FormEnctype[\"plain\"] = \"text/plain\";\n})(FormEnctype || (FormEnctype = {}));\nfunction formEnctypeFromString(encoding) {\n switch (encoding.toLowerCase()) {\n case FormEnctype.multipart:\n return FormEnctype.multipart;\n case FormEnctype.plain:\n return FormEnctype.plain;\n default:\n return FormEnctype.urlEncoded;\n }\n}\nclass FormSubmission {\n constructor(delegate, formElement, submitter, mustRedirect = false) {\n this.state = FormSubmissionState.initialized;\n this.delegate = delegate;\n this.formElement = formElement;\n this.submitter = submitter;\n this.formData = buildFormData(formElement, submitter);\n this.location = expandURL(this.action);\n if (this.method == FetchMethod.get) {\n mergeFormDataEntries(this.location, [...this.body.entries()]);\n }\n this.fetchRequest = new FetchRequest(this, this.method, this.location, this.body, this.formElement);\n this.mustRedirect = mustRedirect;\n }\n static confirmMethod(message, _element, _submitter) {\n return Promise.resolve(confirm(message));\n }\n get method() {\n var _a;\n const method = ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formmethod\")) || this.formElement.getAttribute(\"method\") || \"\";\n return fetchMethodFromString(method.toLowerCase()) || FetchMethod.get;\n }\n get action() {\n var _a;\n const formElementAction = typeof this.formElement.action === \"string\" ? this.formElement.action : null;\n if ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.hasAttribute(\"formaction\")) {\n return this.submitter.getAttribute(\"formaction\") || \"\";\n }\n else {\n return this.formElement.getAttribute(\"action\") || formElementAction || \"\";\n }\n }\n get body() {\n if (this.enctype == FormEnctype.urlEncoded || this.method == FetchMethod.get) {\n return new URLSearchParams(this.stringFormData);\n }\n else {\n return this.formData;\n }\n }\n get enctype() {\n var _a;\n return formEnctypeFromString(((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formenctype\")) || this.formElement.enctype);\n }\n get isIdempotent() {\n return this.fetchRequest.isIdempotent;\n }\n get stringFormData() {\n return [...this.formData].reduce((entries, [name, value]) => {\n return entries.concat(typeof value == \"string\" ? [[name, value]] : []);\n }, []);\n }\n async start() {\n const { initialized, requesting } = FormSubmissionState;\n const confirmationMessage = getAttribute(\"data-turbo-confirm\", this.submitter, this.formElement);\n if (typeof confirmationMessage === \"string\") {\n const answer = await FormSubmission.confirmMethod(confirmationMessage, this.formElement, this.submitter);\n if (!answer) {\n return;\n }\n }\n if (this.state == initialized) {\n this.state = requesting;\n return this.fetchRequest.perform();\n }\n }\n stop() {\n const { stopping, stopped } = FormSubmissionState;\n if (this.state != stopping && this.state != stopped) {\n this.state = stopping;\n this.fetchRequest.cancel();\n return true;\n }\n }\n prepareHeadersForRequest(headers, request) {\n if (!request.isIdempotent) {\n const token = getCookieValue(getMetaContent(\"csrf-param\")) || getMetaContent(\"csrf-token\");\n if (token) {\n headers[\"X-CSRF-Token\"] = token;\n }\n }\n if (this.requestAcceptsTurboStreamResponse(request)) {\n request.acceptResponseType(StreamMessage.contentType);\n }\n }\n requestStarted(_request) {\n var _a;\n this.state = FormSubmissionState.waiting;\n (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.setAttribute(\"disabled\", \"\");\n dispatch(\"turbo:submit-start\", {\n target: this.formElement,\n detail: { formSubmission: this },\n });\n this.delegate.formSubmissionStarted(this);\n }\n requestPreventedHandlingResponse(request, response) {\n this.result = { success: response.succeeded, fetchResponse: response };\n }\n requestSucceededWithResponse(request, response) {\n if (response.clientError || response.serverError) {\n this.delegate.formSubmissionFailedWithResponse(this, response);\n }\n else if (this.requestMustRedirect(request) && responseSucceededWithoutRedirect(response)) {\n const error = new Error(\"Form responses must redirect to another location\");\n this.delegate.formSubmissionErrored(this, error);\n }\n else {\n this.state = FormSubmissionState.receiving;\n this.result = { success: true, fetchResponse: response };\n this.delegate.formSubmissionSucceededWithResponse(this, response);\n }\n }\n requestFailedWithResponse(request, response) {\n this.result = { success: false, fetchResponse: response };\n this.delegate.formSubmissionFailedWithResponse(this, response);\n }\n requestErrored(request, error) {\n this.result = { success: false, error };\n this.delegate.formSubmissionErrored(this, error);\n }\n requestFinished(_request) {\n var _a;\n this.state = FormSubmissionState.stopped;\n (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.removeAttribute(\"disabled\");\n dispatch(\"turbo:submit-end\", {\n target: this.formElement,\n detail: Object.assign({ formSubmission: this }, this.result),\n });\n this.delegate.formSubmissionFinished(this);\n }\n requestMustRedirect(request) {\n return !request.isIdempotent && this.mustRedirect;\n }\n requestAcceptsTurboStreamResponse(request) {\n return !request.isIdempotent || hasAttribute(\"data-turbo-stream\", this.submitter, this.formElement);\n }\n}\nfunction buildFormData(formElement, submitter) {\n const formData = new FormData(formElement);\n const name = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"name\");\n const value = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"value\");\n if (name) {\n formData.append(name, value || \"\");\n }\n return formData;\n}\nfunction getCookieValue(cookieName) {\n if (cookieName != null) {\n const cookies = document.cookie ? document.cookie.split(\"; \") : [];\n const cookie = cookies.find((cookie) => cookie.startsWith(cookieName));\n if (cookie) {\n const value = cookie.split(\"=\").slice(1).join(\"=\");\n return value ? decodeURIComponent(value) : undefined;\n }\n }\n}\nfunction responseSucceededWithoutRedirect(response) {\n return response.statusCode == 200 && !response.redirected;\n}\nfunction mergeFormDataEntries(url, entries) {\n const searchParams = new URLSearchParams();\n for (const [name, value] of entries) {\n if (value instanceof File)\n continue;\n searchParams.append(name, value);\n }\n url.search = searchParams.toString();\n return url;\n}\n\nclass Snapshot {\n constructor(element) {\n this.element = element;\n }\n get activeElement() {\n return this.element.ownerDocument.activeElement;\n }\n get children() {\n return [...this.element.children];\n }\n hasAnchor(anchor) {\n return this.getElementForAnchor(anchor) != null;\n }\n getElementForAnchor(anchor) {\n return anchor ? this.element.querySelector(`[id='${anchor}'], a[name='${anchor}']`) : null;\n }\n get isConnected() {\n return this.element.isConnected;\n }\n get firstAutofocusableElement() {\n const inertDisabledOrHidden = \"[inert], :disabled, [hidden], details:not([open]), dialog:not([open])\";\n for (const element of this.element.querySelectorAll(\"[autofocus]\")) {\n if (element.closest(inertDisabledOrHidden) == null)\n return element;\n else\n continue;\n }\n return null;\n }\n get permanentElements() {\n return queryPermanentElementsAll(this.element);\n }\n getPermanentElementById(id) {\n return getPermanentElementById(this.element, id);\n }\n getPermanentElementMapForSnapshot(snapshot) {\n const permanentElementMap = {};\n for (const currentPermanentElement of this.permanentElements) {\n const { id } = currentPermanentElement;\n const newPermanentElement = snapshot.getPermanentElementById(id);\n if (newPermanentElement) {\n permanentElementMap[id] = [currentPermanentElement, newPermanentElement];\n }\n }\n return permanentElementMap;\n }\n}\nfunction getPermanentElementById(node, id) {\n return node.querySelector(`#${id}[data-turbo-permanent]`);\n}\nfunction queryPermanentElementsAll(node) {\n return node.querySelectorAll(\"[id][data-turbo-permanent]\");\n}\n\nclass FormSubmitObserver {\n constructor(delegate, eventTarget) {\n this.started = false;\n this.submitCaptured = () => {\n this.eventTarget.removeEventListener(\"submit\", this.submitBubbled, false);\n this.eventTarget.addEventListener(\"submit\", this.submitBubbled, false);\n };\n this.submitBubbled = ((event) => {\n if (!event.defaultPrevented) {\n const form = event.target instanceof HTMLFormElement ? event.target : undefined;\n const submitter = event.submitter || undefined;\n if (form &&\n submissionDoesNotDismissDialog(form, submitter) &&\n submissionDoesNotTargetIFrame(form, submitter) &&\n this.delegate.willSubmitForm(form, submitter)) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.delegate.formSubmitted(form, submitter);\n }\n }\n });\n this.delegate = delegate;\n this.eventTarget = eventTarget;\n }\n start() {\n if (!this.started) {\n this.eventTarget.addEventListener(\"submit\", this.submitCaptured, true);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n this.eventTarget.removeEventListener(\"submit\", this.submitCaptured, true);\n this.started = false;\n }\n }\n}\nfunction submissionDoesNotDismissDialog(form, submitter) {\n const method = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formmethod\")) || form.getAttribute(\"method\");\n return method != \"dialog\";\n}\nfunction submissionDoesNotTargetIFrame(form, submitter) {\n const target = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formtarget\")) || form.target;\n for (const element of document.getElementsByName(target)) {\n if (element instanceof HTMLIFrameElement)\n return false;\n }\n return true;\n}\n\nclass View {\n constructor(delegate, element) {\n this.resolveRenderPromise = (_value) => { };\n this.resolveInterceptionPromise = (_value) => { };\n this.delegate = delegate;\n this.element = element;\n }\n scrollToAnchor(anchor) {\n const element = this.snapshot.getElementForAnchor(anchor);\n if (element) {\n this.scrollToElement(element);\n this.focusElement(element);\n }\n else {\n this.scrollToPosition({ x: 0, y: 0 });\n }\n }\n scrollToAnchorFromLocation(location) {\n this.scrollToAnchor(getAnchor(location));\n }\n scrollToElement(element) {\n element.scrollIntoView();\n }\n focusElement(element) {\n if (element instanceof HTMLElement) {\n if (element.hasAttribute(\"tabindex\")) {\n element.focus();\n }\n else {\n element.setAttribute(\"tabindex\", \"-1\");\n element.focus();\n element.removeAttribute(\"tabindex\");\n }\n }\n }\n scrollToPosition({ x, y }) {\n this.scrollRoot.scrollTo(x, y);\n }\n scrollToTop() {\n this.scrollToPosition({ x: 0, y: 0 });\n }\n get scrollRoot() {\n return window;\n }\n async render(renderer) {\n const { isPreview, shouldRender, newSnapshot: snapshot } = renderer;\n if (shouldRender) {\n try {\n this.renderPromise = new Promise((resolve) => (this.resolveRenderPromise = resolve));\n this.renderer = renderer;\n await this.prepareToRenderSnapshot(renderer);\n const renderInterception = new Promise((resolve) => (this.resolveInterceptionPromise = resolve));\n const options = { resume: this.resolveInterceptionPromise, render: this.renderer.renderElement };\n const immediateRender = this.delegate.allowsImmediateRender(snapshot, options);\n if (!immediateRender)\n await renderInterception;\n await this.renderSnapshot(renderer);\n this.delegate.viewRenderedSnapshot(snapshot, isPreview);\n this.delegate.preloadOnLoadLinksForView(this.element);\n this.finishRenderingSnapshot(renderer);\n }\n finally {\n delete this.renderer;\n this.resolveRenderPromise(undefined);\n delete this.renderPromise;\n }\n }\n else {\n this.invalidate(renderer.reloadReason);\n }\n }\n invalidate(reason) {\n this.delegate.viewInvalidated(reason);\n }\n async prepareToRenderSnapshot(renderer) {\n this.markAsPreview(renderer.isPreview);\n await renderer.prepareToRender();\n }\n markAsPreview(isPreview) {\n if (isPreview) {\n this.element.setAttribute(\"data-turbo-preview\", \"\");\n }\n else {\n this.element.removeAttribute(\"data-turbo-preview\");\n }\n }\n async renderSnapshot(renderer) {\n await renderer.render();\n }\n finishRenderingSnapshot(renderer) {\n renderer.finishRendering();\n }\n}\n\nclass FrameView extends View {\n invalidate() {\n this.element.innerHTML = \"\";\n }\n get snapshot() {\n return new Snapshot(this.element);\n }\n}\n\nclass LinkInterceptor {\n constructor(delegate, element) {\n this.clickBubbled = (event) => {\n if (this.respondsToEventTarget(event.target)) {\n this.clickEvent = event;\n }\n else {\n delete this.clickEvent;\n }\n };\n this.linkClicked = ((event) => {\n if (this.clickEvent && this.respondsToEventTarget(event.target) && event.target instanceof Element) {\n if (this.delegate.shouldInterceptLinkClick(event.target, event.detail.url, event.detail.originalEvent)) {\n this.clickEvent.preventDefault();\n event.preventDefault();\n this.delegate.linkClickIntercepted(event.target, event.detail.url, event.detail.originalEvent);\n }\n }\n delete this.clickEvent;\n });\n this.willVisit = ((_event) => {\n delete this.clickEvent;\n });\n this.delegate = delegate;\n this.element = element;\n }\n start() {\n this.element.addEventListener(\"click\", this.clickBubbled);\n document.addEventListener(\"turbo:click\", this.linkClicked);\n document.addEventListener(\"turbo:before-visit\", this.willVisit);\n }\n stop() {\n this.element.removeEventListener(\"click\", this.clickBubbled);\n document.removeEventListener(\"turbo:click\", this.linkClicked);\n document.removeEventListener(\"turbo:before-visit\", this.willVisit);\n }\n respondsToEventTarget(target) {\n const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;\n return element && element.closest(\"turbo-frame, html\") == this.element;\n }\n}\n\nclass LinkClickObserver {\n constructor(delegate, eventTarget) {\n this.started = false;\n this.clickCaptured = () => {\n this.eventTarget.removeEventListener(\"click\", this.clickBubbled, false);\n this.eventTarget.addEventListener(\"click\", this.clickBubbled, false);\n };\n this.clickBubbled = (event) => {\n if (event instanceof MouseEvent && this.clickEventIsSignificant(event)) {\n const target = (event.composedPath && event.composedPath()[0]) || event.target;\n const link = this.findLinkFromClickTarget(target);\n if (link && doesNotTargetIFrame(link)) {\n const location = this.getLocationForLink(link);\n if (this.delegate.willFollowLinkToLocation(link, location, event)) {\n event.preventDefault();\n this.delegate.followedLinkToLocation(link, location);\n }\n }\n }\n };\n this.delegate = delegate;\n this.eventTarget = eventTarget;\n }\n start() {\n if (!this.started) {\n this.eventTarget.addEventListener(\"click\", this.clickCaptured, true);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n this.eventTarget.removeEventListener(\"click\", this.clickCaptured, true);\n this.started = false;\n }\n }\n clickEventIsSignificant(event) {\n return !((event.target && event.target.isContentEditable) ||\n event.defaultPrevented ||\n event.which > 1 ||\n event.altKey ||\n event.ctrlKey ||\n event.metaKey ||\n event.shiftKey);\n }\n findLinkFromClickTarget(target) {\n if (target instanceof Element) {\n return target.closest(\"a[href]:not([target^=_]):not([download])\");\n }\n }\n getLocationForLink(link) {\n return expandURL(link.getAttribute(\"href\") || \"\");\n }\n}\nfunction doesNotTargetIFrame(anchor) {\n for (const element of document.getElementsByName(anchor.target)) {\n if (element instanceof HTMLIFrameElement)\n return false;\n }\n return true;\n}\n\nclass FormLinkClickObserver {\n constructor(delegate, element) {\n this.delegate = delegate;\n this.linkInterceptor = new LinkClickObserver(this, element);\n }\n start() {\n this.linkInterceptor.start();\n }\n stop() {\n this.linkInterceptor.stop();\n }\n willFollowLinkToLocation(link, location, originalEvent) {\n return (this.delegate.willSubmitFormLinkToLocation(link, location, originalEvent) &&\n link.hasAttribute(\"data-turbo-method\"));\n }\n followedLinkToLocation(link, location) {\n const action = location.href;\n const form = document.createElement(\"form\");\n form.setAttribute(\"data-turbo\", \"true\");\n form.setAttribute(\"action\", action);\n form.setAttribute(\"hidden\", \"\");\n const method = link.getAttribute(\"data-turbo-method\");\n if (method)\n form.setAttribute(\"method\", method);\n const turboFrame = link.getAttribute(\"data-turbo-frame\");\n if (turboFrame)\n form.setAttribute(\"data-turbo-frame\", turboFrame);\n const turboAction = link.getAttribute(\"data-turbo-action\");\n if (turboAction)\n form.setAttribute(\"data-turbo-action\", turboAction);\n const turboConfirm = link.getAttribute(\"data-turbo-confirm\");\n if (turboConfirm)\n form.setAttribute(\"data-turbo-confirm\", turboConfirm);\n const turboStream = link.hasAttribute(\"data-turbo-stream\");\n if (turboStream)\n form.setAttribute(\"data-turbo-stream\", \"\");\n this.delegate.submittedFormLinkToLocation(link, location, form);\n document.body.appendChild(form);\n form.addEventListener(\"turbo:submit-end\", () => form.remove(), { once: true });\n requestAnimationFrame(() => form.requestSubmit());\n }\n}\n\nclass Bardo {\n constructor(delegate, permanentElementMap) {\n this.delegate = delegate;\n this.permanentElementMap = permanentElementMap;\n }\n static preservingPermanentElements(delegate, permanentElementMap, callback) {\n const bardo = new this(delegate, permanentElementMap);\n bardo.enter();\n callback();\n bardo.leave();\n }\n enter() {\n for (const id in this.permanentElementMap) {\n const [currentPermanentElement, newPermanentElement] = this.permanentElementMap[id];\n this.delegate.enteringBardo(currentPermanentElement, newPermanentElement);\n this.replaceNewPermanentElementWithPlaceholder(newPermanentElement);\n }\n }\n leave() {\n for (const id in this.permanentElementMap) {\n const [currentPermanentElement] = this.permanentElementMap[id];\n this.replaceCurrentPermanentElementWithClone(currentPermanentElement);\n this.replacePlaceholderWithPermanentElement(currentPermanentElement);\n this.delegate.leavingBardo(currentPermanentElement);\n }\n }\n replaceNewPermanentElementWithPlaceholder(permanentElement) {\n const placeholder = createPlaceholderForPermanentElement(permanentElement);\n permanentElement.replaceWith(placeholder);\n }\n replaceCurrentPermanentElementWithClone(permanentElement) {\n const clone = permanentElement.cloneNode(true);\n permanentElement.replaceWith(clone);\n }\n replacePlaceholderWithPermanentElement(permanentElement) {\n const placeholder = this.getPlaceholderById(permanentElement.id);\n placeholder === null || placeholder === void 0 ? void 0 : placeholder.replaceWith(permanentElement);\n }\n getPlaceholderById(id) {\n return this.placeholders.find((element) => element.content == id);\n }\n get placeholders() {\n return [...document.querySelectorAll(\"meta[name=turbo-permanent-placeholder][content]\")];\n }\n}\nfunction createPlaceholderForPermanentElement(permanentElement) {\n const element = document.createElement(\"meta\");\n element.setAttribute(\"name\", \"turbo-permanent-placeholder\");\n element.setAttribute(\"content\", permanentElement.id);\n return element;\n}\n\nclass Renderer {\n constructor(currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {\n this.activeElement = null;\n this.currentSnapshot = currentSnapshot;\n this.newSnapshot = newSnapshot;\n this.isPreview = isPreview;\n this.willRender = willRender;\n this.renderElement = renderElement;\n this.promise = new Promise((resolve, reject) => (this.resolvingFunctions = { resolve, reject }));\n }\n get shouldRender() {\n return true;\n }\n get reloadReason() {\n return;\n }\n prepareToRender() {\n return;\n }\n finishRendering() {\n if (this.resolvingFunctions) {\n this.resolvingFunctions.resolve();\n delete this.resolvingFunctions;\n }\n }\n preservingPermanentElements(callback) {\n Bardo.preservingPermanentElements(this, this.permanentElementMap, callback);\n }\n focusFirstAutofocusableElement() {\n const element = this.connectedSnapshot.firstAutofocusableElement;\n if (elementIsFocusable(element)) {\n element.focus();\n }\n }\n enteringBardo(currentPermanentElement) {\n if (this.activeElement)\n return;\n if (currentPermanentElement.contains(this.currentSnapshot.activeElement)) {\n this.activeElement = this.currentSnapshot.activeElement;\n }\n }\n leavingBardo(currentPermanentElement) {\n if (currentPermanentElement.contains(this.activeElement) && this.activeElement instanceof HTMLElement) {\n this.activeElement.focus();\n this.activeElement = null;\n }\n }\n get connectedSnapshot() {\n return this.newSnapshot.isConnected ? this.newSnapshot : this.currentSnapshot;\n }\n get currentElement() {\n return this.currentSnapshot.element;\n }\n get newElement() {\n return this.newSnapshot.element;\n }\n get permanentElementMap() {\n return this.currentSnapshot.getPermanentElementMapForSnapshot(this.newSnapshot);\n }\n}\nfunction elementIsFocusable(element) {\n return element && typeof element.focus == \"function\";\n}\n\nclass FrameRenderer extends Renderer {\n constructor(delegate, currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {\n super(currentSnapshot, newSnapshot, renderElement, isPreview, willRender);\n this.delegate = delegate;\n }\n static renderElement(currentElement, newElement) {\n var _a;\n const destinationRange = document.createRange();\n destinationRange.selectNodeContents(currentElement);\n destinationRange.deleteContents();\n const frameElement = newElement;\n const sourceRange = (_a = frameElement.ownerDocument) === null || _a === void 0 ? void 0 : _a.createRange();\n if (sourceRange) {\n sourceRange.selectNodeContents(frameElement);\n currentElement.appendChild(sourceRange.extractContents());\n }\n }\n get shouldRender() {\n return true;\n }\n async render() {\n await nextAnimationFrame();\n this.preservingPermanentElements(() => {\n this.loadFrameElement();\n });\n this.scrollFrameIntoView();\n await nextAnimationFrame();\n this.focusFirstAutofocusableElement();\n await nextAnimationFrame();\n this.activateScriptElements();\n }\n loadFrameElement() {\n this.delegate.willRenderFrame(this.currentElement, this.newElement);\n this.renderElement(this.currentElement, this.newElement);\n }\n scrollFrameIntoView() {\n if (this.currentElement.autoscroll || this.newElement.autoscroll) {\n const element = this.currentElement.firstElementChild;\n const block = readScrollLogicalPosition(this.currentElement.getAttribute(\"data-autoscroll-block\"), \"end\");\n const behavior = readScrollBehavior(this.currentElement.getAttribute(\"data-autoscroll-behavior\"), \"auto\");\n if (element) {\n element.scrollIntoView({ block, behavior });\n return true;\n }\n }\n return false;\n }\n activateScriptElements() {\n for (const inertScriptElement of this.newScriptElements) {\n const activatedScriptElement = activateScriptElement(inertScriptElement);\n inertScriptElement.replaceWith(activatedScriptElement);\n }\n }\n get newScriptElements() {\n return this.currentElement.querySelectorAll(\"script\");\n }\n}\nfunction readScrollLogicalPosition(value, defaultValue) {\n if (value == \"end\" || value == \"start\" || value == \"center\" || value == \"nearest\") {\n return value;\n }\n else {\n return defaultValue;\n }\n}\nfunction readScrollBehavior(value, defaultValue) {\n if (value == \"auto\" || value == \"smooth\") {\n return value;\n }\n else {\n return defaultValue;\n }\n}\n\nclass ProgressBar {\n constructor() {\n this.hiding = false;\n this.value = 0;\n this.visible = false;\n this.trickle = () => {\n this.setValue(this.value + Math.random() / 100);\n };\n this.stylesheetElement = this.createStylesheetElement();\n this.progressElement = this.createProgressElement();\n this.installStylesheetElement();\n this.setValue(0);\n }\n static get defaultCSS() {\n return unindent `\n .turbo-progress-bar {\n position: fixed;\n display: block;\n top: 0;\n left: 0;\n height: 3px;\n background: #0076ff;\n z-index: 2147483647;\n transition:\n width ${ProgressBar.animationDuration}ms ease-out,\n opacity ${ProgressBar.animationDuration / 2}ms ${ProgressBar.animationDuration / 2}ms ease-in;\n transform: translate3d(0, 0, 0);\n }\n `;\n }\n show() {\n if (!this.visible) {\n this.visible = true;\n this.installProgressElement();\n this.startTrickling();\n }\n }\n hide() {\n if (this.visible && !this.hiding) {\n this.hiding = true;\n this.fadeProgressElement(() => {\n this.uninstallProgressElement();\n this.stopTrickling();\n this.visible = false;\n this.hiding = false;\n });\n }\n }\n setValue(value) {\n this.value = value;\n this.refresh();\n }\n installStylesheetElement() {\n document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n }\n installProgressElement() {\n this.progressElement.style.width = \"0\";\n this.progressElement.style.opacity = \"1\";\n document.documentElement.insertBefore(this.progressElement, document.body);\n this.refresh();\n }\n fadeProgressElement(callback) {\n this.progressElement.style.opacity = \"0\";\n setTimeout(callback, ProgressBar.animationDuration * 1.5);\n }\n uninstallProgressElement() {\n if (this.progressElement.parentNode) {\n document.documentElement.removeChild(this.progressElement);\n }\n }\n startTrickling() {\n if (!this.trickleInterval) {\n this.trickleInterval = window.setInterval(this.trickle, ProgressBar.animationDuration);\n }\n }\n stopTrickling() {\n window.clearInterval(this.trickleInterval);\n delete this.trickleInterval;\n }\n refresh() {\n requestAnimationFrame(() => {\n this.progressElement.style.width = `${10 + this.value * 90}%`;\n });\n }\n createStylesheetElement() {\n const element = document.createElement(\"style\");\n element.type = \"text/css\";\n element.textContent = ProgressBar.defaultCSS;\n if (this.cspNonce) {\n element.nonce = this.cspNonce;\n }\n return element;\n }\n createProgressElement() {\n const element = document.createElement(\"div\");\n element.className = \"turbo-progress-bar\";\n return element;\n }\n get cspNonce() {\n return getMetaContent(\"csp-nonce\");\n }\n}\nProgressBar.animationDuration = 300;\n\nclass HeadSnapshot extends Snapshot {\n constructor() {\n super(...arguments);\n this.detailsByOuterHTML = this.children\n .filter((element) => !elementIsNoscript(element))\n .map((element) => elementWithoutNonce(element))\n .reduce((result, element) => {\n const { outerHTML } = element;\n const details = outerHTML in result\n ? result[outerHTML]\n : {\n type: elementType(element),\n tracked: elementIsTracked(element),\n elements: [],\n };\n return Object.assign(Object.assign({}, result), { [outerHTML]: Object.assign(Object.assign({}, details), { elements: [...details.elements, element] }) });\n }, {});\n }\n get trackedElementSignature() {\n return Object.keys(this.detailsByOuterHTML)\n .filter((outerHTML) => this.detailsByOuterHTML[outerHTML].tracked)\n .join(\"\");\n }\n getScriptElementsNotInSnapshot(snapshot) {\n return this.getElementsMatchingTypeNotInSnapshot(\"script\", snapshot);\n }\n getStylesheetElementsNotInSnapshot(snapshot) {\n return this.getElementsMatchingTypeNotInSnapshot(\"stylesheet\", snapshot);\n }\n getElementsMatchingTypeNotInSnapshot(matchedType, snapshot) {\n return Object.keys(this.detailsByOuterHTML)\n .filter((outerHTML) => !(outerHTML in snapshot.detailsByOuterHTML))\n .map((outerHTML) => this.detailsByOuterHTML[outerHTML])\n .filter(({ type }) => type == matchedType)\n .map(({ elements: [element] }) => element);\n }\n get provisionalElements() {\n return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {\n const { type, tracked, elements } = this.detailsByOuterHTML[outerHTML];\n if (type == null && !tracked) {\n return [...result, ...elements];\n }\n else if (elements.length > 1) {\n return [...result, ...elements.slice(1)];\n }\n else {\n return result;\n }\n }, []);\n }\n getMetaValue(name) {\n const element = this.findMetaElementByName(name);\n return element ? element.getAttribute(\"content\") : null;\n }\n findMetaElementByName(name) {\n return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {\n const { elements: [element], } = this.detailsByOuterHTML[outerHTML];\n return elementIsMetaElementWithName(element, name) ? element : result;\n }, undefined);\n }\n}\nfunction elementType(element) {\n if (elementIsScript(element)) {\n return \"script\";\n }\n else if (elementIsStylesheet(element)) {\n return \"stylesheet\";\n }\n}\nfunction elementIsTracked(element) {\n return element.getAttribute(\"data-turbo-track\") == \"reload\";\n}\nfunction elementIsScript(element) {\n const tagName = element.localName;\n return tagName == \"script\";\n}\nfunction elementIsNoscript(element) {\n const tagName = element.localName;\n return tagName == \"noscript\";\n}\nfunction elementIsStylesheet(element) {\n const tagName = element.localName;\n return tagName == \"style\" || (tagName == \"link\" && element.getAttribute(\"rel\") == \"stylesheet\");\n}\nfunction elementIsMetaElementWithName(element, name) {\n const tagName = element.localName;\n return tagName == \"meta\" && element.getAttribute(\"name\") == name;\n}\nfunction elementWithoutNonce(element) {\n if (element.hasAttribute(\"nonce\")) {\n element.setAttribute(\"nonce\", \"\");\n }\n return element;\n}\n\nclass PageSnapshot extends Snapshot {\n constructor(element, headSnapshot) {\n super(element);\n this.headSnapshot = headSnapshot;\n }\n static fromHTMLString(html = \"\") {\n return this.fromDocument(parseHTMLDocument(html));\n }\n static fromElement(element) {\n return this.fromDocument(element.ownerDocument);\n }\n static fromDocument({ head, body }) {\n return new this(body, new HeadSnapshot(head));\n }\n clone() {\n const clonedElement = this.element.cloneNode(true);\n const selectElements = this.element.querySelectorAll(\"select\");\n const clonedSelectElements = clonedElement.querySelectorAll(\"select\");\n for (const [index, source] of selectElements.entries()) {\n const clone = clonedSelectElements[index];\n for (const option of clone.selectedOptions)\n option.selected = false;\n for (const option of source.selectedOptions)\n clone.options[option.index].selected = true;\n }\n for (const clonedPasswordInput of clonedElement.querySelectorAll('input[type=\"password\"]')) {\n clonedPasswordInput.value = \"\";\n }\n return new PageSnapshot(clonedElement, this.headSnapshot);\n }\n get headElement() {\n return this.headSnapshot.element;\n }\n get rootLocation() {\n var _a;\n const root = (_a = this.getSetting(\"root\")) !== null && _a !== void 0 ? _a : \"/\";\n return expandURL(root);\n }\n get cacheControlValue() {\n return this.getSetting(\"cache-control\");\n }\n get isPreviewable() {\n return this.cacheControlValue != \"no-preview\";\n }\n get isCacheable() {\n return this.cacheControlValue != \"no-cache\";\n }\n get isVisitable() {\n return this.getSetting(\"visit-control\") != \"reload\";\n }\n getSetting(name) {\n return this.headSnapshot.getMetaValue(`turbo-${name}`);\n }\n}\n\nvar TimingMetric;\n(function (TimingMetric) {\n TimingMetric[\"visitStart\"] = \"visitStart\";\n TimingMetric[\"requestStart\"] = \"requestStart\";\n TimingMetric[\"requestEnd\"] = \"requestEnd\";\n TimingMetric[\"visitEnd\"] = \"visitEnd\";\n})(TimingMetric || (TimingMetric = {}));\nvar VisitState;\n(function (VisitState) {\n VisitState[\"initialized\"] = \"initialized\";\n VisitState[\"started\"] = \"started\";\n VisitState[\"canceled\"] = \"canceled\";\n VisitState[\"failed\"] = \"failed\";\n VisitState[\"completed\"] = \"completed\";\n})(VisitState || (VisitState = {}));\nconst defaultOptions = {\n action: \"advance\",\n historyChanged: false,\n visitCachedSnapshot: () => { },\n willRender: true,\n updateHistory: true,\n shouldCacheSnapshot: true,\n acceptsStreamResponse: false,\n};\nvar SystemStatusCode;\n(function (SystemStatusCode) {\n SystemStatusCode[SystemStatusCode[\"networkFailure\"] = 0] = \"networkFailure\";\n SystemStatusCode[SystemStatusCode[\"timeoutFailure\"] = -1] = \"timeoutFailure\";\n SystemStatusCode[SystemStatusCode[\"contentTypeMismatch\"] = -2] = \"contentTypeMismatch\";\n})(SystemStatusCode || (SystemStatusCode = {}));\nclass Visit {\n constructor(delegate, location, restorationIdentifier, options = {}) {\n this.identifier = uuid();\n this.timingMetrics = {};\n this.followedRedirect = false;\n this.historyChanged = false;\n this.scrolled = false;\n this.shouldCacheSnapshot = true;\n this.acceptsStreamResponse = false;\n this.snapshotCached = false;\n this.state = VisitState.initialized;\n this.delegate = delegate;\n this.location = location;\n this.restorationIdentifier = restorationIdentifier || uuid();\n const { action, historyChanged, referrer, snapshot, snapshotHTML, response, visitCachedSnapshot, willRender, updateHistory, shouldCacheSnapshot, acceptsStreamResponse, } = Object.assign(Object.assign({}, defaultOptions), options);\n this.action = action;\n this.historyChanged = historyChanged;\n this.referrer = referrer;\n this.snapshot = snapshot;\n this.snapshotHTML = snapshotHTML;\n this.response = response;\n this.isSamePage = this.delegate.locationWithActionIsSamePage(this.location, this.action);\n this.visitCachedSnapshot = visitCachedSnapshot;\n this.willRender = willRender;\n this.updateHistory = updateHistory;\n this.scrolled = !willRender;\n this.shouldCacheSnapshot = shouldCacheSnapshot;\n this.acceptsStreamResponse = acceptsStreamResponse;\n }\n get adapter() {\n return this.delegate.adapter;\n }\n get view() {\n return this.delegate.view;\n }\n get history() {\n return this.delegate.history;\n }\n get restorationData() {\n return this.history.getRestorationDataForIdentifier(this.restorationIdentifier);\n }\n get silent() {\n return this.isSamePage;\n }\n start() {\n if (this.state == VisitState.initialized) {\n this.recordTimingMetric(TimingMetric.visitStart);\n this.state = VisitState.started;\n this.adapter.visitStarted(this);\n this.delegate.visitStarted(this);\n }\n }\n cancel() {\n if (this.state == VisitState.started) {\n if (this.request) {\n this.request.cancel();\n }\n this.cancelRender();\n this.state = VisitState.canceled;\n }\n }\n complete() {\n if (this.state == VisitState.started) {\n this.recordTimingMetric(TimingMetric.visitEnd);\n this.state = VisitState.completed;\n this.followRedirect();\n if (!this.followedRedirect) {\n this.adapter.visitCompleted(this);\n this.delegate.visitCompleted(this);\n }\n }\n }\n fail() {\n if (this.state == VisitState.started) {\n this.state = VisitState.failed;\n this.adapter.visitFailed(this);\n }\n }\n changeHistory() {\n var _a;\n if (!this.historyChanged && this.updateHistory) {\n const actionForHistory = this.location.href === ((_a = this.referrer) === null || _a === void 0 ? void 0 : _a.href) ? \"replace\" : this.action;\n const method = getHistoryMethodForAction(actionForHistory);\n this.history.update(method, this.location, this.restorationIdentifier);\n this.historyChanged = true;\n }\n }\n issueRequest() {\n if (this.hasPreloadedResponse()) {\n this.simulateRequest();\n }\n else if (this.shouldIssueRequest() && !this.request) {\n this.request = new FetchRequest(this, FetchMethod.get, this.location);\n this.request.perform();\n }\n }\n simulateRequest() {\n if (this.response) {\n this.startRequest();\n this.recordResponse();\n this.finishRequest();\n }\n }\n startRequest() {\n this.recordTimingMetric(TimingMetric.requestStart);\n this.adapter.visitRequestStarted(this);\n }\n recordResponse(response = this.response) {\n this.response = response;\n if (response) {\n const { statusCode } = response;\n if (isSuccessful(statusCode)) {\n this.adapter.visitRequestCompleted(this);\n }\n else {\n this.adapter.visitRequestFailedWithStatusCode(this, statusCode);\n }\n }\n }\n finishRequest() {\n this.recordTimingMetric(TimingMetric.requestEnd);\n this.adapter.visitRequestFinished(this);\n }\n loadResponse() {\n if (this.response) {\n const { statusCode, responseHTML } = this.response;\n this.render(async () => {\n if (this.shouldCacheSnapshot)\n this.cacheSnapshot();\n if (this.view.renderPromise)\n await this.view.renderPromise;\n if (isSuccessful(statusCode) && responseHTML != null) {\n await this.view.renderPage(PageSnapshot.fromHTMLString(responseHTML), false, this.willRender, this);\n this.performScroll();\n this.adapter.visitRendered(this);\n this.complete();\n }\n else {\n await this.view.renderError(PageSnapshot.fromHTMLString(responseHTML), this);\n this.adapter.visitRendered(this);\n this.fail();\n }\n });\n }\n }\n getCachedSnapshot() {\n const snapshot = this.view.getCachedSnapshotForLocation(this.location) || this.getPreloadedSnapshot();\n if (snapshot && (!getAnchor(this.location) || snapshot.hasAnchor(getAnchor(this.location)))) {\n if (this.action == \"restore\" || snapshot.isPreviewable) {\n return snapshot;\n }\n }\n }\n getPreloadedSnapshot() {\n if (this.snapshotHTML) {\n return PageSnapshot.fromHTMLString(this.snapshotHTML);\n }\n }\n hasCachedSnapshot() {\n return this.getCachedSnapshot() != null;\n }\n loadCachedSnapshot() {\n const snapshot = this.getCachedSnapshot();\n if (snapshot) {\n const isPreview = this.shouldIssueRequest();\n this.render(async () => {\n this.cacheSnapshot();\n if (this.isSamePage) {\n this.adapter.visitRendered(this);\n }\n else {\n if (this.view.renderPromise)\n await this.view.renderPromise;\n await this.view.renderPage(snapshot, isPreview, this.willRender, this);\n this.performScroll();\n this.adapter.visitRendered(this);\n if (!isPreview) {\n this.complete();\n }\n }\n });\n }\n }\n followRedirect() {\n var _a;\n if (this.redirectedToLocation && !this.followedRedirect && ((_a = this.response) === null || _a === void 0 ? void 0 : _a.redirected)) {\n this.adapter.visitProposedToLocation(this.redirectedToLocation, {\n action: \"replace\",\n response: this.response,\n });\n this.followedRedirect = true;\n }\n }\n goToSamePageAnchor() {\n if (this.isSamePage) {\n this.render(async () => {\n this.cacheSnapshot();\n this.performScroll();\n this.changeHistory();\n this.adapter.visitRendered(this);\n });\n }\n }\n prepareHeadersForRequest(headers, request) {\n if (this.acceptsStreamResponse) {\n request.acceptResponseType(StreamMessage.contentType);\n }\n }\n requestStarted() {\n this.startRequest();\n }\n requestPreventedHandlingResponse(_request, _response) { }\n async requestSucceededWithResponse(request, response) {\n const responseHTML = await response.responseHTML;\n const { redirected, statusCode } = response;\n if (responseHTML == undefined) {\n this.recordResponse({\n statusCode: SystemStatusCode.contentTypeMismatch,\n redirected,\n });\n }\n else {\n this.redirectedToLocation = response.redirected ? response.location : undefined;\n this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n }\n }\n async requestFailedWithResponse(request, response) {\n const responseHTML = await response.responseHTML;\n const { redirected, statusCode } = response;\n if (responseHTML == undefined) {\n this.recordResponse({\n statusCode: SystemStatusCode.contentTypeMismatch,\n redirected,\n });\n }\n else {\n this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n }\n }\n requestErrored(_request, _error) {\n this.recordResponse({\n statusCode: SystemStatusCode.networkFailure,\n redirected: false,\n });\n }\n requestFinished() {\n this.finishRequest();\n }\n performScroll() {\n if (!this.scrolled && !this.view.forceReloaded) {\n if (this.action == \"restore\") {\n this.scrollToRestoredPosition() || this.scrollToAnchor() || this.view.scrollToTop();\n }\n else {\n this.scrollToAnchor() || this.view.scrollToTop();\n }\n if (this.isSamePage) {\n this.delegate.visitScrolledToSamePageLocation(this.view.lastRenderedLocation, this.location);\n }\n this.scrolled = true;\n }\n }\n scrollToRestoredPosition() {\n const { scrollPosition } = this.restorationData;\n if (scrollPosition) {\n this.view.scrollToPosition(scrollPosition);\n return true;\n }\n }\n scrollToAnchor() {\n const anchor = getAnchor(this.location);\n if (anchor != null) {\n this.view.scrollToAnchor(anchor);\n return true;\n }\n }\n recordTimingMetric(metric) {\n this.timingMetrics[metric] = new Date().getTime();\n }\n getTimingMetrics() {\n return Object.assign({}, this.timingMetrics);\n }\n getHistoryMethodForAction(action) {\n switch (action) {\n case \"replace\":\n return history.replaceState;\n case \"advance\":\n case \"restore\":\n return history.pushState;\n }\n }\n hasPreloadedResponse() {\n return typeof this.response == \"object\";\n }\n shouldIssueRequest() {\n if (this.isSamePage) {\n return false;\n }\n else if (this.action == \"restore\") {\n return !this.hasCachedSnapshot();\n }\n else {\n return this.willRender;\n }\n }\n cacheSnapshot() {\n if (!this.snapshotCached) {\n this.view.cacheSnapshot(this.snapshot).then((snapshot) => snapshot && this.visitCachedSnapshot(snapshot));\n this.snapshotCached = true;\n }\n }\n async render(callback) {\n this.cancelRender();\n await new Promise((resolve) => {\n this.frame = requestAnimationFrame(() => resolve());\n });\n await callback();\n delete this.frame;\n }\n cancelRender() {\n if (this.frame) {\n cancelAnimationFrame(this.frame);\n delete this.frame;\n }\n }\n}\nfunction isSuccessful(statusCode) {\n return statusCode >= 200 && statusCode < 300;\n}\n\nclass BrowserAdapter {\n constructor(session) {\n this.progressBar = new ProgressBar();\n this.showProgressBar = () => {\n this.progressBar.show();\n };\n this.session = session;\n }\n visitProposedToLocation(location, options) {\n this.navigator.startVisit(location, (options === null || options === void 0 ? void 0 : options.restorationIdentifier) || uuid(), options);\n }\n visitStarted(visit) {\n this.location = visit.location;\n visit.loadCachedSnapshot();\n visit.issueRequest();\n visit.goToSamePageAnchor();\n }\n visitRequestStarted(visit) {\n this.progressBar.setValue(0);\n if (visit.hasCachedSnapshot() || visit.action != \"restore\") {\n this.showVisitProgressBarAfterDelay();\n }\n else {\n this.showProgressBar();\n }\n }\n visitRequestCompleted(visit) {\n visit.loadResponse();\n }\n visitRequestFailedWithStatusCode(visit, statusCode) {\n switch (statusCode) {\n case SystemStatusCode.networkFailure:\n case SystemStatusCode.timeoutFailure:\n case SystemStatusCode.contentTypeMismatch:\n return this.reload({\n reason: \"request_failed\",\n context: {\n statusCode,\n },\n });\n default:\n return visit.loadResponse();\n }\n }\n visitRequestFinished(_visit) {\n this.progressBar.setValue(1);\n this.hideVisitProgressBar();\n }\n visitCompleted(_visit) { }\n pageInvalidated(reason) {\n this.reload(reason);\n }\n visitFailed(_visit) { }\n visitRendered(_visit) { }\n formSubmissionStarted(_formSubmission) {\n this.progressBar.setValue(0);\n this.showFormProgressBarAfterDelay();\n }\n formSubmissionFinished(_formSubmission) {\n this.progressBar.setValue(1);\n this.hideFormProgressBar();\n }\n showVisitProgressBarAfterDelay() {\n this.visitProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n }\n hideVisitProgressBar() {\n this.progressBar.hide();\n if (this.visitProgressBarTimeout != null) {\n window.clearTimeout(this.visitProgressBarTimeout);\n delete this.visitProgressBarTimeout;\n }\n }\n showFormProgressBarAfterDelay() {\n if (this.formProgressBarTimeout == null) {\n this.formProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n }\n }\n hideFormProgressBar() {\n this.progressBar.hide();\n if (this.formProgressBarTimeout != null) {\n window.clearTimeout(this.formProgressBarTimeout);\n delete this.formProgressBarTimeout;\n }\n }\n reload(reason) {\n var _a;\n dispatch(\"turbo:reload\", { detail: reason });\n window.location.href = ((_a = this.location) === null || _a === void 0 ? void 0 : _a.toString()) || window.location.href;\n }\n get navigator() {\n return this.session.navigator;\n }\n}\n\nclass CacheObserver {\n constructor() {\n this.started = false;\n this.removeStaleElements = ((_event) => {\n const staleElements = [...document.querySelectorAll('[data-turbo-cache=\"false\"]')];\n for (const element of staleElements) {\n element.remove();\n }\n });\n }\n start() {\n if (!this.started) {\n this.started = true;\n addEventListener(\"turbo:before-cache\", this.removeStaleElements, false);\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n removeEventListener(\"turbo:before-cache\", this.removeStaleElements, false);\n }\n }\n}\n\nclass FrameRedirector {\n constructor(session, element) {\n this.session = session;\n this.element = element;\n this.linkInterceptor = new LinkInterceptor(this, element);\n this.formSubmitObserver = new FormSubmitObserver(this, element);\n }\n start() {\n this.linkInterceptor.start();\n this.formSubmitObserver.start();\n }\n stop() {\n this.linkInterceptor.stop();\n this.formSubmitObserver.stop();\n }\n shouldInterceptLinkClick(element, _location, _event) {\n return this.shouldRedirect(element);\n }\n linkClickIntercepted(element, url, event) {\n const frame = this.findFrameElement(element);\n if (frame) {\n frame.delegate.linkClickIntercepted(element, url, event);\n }\n }\n willSubmitForm(element, submitter) {\n return (element.closest(\"turbo-frame\") == null &&\n this.shouldSubmit(element, submitter) &&\n this.shouldRedirect(element, submitter));\n }\n formSubmitted(element, submitter) {\n const frame = this.findFrameElement(element, submitter);\n if (frame) {\n frame.delegate.formSubmitted(element, submitter);\n }\n }\n shouldSubmit(form, submitter) {\n var _a;\n const action = getAction(form, submitter);\n const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n const rootLocation = expandURL((_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : \"/\");\n return this.shouldRedirect(form, submitter) && locationIsVisitable(action, rootLocation);\n }\n shouldRedirect(element, submitter) {\n const isNavigatable = element instanceof HTMLFormElement\n ? this.session.submissionIsNavigatable(element, submitter)\n : this.session.elementIsNavigatable(element);\n if (isNavigatable) {\n const frame = this.findFrameElement(element, submitter);\n return frame ? frame != element.closest(\"turbo-frame\") : false;\n }\n else {\n return false;\n }\n }\n findFrameElement(element, submitter) {\n const id = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"data-turbo-frame\")) || element.getAttribute(\"data-turbo-frame\");\n if (id && id != \"_top\") {\n const frame = this.element.querySelector(`#${id}:not([disabled])`);\n if (frame instanceof FrameElement) {\n return frame;\n }\n }\n }\n}\n\nclass History {\n constructor(delegate) {\n this.restorationIdentifier = uuid();\n this.restorationData = {};\n this.started = false;\n this.pageLoaded = false;\n this.onPopState = (event) => {\n if (this.shouldHandlePopState()) {\n const { turbo } = event.state || {};\n if (turbo) {\n this.location = new URL(window.location.href);\n const { restorationIdentifier } = turbo;\n this.restorationIdentifier = restorationIdentifier;\n this.delegate.historyPoppedToLocationWithRestorationIdentifier(this.location, restorationIdentifier);\n }\n }\n };\n this.onPageLoad = async (_event) => {\n await nextMicrotask();\n this.pageLoaded = true;\n };\n this.delegate = delegate;\n }\n start() {\n if (!this.started) {\n addEventListener(\"popstate\", this.onPopState, false);\n addEventListener(\"load\", this.onPageLoad, false);\n this.started = true;\n this.replace(new URL(window.location.href));\n }\n }\n stop() {\n if (this.started) {\n removeEventListener(\"popstate\", this.onPopState, false);\n removeEventListener(\"load\", this.onPageLoad, false);\n this.started = false;\n }\n }\n push(location, restorationIdentifier) {\n this.update(history.pushState, location, restorationIdentifier);\n }\n replace(location, restorationIdentifier) {\n this.update(history.replaceState, location, restorationIdentifier);\n }\n update(method, location, restorationIdentifier = uuid()) {\n const state = { turbo: { restorationIdentifier } };\n method.call(history, state, \"\", location.href);\n this.location = location;\n this.restorationIdentifier = restorationIdentifier;\n }\n getRestorationDataForIdentifier(restorationIdentifier) {\n return this.restorationData[restorationIdentifier] || {};\n }\n updateRestorationData(additionalData) {\n const { restorationIdentifier } = this;\n const restorationData = this.restorationData[restorationIdentifier];\n this.restorationData[restorationIdentifier] = Object.assign(Object.assign({}, restorationData), additionalData);\n }\n assumeControlOfScrollRestoration() {\n var _a;\n if (!this.previousScrollRestoration) {\n this.previousScrollRestoration = (_a = history.scrollRestoration) !== null && _a !== void 0 ? _a : \"auto\";\n history.scrollRestoration = \"manual\";\n }\n }\n relinquishControlOfScrollRestoration() {\n if (this.previousScrollRestoration) {\n history.scrollRestoration = this.previousScrollRestoration;\n delete this.previousScrollRestoration;\n }\n }\n shouldHandlePopState() {\n return this.pageIsLoaded();\n }\n pageIsLoaded() {\n return this.pageLoaded || document.readyState == \"complete\";\n }\n}\n\nclass Navigator {\n constructor(delegate) {\n this.delegate = delegate;\n }\n proposeVisit(location, options = {}) {\n if (this.delegate.allowsVisitingLocationWithAction(location, options.action)) {\n if (locationIsVisitable(location, this.view.snapshot.rootLocation)) {\n this.delegate.visitProposedToLocation(location, options);\n }\n else {\n window.location.href = location.toString();\n }\n }\n }\n startVisit(locatable, restorationIdentifier, options = {}) {\n this.stop();\n this.currentVisit = new Visit(this, expandURL(locatable), restorationIdentifier, Object.assign({ referrer: this.location }, options));\n this.currentVisit.start();\n }\n submitForm(form, submitter) {\n this.stop();\n this.formSubmission = new FormSubmission(this, form, submitter, true);\n this.formSubmission.start();\n }\n stop() {\n if (this.formSubmission) {\n this.formSubmission.stop();\n delete this.formSubmission;\n }\n if (this.currentVisit) {\n this.currentVisit.cancel();\n delete this.currentVisit;\n }\n }\n get adapter() {\n return this.delegate.adapter;\n }\n get view() {\n return this.delegate.view;\n }\n get history() {\n return this.delegate.history;\n }\n formSubmissionStarted(formSubmission) {\n if (typeof this.adapter.formSubmissionStarted === \"function\") {\n this.adapter.formSubmissionStarted(formSubmission);\n }\n }\n async formSubmissionSucceededWithResponse(formSubmission, fetchResponse) {\n if (formSubmission == this.formSubmission) {\n const responseHTML = await fetchResponse.responseHTML;\n if (responseHTML) {\n const shouldCacheSnapshot = formSubmission.method == FetchMethod.get;\n if (!shouldCacheSnapshot) {\n this.view.clearSnapshotCache();\n }\n const { statusCode, redirected } = fetchResponse;\n const action = this.getActionForFormSubmission(formSubmission);\n const visitOptions = {\n action,\n shouldCacheSnapshot,\n response: { statusCode, responseHTML, redirected },\n };\n this.proposeVisit(fetchResponse.location, visitOptions);\n }\n }\n }\n async formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n const responseHTML = await fetchResponse.responseHTML;\n if (responseHTML) {\n const snapshot = PageSnapshot.fromHTMLString(responseHTML);\n if (fetchResponse.serverError) {\n await this.view.renderError(snapshot, this.currentVisit);\n }\n else {\n await this.view.renderPage(snapshot, false, true, this.currentVisit);\n }\n this.view.scrollToTop();\n this.view.clearSnapshotCache();\n }\n }\n formSubmissionErrored(formSubmission, error) {\n console.error(error);\n }\n formSubmissionFinished(formSubmission) {\n if (typeof this.adapter.formSubmissionFinished === \"function\") {\n this.adapter.formSubmissionFinished(formSubmission);\n }\n }\n visitStarted(visit) {\n this.delegate.visitStarted(visit);\n }\n visitCompleted(visit) {\n this.delegate.visitCompleted(visit);\n }\n locationWithActionIsSamePage(location, action) {\n const anchor = getAnchor(location);\n const currentAnchor = getAnchor(this.view.lastRenderedLocation);\n const isRestorationToTop = action === \"restore\" && typeof anchor === \"undefined\";\n return (action !== \"replace\" &&\n getRequestURL(location) === getRequestURL(this.view.lastRenderedLocation) &&\n (isRestorationToTop || (anchor != null && anchor !== currentAnchor)));\n }\n visitScrolledToSamePageLocation(oldURL, newURL) {\n this.delegate.visitScrolledToSamePageLocation(oldURL, newURL);\n }\n get location() {\n return this.history.location;\n }\n get restorationIdentifier() {\n return this.history.restorationIdentifier;\n }\n getActionForFormSubmission(formSubmission) {\n const { formElement, submitter } = formSubmission;\n const action = getAttribute(\"data-turbo-action\", submitter, formElement);\n return isAction(action) ? action : \"advance\";\n }\n}\n\nvar PageStage;\n(function (PageStage) {\n PageStage[PageStage[\"initial\"] = 0] = \"initial\";\n PageStage[PageStage[\"loading\"] = 1] = \"loading\";\n PageStage[PageStage[\"interactive\"] = 2] = \"interactive\";\n PageStage[PageStage[\"complete\"] = 3] = \"complete\";\n})(PageStage || (PageStage = {}));\nclass PageObserver {\n constructor(delegate) {\n this.stage = PageStage.initial;\n this.started = false;\n this.interpretReadyState = () => {\n const { readyState } = this;\n if (readyState == \"interactive\") {\n this.pageIsInteractive();\n }\n else if (readyState == \"complete\") {\n this.pageIsComplete();\n }\n };\n this.pageWillUnload = () => {\n this.delegate.pageWillUnload();\n };\n this.delegate = delegate;\n }\n start() {\n if (!this.started) {\n if (this.stage == PageStage.initial) {\n this.stage = PageStage.loading;\n }\n document.addEventListener(\"readystatechange\", this.interpretReadyState, false);\n addEventListener(\"pagehide\", this.pageWillUnload, false);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n document.removeEventListener(\"readystatechange\", this.interpretReadyState, false);\n removeEventListener(\"pagehide\", this.pageWillUnload, false);\n this.started = false;\n }\n }\n pageIsInteractive() {\n if (this.stage == PageStage.loading) {\n this.stage = PageStage.interactive;\n this.delegate.pageBecameInteractive();\n }\n }\n pageIsComplete() {\n this.pageIsInteractive();\n if (this.stage == PageStage.interactive) {\n this.stage = PageStage.complete;\n this.delegate.pageLoaded();\n }\n }\n get readyState() {\n return document.readyState;\n }\n}\n\nclass ScrollObserver {\n constructor(delegate) {\n this.started = false;\n this.onScroll = () => {\n this.updatePosition({ x: window.pageXOffset, y: window.pageYOffset });\n };\n this.delegate = delegate;\n }\n start() {\n if (!this.started) {\n addEventListener(\"scroll\", this.onScroll, false);\n this.onScroll();\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n removeEventListener(\"scroll\", this.onScroll, false);\n this.started = false;\n }\n }\n updatePosition(position) {\n this.delegate.scrollPositionChanged(position);\n }\n}\n\nclass StreamMessageRenderer {\n render({ fragment }) {\n Bardo.preservingPermanentElements(this, getPermanentElementMapForFragment(fragment), () => document.documentElement.appendChild(fragment));\n }\n enteringBardo(currentPermanentElement, newPermanentElement) {\n newPermanentElement.replaceWith(currentPermanentElement.cloneNode(true));\n }\n leavingBardo() { }\n}\nfunction getPermanentElementMapForFragment(fragment) {\n const permanentElementsInDocument = queryPermanentElementsAll(document.documentElement);\n const permanentElementMap = {};\n for (const permanentElementInDocument of permanentElementsInDocument) {\n const { id } = permanentElementInDocument;\n for (const streamElement of fragment.querySelectorAll(\"turbo-stream\")) {\n const elementInStream = getPermanentElementById(streamElement.templateElement.content, id);\n if (elementInStream) {\n permanentElementMap[id] = [permanentElementInDocument, elementInStream];\n }\n }\n }\n return permanentElementMap;\n}\n\nclass StreamObserver {\n constructor(delegate) {\n this.sources = new Set();\n this.started = false;\n this.inspectFetchResponse = ((event) => {\n const response = fetchResponseFromEvent(event);\n if (response && fetchResponseIsStream(response)) {\n event.preventDefault();\n this.receiveMessageResponse(response);\n }\n });\n this.receiveMessageEvent = (event) => {\n if (this.started && typeof event.data == \"string\") {\n this.receiveMessageHTML(event.data);\n }\n };\n this.delegate = delegate;\n }\n start() {\n if (!this.started) {\n this.started = true;\n addEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n removeEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n }\n }\n connectStreamSource(source) {\n if (!this.streamSourceIsConnected(source)) {\n this.sources.add(source);\n source.addEventListener(\"message\", this.receiveMessageEvent, false);\n }\n }\n disconnectStreamSource(source) {\n if (this.streamSourceIsConnected(source)) {\n this.sources.delete(source);\n source.removeEventListener(\"message\", this.receiveMessageEvent, false);\n }\n }\n streamSourceIsConnected(source) {\n return this.sources.has(source);\n }\n async receiveMessageResponse(response) {\n const html = await response.responseHTML;\n if (html) {\n this.receiveMessageHTML(html);\n }\n }\n receiveMessageHTML(html) {\n this.delegate.receivedMessageFromStream(StreamMessage.wrap(html));\n }\n}\nfunction fetchResponseFromEvent(event) {\n var _a;\n const fetchResponse = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.fetchResponse;\n if (fetchResponse instanceof FetchResponse) {\n return fetchResponse;\n }\n}\nfunction fetchResponseIsStream(response) {\n var _a;\n const contentType = (_a = response.contentType) !== null && _a !== void 0 ? _a : \"\";\n return contentType.startsWith(StreamMessage.contentType);\n}\n\nclass ErrorRenderer extends Renderer {\n static renderElement(currentElement, newElement) {\n const { documentElement, body } = document;\n documentElement.replaceChild(newElement, body);\n }\n async render() {\n this.replaceHeadAndBody();\n this.activateScriptElements();\n }\n replaceHeadAndBody() {\n const { documentElement, head } = document;\n documentElement.replaceChild(this.newHead, head);\n this.renderElement(this.currentElement, this.newElement);\n }\n activateScriptElements() {\n for (const replaceableElement of this.scriptElements) {\n const parentNode = replaceableElement.parentNode;\n if (parentNode) {\n const element = activateScriptElement(replaceableElement);\n parentNode.replaceChild(element, replaceableElement);\n }\n }\n }\n get newHead() {\n return this.newSnapshot.headSnapshot.element;\n }\n get scriptElements() {\n return document.documentElement.querySelectorAll(\"script\");\n }\n}\n\nclass PageRenderer extends Renderer {\n static renderElement(currentElement, newElement) {\n if (document.body && newElement instanceof HTMLBodyElement) {\n document.body.replaceWith(newElement);\n }\n else {\n document.documentElement.appendChild(newElement);\n }\n }\n get shouldRender() {\n return this.newSnapshot.isVisitable && this.trackedElementsAreIdentical;\n }\n get reloadReason() {\n if (!this.newSnapshot.isVisitable) {\n return {\n reason: \"turbo_visit_control_is_reload\",\n };\n }\n if (!this.trackedElementsAreIdentical) {\n return {\n reason: \"tracked_element_mismatch\",\n };\n }\n }\n async prepareToRender() {\n await this.mergeHead();\n }\n async render() {\n if (this.willRender) {\n this.replaceBody();\n }\n }\n finishRendering() {\n super.finishRendering();\n if (!this.isPreview) {\n this.focusFirstAutofocusableElement();\n }\n }\n get currentHeadSnapshot() {\n return this.currentSnapshot.headSnapshot;\n }\n get newHeadSnapshot() {\n return this.newSnapshot.headSnapshot;\n }\n get newElement() {\n return this.newSnapshot.element;\n }\n async mergeHead() {\n const newStylesheetElements = this.copyNewHeadStylesheetElements();\n this.copyNewHeadScriptElements();\n this.removeCurrentHeadProvisionalElements();\n this.copyNewHeadProvisionalElements();\n await newStylesheetElements;\n }\n replaceBody() {\n this.preservingPermanentElements(() => {\n this.activateNewBody();\n this.assignNewBody();\n });\n }\n get trackedElementsAreIdentical() {\n return this.currentHeadSnapshot.trackedElementSignature == this.newHeadSnapshot.trackedElementSignature;\n }\n async copyNewHeadStylesheetElements() {\n const loadingElements = [];\n for (const element of this.newHeadStylesheetElements) {\n loadingElements.push(waitForLoad(element));\n document.head.appendChild(element);\n }\n await Promise.all(loadingElements);\n }\n copyNewHeadScriptElements() {\n for (const element of this.newHeadScriptElements) {\n document.head.appendChild(activateScriptElement(element));\n }\n }\n removeCurrentHeadProvisionalElements() {\n for (const element of this.currentHeadProvisionalElements) {\n document.head.removeChild(element);\n }\n }\n copyNewHeadProvisionalElements() {\n for (const element of this.newHeadProvisionalElements) {\n document.head.appendChild(element);\n }\n }\n activateNewBody() {\n document.adoptNode(this.newElement);\n this.activateNewBodyScriptElements();\n }\n activateNewBodyScriptElements() {\n for (const inertScriptElement of this.newBodyScriptElements) {\n const activatedScriptElement = activateScriptElement(inertScriptElement);\n inertScriptElement.replaceWith(activatedScriptElement);\n }\n }\n assignNewBody() {\n this.renderElement(this.currentElement, this.newElement);\n }\n get newHeadStylesheetElements() {\n return this.newHeadSnapshot.getStylesheetElementsNotInSnapshot(this.currentHeadSnapshot);\n }\n get newHeadScriptElements() {\n return this.newHeadSnapshot.getScriptElementsNotInSnapshot(this.currentHeadSnapshot);\n }\n get currentHeadProvisionalElements() {\n return this.currentHeadSnapshot.provisionalElements;\n }\n get newHeadProvisionalElements() {\n return this.newHeadSnapshot.provisionalElements;\n }\n get newBodyScriptElements() {\n return this.newElement.querySelectorAll(\"script\");\n }\n}\n\nclass SnapshotCache {\n constructor(size) {\n this.keys = [];\n this.snapshots = {};\n this.size = size;\n }\n has(location) {\n return toCacheKey(location) in this.snapshots;\n }\n get(location) {\n if (this.has(location)) {\n const snapshot = this.read(location);\n this.touch(location);\n return snapshot;\n }\n }\n put(location, snapshot) {\n this.write(location, snapshot);\n this.touch(location);\n return snapshot;\n }\n clear() {\n this.snapshots = {};\n }\n read(location) {\n return this.snapshots[toCacheKey(location)];\n }\n write(location, snapshot) {\n this.snapshots[toCacheKey(location)] = snapshot;\n }\n touch(location) {\n const key = toCacheKey(location);\n const index = this.keys.indexOf(key);\n if (index > -1)\n this.keys.splice(index, 1);\n this.keys.unshift(key);\n this.trim();\n }\n trim() {\n for (const key of this.keys.splice(this.size)) {\n delete this.snapshots[key];\n }\n }\n}\n\nclass PageView extends View {\n constructor() {\n super(...arguments);\n this.snapshotCache = new SnapshotCache(10);\n this.lastRenderedLocation = new URL(location.href);\n this.forceReloaded = false;\n }\n renderPage(snapshot, isPreview = false, willRender = true, visit) {\n const renderer = new PageRenderer(this.snapshot, snapshot, PageRenderer.renderElement, isPreview, willRender);\n if (!renderer.shouldRender) {\n this.forceReloaded = true;\n }\n else {\n visit === null || visit === void 0 ? void 0 : visit.changeHistory();\n }\n return this.render(renderer);\n }\n renderError(snapshot, visit) {\n visit === null || visit === void 0 ? void 0 : visit.changeHistory();\n const renderer = new ErrorRenderer(this.snapshot, snapshot, ErrorRenderer.renderElement, false);\n return this.render(renderer);\n }\n clearSnapshotCache() {\n this.snapshotCache.clear();\n }\n async cacheSnapshot(snapshot = this.snapshot) {\n if (snapshot.isCacheable) {\n this.delegate.viewWillCacheSnapshot();\n const { lastRenderedLocation: location } = this;\n await nextEventLoopTick();\n const cachedSnapshot = snapshot.clone();\n this.snapshotCache.put(location, cachedSnapshot);\n return cachedSnapshot;\n }\n }\n getCachedSnapshotForLocation(location) {\n return this.snapshotCache.get(location);\n }\n get snapshot() {\n return PageSnapshot.fromElement(this.element);\n }\n}\n\nclass Preloader {\n constructor(delegate) {\n this.selector = \"a[data-turbo-preload]\";\n this.delegate = delegate;\n }\n get snapshotCache() {\n return this.delegate.navigator.view.snapshotCache;\n }\n start() {\n if (document.readyState === \"loading\") {\n return document.addEventListener(\"DOMContentLoaded\", () => {\n this.preloadOnLoadLinksForView(document.body);\n });\n }\n else {\n this.preloadOnLoadLinksForView(document.body);\n }\n }\n preloadOnLoadLinksForView(element) {\n for (const link of element.querySelectorAll(this.selector)) {\n this.preloadURL(link);\n }\n }\n async preloadURL(link) {\n const location = new URL(link.href);\n if (this.snapshotCache.has(location)) {\n return;\n }\n try {\n const response = await fetch(location.toString(), { headers: { \"VND.PREFETCH\": \"true\", Accept: \"text/html\" } });\n const responseText = await response.text();\n const snapshot = PageSnapshot.fromHTMLString(responseText);\n this.snapshotCache.put(location, snapshot);\n }\n catch (_) {\n }\n }\n}\n\nclass Session {\n constructor() {\n this.navigator = new Navigator(this);\n this.history = new History(this);\n this.preloader = new Preloader(this);\n this.view = new PageView(this, document.documentElement);\n this.adapter = new BrowserAdapter(this);\n this.pageObserver = new PageObserver(this);\n this.cacheObserver = new CacheObserver();\n this.linkClickObserver = new LinkClickObserver(this, window);\n this.formSubmitObserver = new FormSubmitObserver(this, document);\n this.scrollObserver = new ScrollObserver(this);\n this.streamObserver = new StreamObserver(this);\n this.formLinkClickObserver = new FormLinkClickObserver(this, document.documentElement);\n this.frameRedirector = new FrameRedirector(this, document.documentElement);\n this.streamMessageRenderer = new StreamMessageRenderer();\n this.drive = true;\n this.enabled = true;\n this.progressBarDelay = 500;\n this.started = false;\n this.formMode = \"on\";\n }\n start() {\n if (!this.started) {\n this.pageObserver.start();\n this.cacheObserver.start();\n this.formLinkClickObserver.start();\n this.linkClickObserver.start();\n this.formSubmitObserver.start();\n this.scrollObserver.start();\n this.streamObserver.start();\n this.frameRedirector.start();\n this.history.start();\n this.preloader.start();\n this.started = true;\n this.enabled = true;\n }\n }\n disable() {\n this.enabled = false;\n }\n stop() {\n if (this.started) {\n this.pageObserver.stop();\n this.cacheObserver.stop();\n this.formLinkClickObserver.stop();\n this.linkClickObserver.stop();\n this.formSubmitObserver.stop();\n this.scrollObserver.stop();\n this.streamObserver.stop();\n this.frameRedirector.stop();\n this.history.stop();\n this.started = false;\n }\n }\n registerAdapter(adapter) {\n this.adapter = adapter;\n }\n visit(location, options = {}) {\n const frameElement = options.frame ? document.getElementById(options.frame) : null;\n if (frameElement instanceof FrameElement) {\n frameElement.src = location.toString();\n frameElement.loaded;\n }\n else {\n this.navigator.proposeVisit(expandURL(location), options);\n }\n }\n connectStreamSource(source) {\n this.streamObserver.connectStreamSource(source);\n }\n disconnectStreamSource(source) {\n this.streamObserver.disconnectStreamSource(source);\n }\n renderStreamMessage(message) {\n this.streamMessageRenderer.render(StreamMessage.wrap(message));\n }\n clearCache() {\n this.view.clearSnapshotCache();\n }\n setProgressBarDelay(delay) {\n this.progressBarDelay = delay;\n }\n setFormMode(mode) {\n this.formMode = mode;\n }\n get location() {\n return this.history.location;\n }\n get restorationIdentifier() {\n return this.history.restorationIdentifier;\n }\n historyPoppedToLocationWithRestorationIdentifier(location, restorationIdentifier) {\n if (this.enabled) {\n this.navigator.startVisit(location, restorationIdentifier, {\n action: \"restore\",\n historyChanged: true,\n });\n }\n else {\n this.adapter.pageInvalidated({\n reason: \"turbo_disabled\",\n });\n }\n }\n scrollPositionChanged(position) {\n this.history.updateRestorationData({ scrollPosition: position });\n }\n willSubmitFormLinkToLocation(link, location) {\n return this.elementIsNavigatable(link) && locationIsVisitable(location, this.snapshot.rootLocation);\n }\n submittedFormLinkToLocation() { }\n willFollowLinkToLocation(link, location, event) {\n return (this.elementIsNavigatable(link) &&\n locationIsVisitable(location, this.snapshot.rootLocation) &&\n this.applicationAllowsFollowingLinkToLocation(link, location, event));\n }\n followedLinkToLocation(link, location) {\n const action = this.getActionForLink(link);\n const acceptsStreamResponse = link.hasAttribute(\"data-turbo-stream\");\n this.visit(location.href, { action, acceptsStreamResponse });\n }\n allowsVisitingLocationWithAction(location, action) {\n return this.locationWithActionIsSamePage(location, action) || this.applicationAllowsVisitingLocation(location);\n }\n visitProposedToLocation(location, options) {\n extendURLWithDeprecatedProperties(location);\n this.adapter.visitProposedToLocation(location, options);\n }\n visitStarted(visit) {\n if (!visit.acceptsStreamResponse) {\n markAsBusy(document.documentElement);\n }\n extendURLWithDeprecatedProperties(visit.location);\n if (!visit.silent) {\n this.notifyApplicationAfterVisitingLocation(visit.location, visit.action);\n }\n }\n visitCompleted(visit) {\n clearBusyState(document.documentElement);\n this.notifyApplicationAfterPageLoad(visit.getTimingMetrics());\n }\n locationWithActionIsSamePage(location, action) {\n return this.navigator.locationWithActionIsSamePage(location, action);\n }\n visitScrolledToSamePageLocation(oldURL, newURL) {\n this.notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL);\n }\n willSubmitForm(form, submitter) {\n const action = getAction(form, submitter);\n return (this.submissionIsNavigatable(form, submitter) &&\n locationIsVisitable(expandURL(action), this.snapshot.rootLocation));\n }\n formSubmitted(form, submitter) {\n this.navigator.submitForm(form, submitter);\n }\n pageBecameInteractive() {\n this.view.lastRenderedLocation = this.location;\n this.notifyApplicationAfterPageLoad();\n }\n pageLoaded() {\n this.history.assumeControlOfScrollRestoration();\n }\n pageWillUnload() {\n this.history.relinquishControlOfScrollRestoration();\n }\n receivedMessageFromStream(message) {\n this.renderStreamMessage(message);\n }\n viewWillCacheSnapshot() {\n var _a;\n if (!((_a = this.navigator.currentVisit) === null || _a === void 0 ? void 0 : _a.silent)) {\n this.notifyApplicationBeforeCachingSnapshot();\n }\n }\n allowsImmediateRender({ element }, options) {\n const event = this.notifyApplicationBeforeRender(element, options);\n const { defaultPrevented, detail: { render }, } = event;\n if (this.view.renderer && render) {\n this.view.renderer.renderElement = render;\n }\n return !defaultPrevented;\n }\n viewRenderedSnapshot(_snapshot, _isPreview) {\n this.view.lastRenderedLocation = this.history.location;\n this.notifyApplicationAfterRender();\n }\n preloadOnLoadLinksForView(element) {\n this.preloader.preloadOnLoadLinksForView(element);\n }\n viewInvalidated(reason) {\n this.adapter.pageInvalidated(reason);\n }\n frameLoaded(frame) {\n this.notifyApplicationAfterFrameLoad(frame);\n }\n frameRendered(fetchResponse, frame) {\n this.notifyApplicationAfterFrameRender(fetchResponse, frame);\n }\n applicationAllowsFollowingLinkToLocation(link, location, ev) {\n const event = this.notifyApplicationAfterClickingLinkToLocation(link, location, ev);\n return !event.defaultPrevented;\n }\n applicationAllowsVisitingLocation(location) {\n const event = this.notifyApplicationBeforeVisitingLocation(location);\n return !event.defaultPrevented;\n }\n notifyApplicationAfterClickingLinkToLocation(link, location, event) {\n return dispatch(\"turbo:click\", {\n target: link,\n detail: { url: location.href, originalEvent: event },\n cancelable: true,\n });\n }\n notifyApplicationBeforeVisitingLocation(location) {\n return dispatch(\"turbo:before-visit\", {\n detail: { url: location.href },\n cancelable: true,\n });\n }\n notifyApplicationAfterVisitingLocation(location, action) {\n return dispatch(\"turbo:visit\", { detail: { url: location.href, action } });\n }\n notifyApplicationBeforeCachingSnapshot() {\n return dispatch(\"turbo:before-cache\");\n }\n notifyApplicationBeforeRender(newBody, options) {\n return dispatch(\"turbo:before-render\", {\n detail: Object.assign({ newBody }, options),\n cancelable: true,\n });\n }\n notifyApplicationAfterRender() {\n return dispatch(\"turbo:render\");\n }\n notifyApplicationAfterPageLoad(timing = {}) {\n return dispatch(\"turbo:load\", {\n detail: { url: this.location.href, timing },\n });\n }\n notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL) {\n dispatchEvent(new HashChangeEvent(\"hashchange\", {\n oldURL: oldURL.toString(),\n newURL: newURL.toString(),\n }));\n }\n notifyApplicationAfterFrameLoad(frame) {\n return dispatch(\"turbo:frame-load\", { target: frame });\n }\n notifyApplicationAfterFrameRender(fetchResponse, frame) {\n return dispatch(\"turbo:frame-render\", {\n detail: { fetchResponse },\n target: frame,\n cancelable: true,\n });\n }\n submissionIsNavigatable(form, submitter) {\n if (this.formMode == \"off\") {\n return false;\n }\n else {\n const submitterIsNavigatable = submitter ? this.elementIsNavigatable(submitter) : true;\n if (this.formMode == \"optin\") {\n return submitterIsNavigatable && form.closest('[data-turbo=\"true\"]') != null;\n }\n else {\n return submitterIsNavigatable && this.elementIsNavigatable(form);\n }\n }\n }\n elementIsNavigatable(element) {\n const container = element.closest(\"[data-turbo]\");\n const withinFrame = element.closest(\"turbo-frame\");\n if (this.drive || withinFrame) {\n if (container) {\n return container.getAttribute(\"data-turbo\") != \"false\";\n }\n else {\n return true;\n }\n }\n else {\n if (container) {\n return container.getAttribute(\"data-turbo\") == \"true\";\n }\n else {\n return false;\n }\n }\n }\n getActionForLink(link) {\n const action = link.getAttribute(\"data-turbo-action\");\n return isAction(action) ? action : \"advance\";\n }\n get snapshot() {\n return this.view.snapshot;\n }\n}\nfunction extendURLWithDeprecatedProperties(url) {\n Object.defineProperties(url, deprecatedLocationPropertyDescriptors);\n}\nconst deprecatedLocationPropertyDescriptors = {\n absoluteURL: {\n get() {\n return this.toString();\n },\n },\n};\n\nclass Cache {\n constructor(session) {\n this.session = session;\n }\n clear() {\n this.session.clearCache();\n }\n resetCacheControl() {\n this.setCacheControl(\"\");\n }\n exemptPageFromCache() {\n this.setCacheControl(\"no-cache\");\n }\n exemptPageFromPreview() {\n this.setCacheControl(\"no-preview\");\n }\n setCacheControl(value) {\n setMetaContent(\"turbo-cache-control\", value);\n }\n}\n\nconst StreamActions = {\n after() {\n this.targetElements.forEach((e) => { var _a; return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e.nextSibling); });\n },\n append() {\n this.removeDuplicateTargetChildren();\n this.targetElements.forEach((e) => e.append(this.templateContent));\n },\n before() {\n this.targetElements.forEach((e) => { var _a; return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e); });\n },\n prepend() {\n this.removeDuplicateTargetChildren();\n this.targetElements.forEach((e) => e.prepend(this.templateContent));\n },\n remove() {\n this.targetElements.forEach((e) => e.remove());\n },\n replace() {\n this.targetElements.forEach((e) => e.replaceWith(this.templateContent));\n },\n update() {\n this.targetElements.forEach((e) => e.replaceChildren(this.templateContent));\n },\n};\n\nconst session = new Session();\nconst cache = new Cache(session);\nconst { navigator: navigator$1 } = session;\nfunction start() {\n session.start();\n}\nfunction registerAdapter(adapter) {\n session.registerAdapter(adapter);\n}\nfunction visit(location, options) {\n session.visit(location, options);\n}\nfunction connectStreamSource(source) {\n session.connectStreamSource(source);\n}\nfunction disconnectStreamSource(source) {\n session.disconnectStreamSource(source);\n}\nfunction renderStreamMessage(message) {\n session.renderStreamMessage(message);\n}\nfunction clearCache() {\n console.warn(\"Please replace `Turbo.clearCache()` with `Turbo.cache.clear()`. The top-level function is deprecated and will be removed in a future version of Turbo.`\");\n session.clearCache();\n}\nfunction setProgressBarDelay(delay) {\n session.setProgressBarDelay(delay);\n}\nfunction setConfirmMethod(confirmMethod) {\n FormSubmission.confirmMethod = confirmMethod;\n}\nfunction setFormMode(mode) {\n session.setFormMode(mode);\n}\n\nvar Turbo = /*#__PURE__*/Object.freeze({\n __proto__: null,\n navigator: navigator$1,\n session: session,\n cache: cache,\n PageRenderer: PageRenderer,\n PageSnapshot: PageSnapshot,\n FrameRenderer: FrameRenderer,\n start: start,\n registerAdapter: registerAdapter,\n visit: visit,\n connectStreamSource: connectStreamSource,\n disconnectStreamSource: disconnectStreamSource,\n renderStreamMessage: renderStreamMessage,\n clearCache: clearCache,\n setProgressBarDelay: setProgressBarDelay,\n setConfirmMethod: setConfirmMethod,\n setFormMode: setFormMode,\n StreamActions: StreamActions\n});\n\nclass FrameController {\n constructor(element) {\n this.fetchResponseLoaded = (_fetchResponse) => { };\n this.currentFetchRequest = null;\n this.resolveVisitPromise = () => { };\n this.connected = false;\n this.hasBeenLoaded = false;\n this.ignoredAttributes = new Set();\n this.action = null;\n this.visitCachedSnapshot = ({ element }) => {\n const frame = element.querySelector(\"#\" + this.element.id);\n if (frame && this.previousFrameElement) {\n frame.replaceChildren(...this.previousFrameElement.children);\n }\n delete this.previousFrameElement;\n };\n this.element = element;\n this.view = new FrameView(this, this.element);\n this.appearanceObserver = new AppearanceObserver(this, this.element);\n this.formLinkClickObserver = new FormLinkClickObserver(this, this.element);\n this.linkInterceptor = new LinkInterceptor(this, this.element);\n this.restorationIdentifier = uuid();\n this.formSubmitObserver = new FormSubmitObserver(this, this.element);\n }\n connect() {\n if (!this.connected) {\n this.connected = true;\n if (this.loadingStyle == FrameLoadingStyle.lazy) {\n this.appearanceObserver.start();\n }\n else {\n this.loadSourceURL();\n }\n this.formLinkClickObserver.start();\n this.linkInterceptor.start();\n this.formSubmitObserver.start();\n }\n }\n disconnect() {\n if (this.connected) {\n this.connected = false;\n this.appearanceObserver.stop();\n this.formLinkClickObserver.stop();\n this.linkInterceptor.stop();\n this.formSubmitObserver.stop();\n }\n }\n disabledChanged() {\n if (this.loadingStyle == FrameLoadingStyle.eager) {\n this.loadSourceURL();\n }\n }\n sourceURLChanged() {\n if (this.isIgnoringChangesTo(\"src\"))\n return;\n if (this.element.isConnected) {\n this.complete = false;\n }\n if (this.loadingStyle == FrameLoadingStyle.eager || this.hasBeenLoaded) {\n this.loadSourceURL();\n }\n }\n sourceURLReloaded() {\n const { src } = this.element;\n this.ignoringChangesToAttribute(\"complete\", () => {\n this.element.removeAttribute(\"complete\");\n });\n this.element.src = null;\n this.element.src = src;\n return this.element.loaded;\n }\n completeChanged() {\n if (this.isIgnoringChangesTo(\"complete\"))\n return;\n this.loadSourceURL();\n }\n loadingStyleChanged() {\n if (this.loadingStyle == FrameLoadingStyle.lazy) {\n this.appearanceObserver.start();\n }\n else {\n this.appearanceObserver.stop();\n this.loadSourceURL();\n }\n }\n async loadSourceURL() {\n if (this.enabled && this.isActive && !this.complete && this.sourceURL) {\n this.element.loaded = this.visit(expandURL(this.sourceURL));\n this.appearanceObserver.stop();\n await this.element.loaded;\n this.hasBeenLoaded = true;\n }\n }\n async loadResponse(fetchResponse) {\n if (fetchResponse.redirected || (fetchResponse.succeeded && fetchResponse.isHTML)) {\n this.sourceURL = fetchResponse.response.url;\n }\n try {\n const html = await fetchResponse.responseHTML;\n if (html) {\n const { body } = parseHTMLDocument(html);\n const newFrameElement = await this.extractForeignFrameElement(body);\n if (newFrameElement) {\n const snapshot = new Snapshot(newFrameElement);\n const renderer = new FrameRenderer(this, this.view.snapshot, snapshot, FrameRenderer.renderElement, false, false);\n if (this.view.renderPromise)\n await this.view.renderPromise;\n this.changeHistory();\n await this.view.render(renderer);\n this.complete = true;\n session.frameRendered(fetchResponse, this.element);\n session.frameLoaded(this.element);\n this.fetchResponseLoaded(fetchResponse);\n }\n else if (this.willHandleFrameMissingFromResponse(fetchResponse)) {\n console.warn(`A matching frame for #${this.element.id} was missing from the response, transforming into full-page Visit.`);\n this.visitResponse(fetchResponse.response);\n }\n }\n }\n catch (error) {\n console.error(error);\n this.view.invalidate();\n }\n finally {\n this.fetchResponseLoaded = () => { };\n }\n }\n elementAppearedInViewport(_element) {\n this.loadSourceURL();\n }\n willSubmitFormLinkToLocation(link) {\n return this.shouldInterceptNavigation(link);\n }\n submittedFormLinkToLocation(link, _location, form) {\n const frame = this.findFrameElement(link);\n if (frame)\n form.setAttribute(\"data-turbo-frame\", frame.id);\n }\n shouldInterceptLinkClick(element, _location, _event) {\n return this.shouldInterceptNavigation(element);\n }\n linkClickIntercepted(element, location) {\n this.navigateFrame(element, location);\n }\n willSubmitForm(element, submitter) {\n return element.closest(\"turbo-frame\") == this.element && this.shouldInterceptNavigation(element, submitter);\n }\n formSubmitted(element, submitter) {\n if (this.formSubmission) {\n this.formSubmission.stop();\n }\n this.formSubmission = new FormSubmission(this, element, submitter);\n const { fetchRequest } = this.formSubmission;\n this.prepareHeadersForRequest(fetchRequest.headers, fetchRequest);\n this.formSubmission.start();\n }\n prepareHeadersForRequest(headers, request) {\n var _a;\n headers[\"Turbo-Frame\"] = this.id;\n if ((_a = this.currentNavigationElement) === null || _a === void 0 ? void 0 : _a.hasAttribute(\"data-turbo-stream\")) {\n request.acceptResponseType(StreamMessage.contentType);\n }\n }\n requestStarted(_request) {\n markAsBusy(this.element);\n }\n requestPreventedHandlingResponse(_request, _response) {\n this.resolveVisitPromise();\n }\n async requestSucceededWithResponse(request, response) {\n await this.loadResponse(response);\n this.resolveVisitPromise();\n }\n async requestFailedWithResponse(request, response) {\n console.error(response);\n await this.loadResponse(response);\n this.resolveVisitPromise();\n }\n requestErrored(request, error) {\n console.error(error);\n this.resolveVisitPromise();\n }\n requestFinished(_request) {\n clearBusyState(this.element);\n }\n formSubmissionStarted({ formElement }) {\n markAsBusy(formElement, this.findFrameElement(formElement));\n }\n formSubmissionSucceededWithResponse(formSubmission, response) {\n const frame = this.findFrameElement(formSubmission.formElement, formSubmission.submitter);\n frame.delegate.proposeVisitIfNavigatedWithAction(frame, formSubmission.formElement, formSubmission.submitter);\n frame.delegate.loadResponse(response);\n }\n formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n this.element.delegate.loadResponse(fetchResponse);\n }\n formSubmissionErrored(formSubmission, error) {\n console.error(error);\n }\n formSubmissionFinished({ formElement }) {\n clearBusyState(formElement, this.findFrameElement(formElement));\n }\n allowsImmediateRender({ element: newFrame }, options) {\n const event = dispatch(\"turbo:before-frame-render\", {\n target: this.element,\n detail: Object.assign({ newFrame }, options),\n cancelable: true,\n });\n const { defaultPrevented, detail: { render }, } = event;\n if (this.view.renderer && render) {\n this.view.renderer.renderElement = render;\n }\n return !defaultPrevented;\n }\n viewRenderedSnapshot(_snapshot, _isPreview) { }\n preloadOnLoadLinksForView(element) {\n session.preloadOnLoadLinksForView(element);\n }\n viewInvalidated() { }\n willRenderFrame(currentElement, _newElement) {\n this.previousFrameElement = currentElement.cloneNode(true);\n }\n async visit(url) {\n var _a;\n const request = new FetchRequest(this, FetchMethod.get, url, new URLSearchParams(), this.element);\n (_a = this.currentFetchRequest) === null || _a === void 0 ? void 0 : _a.cancel();\n this.currentFetchRequest = request;\n return new Promise((resolve) => {\n this.resolveVisitPromise = () => {\n this.resolveVisitPromise = () => { };\n this.currentFetchRequest = null;\n resolve();\n };\n request.perform();\n });\n }\n navigateFrame(element, url, submitter) {\n const frame = this.findFrameElement(element, submitter);\n this.pageSnapshot = PageSnapshot.fromElement(frame).clone();\n frame.delegate.proposeVisitIfNavigatedWithAction(frame, element, submitter);\n this.withCurrentNavigationElement(element, () => {\n frame.src = url;\n });\n }\n proposeVisitIfNavigatedWithAction(frame, element, submitter) {\n this.action = getVisitAction(submitter, element, frame);\n if (isAction(this.action)) {\n const { visitCachedSnapshot } = frame.delegate;\n frame.delegate.fetchResponseLoaded = (fetchResponse) => {\n if (frame.src) {\n const { statusCode, redirected } = fetchResponse;\n const responseHTML = frame.ownerDocument.documentElement.outerHTML;\n const response = { statusCode, redirected, responseHTML };\n const options = {\n response,\n visitCachedSnapshot,\n willRender: false,\n updateHistory: false,\n restorationIdentifier: this.restorationIdentifier,\n snapshot: this.pageSnapshot,\n };\n if (this.action)\n options.action = this.action;\n session.visit(frame.src, options);\n }\n };\n }\n }\n changeHistory() {\n if (this.action) {\n const method = getHistoryMethodForAction(this.action);\n session.history.update(method, expandURL(this.element.src || \"\"), this.restorationIdentifier);\n }\n }\n willHandleFrameMissingFromResponse(fetchResponse) {\n this.element.setAttribute(\"complete\", \"\");\n const response = fetchResponse.response;\n const visit = async (url, options = {}) => {\n if (url instanceof Response) {\n this.visitResponse(url);\n }\n else {\n session.visit(url, options);\n }\n };\n const event = dispatch(\"turbo:frame-missing\", {\n target: this.element,\n detail: { response, visit },\n cancelable: true,\n });\n return !event.defaultPrevented;\n }\n async visitResponse(response) {\n const wrapped = new FetchResponse(response);\n const responseHTML = await wrapped.responseHTML;\n const { location, redirected, statusCode } = wrapped;\n return session.visit(location, { response: { redirected, statusCode, responseHTML } });\n }\n findFrameElement(element, submitter) {\n var _a;\n const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n return (_a = getFrameElementById(id)) !== null && _a !== void 0 ? _a : this.element;\n }\n async extractForeignFrameElement(container) {\n let element;\n const id = CSS.escape(this.id);\n try {\n element = activateElement(container.querySelector(`turbo-frame#${id}`), this.sourceURL);\n if (element) {\n return element;\n }\n element = activateElement(container.querySelector(`turbo-frame[src][recurse~=${id}]`), this.sourceURL);\n if (element) {\n await element.loaded;\n return await this.extractForeignFrameElement(element);\n }\n }\n catch (error) {\n console.error(error);\n return new FrameElement();\n }\n return null;\n }\n formActionIsVisitable(form, submitter) {\n const action = getAction(form, submitter);\n return locationIsVisitable(expandURL(action), this.rootLocation);\n }\n shouldInterceptNavigation(element, submitter) {\n const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n if (element instanceof HTMLFormElement && !this.formActionIsVisitable(element, submitter)) {\n return false;\n }\n if (!this.enabled || id == \"_top\") {\n return false;\n }\n if (id) {\n const frameElement = getFrameElementById(id);\n if (frameElement) {\n return !frameElement.disabled;\n }\n }\n if (!session.elementIsNavigatable(element)) {\n return false;\n }\n if (submitter && !session.elementIsNavigatable(submitter)) {\n return false;\n }\n return true;\n }\n get id() {\n return this.element.id;\n }\n get enabled() {\n return !this.element.disabled;\n }\n get sourceURL() {\n if (this.element.src) {\n return this.element.src;\n }\n }\n set sourceURL(sourceURL) {\n this.ignoringChangesToAttribute(\"src\", () => {\n this.element.src = sourceURL !== null && sourceURL !== void 0 ? sourceURL : null;\n });\n }\n get loadingStyle() {\n return this.element.loading;\n }\n get isLoading() {\n return this.formSubmission !== undefined || this.resolveVisitPromise() !== undefined;\n }\n get complete() {\n return this.element.hasAttribute(\"complete\");\n }\n set complete(value) {\n this.ignoringChangesToAttribute(\"complete\", () => {\n if (value) {\n this.element.setAttribute(\"complete\", \"\");\n }\n else {\n this.element.removeAttribute(\"complete\");\n }\n });\n }\n get isActive() {\n return this.element.isActive && this.connected;\n }\n get rootLocation() {\n var _a;\n const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n const root = (_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : \"/\";\n return expandURL(root);\n }\n isIgnoringChangesTo(attributeName) {\n return this.ignoredAttributes.has(attributeName);\n }\n ignoringChangesToAttribute(attributeName, callback) {\n this.ignoredAttributes.add(attributeName);\n callback();\n this.ignoredAttributes.delete(attributeName);\n }\n withCurrentNavigationElement(element, callback) {\n this.currentNavigationElement = element;\n callback();\n delete this.currentNavigationElement;\n }\n}\nfunction getFrameElementById(id) {\n if (id != null) {\n const element = document.getElementById(id);\n if (element instanceof FrameElement) {\n return element;\n }\n }\n}\nfunction activateElement(element, currentURL) {\n if (element) {\n const src = element.getAttribute(\"src\");\n if (src != null && currentURL != null && urlsAreEqual(src, currentURL)) {\n throw new Error(`Matching element has a source URL which references itself`);\n }\n if (element.ownerDocument !== document) {\n element = document.importNode(element, true);\n }\n if (element instanceof FrameElement) {\n element.connectedCallback();\n element.disconnectedCallback();\n return element;\n }\n }\n}\n\nclass StreamElement extends HTMLElement {\n static async renderElement(newElement) {\n await newElement.performAction();\n }\n async connectedCallback() {\n try {\n await this.render();\n }\n catch (error) {\n console.error(error);\n }\n finally {\n this.disconnect();\n }\n }\n async render() {\n var _a;\n return ((_a = this.renderPromise) !== null && _a !== void 0 ? _a : (this.renderPromise = (async () => {\n const event = this.beforeRenderEvent;\n if (this.dispatchEvent(event)) {\n await nextAnimationFrame();\n await event.detail.render(this);\n }\n })()));\n }\n disconnect() {\n try {\n this.remove();\n }\n catch (_a) { }\n }\n removeDuplicateTargetChildren() {\n this.duplicateChildren.forEach((c) => c.remove());\n }\n get duplicateChildren() {\n var _a;\n const existingChildren = this.targetElements.flatMap((e) => [...e.children]).filter((c) => !!c.id);\n const newChildrenIds = [...(((_a = this.templateContent) === null || _a === void 0 ? void 0 : _a.children) || [])].filter((c) => !!c.id).map((c) => c.id);\n return existingChildren.filter((c) => newChildrenIds.includes(c.id));\n }\n get performAction() {\n if (this.action) {\n const actionFunction = StreamActions[this.action];\n if (actionFunction) {\n return actionFunction;\n }\n this.raise(\"unknown action\");\n }\n this.raise(\"action attribute is missing\");\n }\n get targetElements() {\n if (this.target) {\n return this.targetElementsById;\n }\n else if (this.targets) {\n return this.targetElementsByQuery;\n }\n else {\n this.raise(\"target or targets attribute is missing\");\n }\n }\n get templateContent() {\n return this.templateElement.content.cloneNode(true);\n }\n get templateElement() {\n if (this.firstElementChild === null) {\n const template = this.ownerDocument.createElement(\"template\");\n this.appendChild(template);\n return template;\n }\n else if (this.firstElementChild instanceof HTMLTemplateElement) {\n return this.firstElementChild;\n }\n this.raise(\"first child element must be a